找回密码
 注册帐号

扫一扫,访问微社区

士郎 小技巧—[Shader]体积投影

37
回复
3901
查看
[ 复制链接 ]
排名
1
昨日变化

7426

主题

7969

帖子

3万

积分

Rank: 16

UID
1231
好友
185
蛮牛币
9355
威望
30
注册时间
2013-7-29
在线时间
3791 小时
最后登录
2019-3-22

社区QQ达人活力之星原创精华达人突出贡献奖财富之证游戏蛮牛QQ群会员蛮牛妹VIP

2018-4-12 15:12:10 显示全部楼层 阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
最终效果
1.1.gif

1.2.gif

思路



  • 第一个pass正常渲染。
  • 第二个pass我们将顶点转换到模型空间,然后计算和灯光的角度进行顶点的偏移。
  • btw:因为根据顶点偏移,所以不能对断开的顶点进行平滑的过度。
  • 通过点乘插值我们来决定颜色的插值。
  • 版本unity5.4。

shader根据不同需求写了几个,这里直接发布工程地址,在工程里看吧。

[AppleScript] 纯文本查看 复制代码
struct a2v
{
        float4 vertex : POSITION;
        float3 normal:NORMAL;
};

struct v2f
{
        float4 vertex : SV_POSITION;
        float3 wPos:TEXCOORD1;
        float3 normal:TEXCOORD2;
};
uniform fixed4 _ProjectionColor;
uniform float _ProjectionLength;
uniform float _ProjectionFadeout;
v2f vert(a2v v)
{
        v2f o;
        o.wPos = mul(unity_ObjectToWorld, v.vertex);
        o.normal = UnityObjectToWorldNormal(v.normal);
        float3 lightDir = normalize(UnityWorldSpaceLightDir(o.wPos));
        v.vertex.xyz += v.normal*0.01;
        v.vertex = mul(UNITY_MATRIX_M, v.vertex);
        float NdotL = min(0, dot(o.normal, lightDir));
        v.vertex.xyz += lightDir *NdotL* _ProjectionLength;
        o.vertex = v.vertex = mul(UNITY_MATRIX_VP, v.vertex);
        return o;
}
fixed4 frag(v2f i) : SV_Target
{
        fixed4 col = _ProjectionColor;
        float NdotL = dot(i.normal, normalize(UnityWorldSpaceLightDir(i.wPos)));
        col.a = min(_ProjectionColor.a,(pow(1.1 - abs(NdotL), 8)));
        col.a *= pow(min(distance(_WorldSpaceCameraPos.xyz, i.wPos), _ProjectionFadeout) / _ProjectionFadeout, 3);
        return col;
}




知乎@ CarefreeQ


[发帖际遇]: 一个袋子砸在了 清风 头上,清风 赚了 1 蛮牛币. 幸运榜 / 衰神榜
回复

使用道具 举报

7日久生情
2455/5000
排名
1543
昨日变化

1

主题

953

帖子

2455

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
216583
好友
2
蛮牛币
4063
威望
0
注册时间
2017-4-7
在线时间
673 小时
最后登录
2019-3-22

迈向小康

2018-4-12 15:23:23 显示全部楼层
多谢分享
回复

使用道具 举报

6蛮牛粉丝
1037/1500
排名
2324
昨日变化

2

主题

76

帖子

1037

积分

Rank: 6Rank: 6Rank: 6

UID
9302
好友
1
蛮牛币
2153
威望
0
注册时间
2013-12-1
在线时间
349 小时
最后登录
2019-3-22
2018-4-12 16:45:13 显示全部楼层
谢谢分享,非常实用
回复 支持 反对

使用道具 举报

5熟悉之中
613/1000
排名
6774
昨日变化

0

主题

286

帖子

613

积分

Rank: 5Rank: 5

UID
250350
好友
2
蛮牛币
612
威望
0
注册时间
2017-10-23
在线时间
131 小时
最后登录
2019-3-9
2018-4-12 19:14:47 显示全部楼层

多谢分享
回复

使用道具 举报

8常驻蛮牛
5384/10000
排名
54
昨日变化

1

主题

542

帖子

5384

积分

Rank: 8Rank: 8

UID
13097
好友
1
蛮牛币
5501
威望
0
注册时间
2014-1-21
在线时间
1955 小时
最后登录
2019-3-23

活力之星

2018-4-12 19:26:08 显示全部楼层
感谢分享,强大
回复

使用道具 举报

3偶尔光临
269/300
排名
7734
昨日变化

0

主题

57

帖子

269

积分

Rank: 3Rank: 3Rank: 3

UID
270137
好友
2
蛮牛币
610
威望
0
注册时间
2018-3-1
在线时间
52 小时
最后登录
2018-9-17
2018-4-13 08:34:10 显示全部楼层
感谢分享
回复

使用道具 举报

7日久生情
4681/5000
排名
1669
昨日变化

0

主题

3293

帖子

4681

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
185339
好友
1
蛮牛币
3372
威望
0
注册时间
2016-11-20
在线时间
610 小时
最后登录
2019-3-22
2018-4-13 09:54:02 显示全部楼层
回复

使用道具 举报

5熟悉之中
823/1000
排名
5174
昨日变化

1

主题

287

帖子

823

积分

Rank: 5Rank: 5

UID
258102
好友
1
蛮牛币
1031
威望
0
注册时间
2017-12-6
在线时间
257 小时
最后登录
2019-3-8

迈向小康

2018-4-13 10:19:12 显示全部楼层
谢谢啦
回复

使用道具 举报

5熟悉之中
555/1000
排名
5710
昨日变化

8

主题

126

帖子

555

积分

Rank: 5Rank: 5

UID
89846
好友
2
蛮牛币
764
威望
0
注册时间
2015-4-7
在线时间
175 小时
最后登录
2018-12-29
QQ
2018-4-13 10:54:12 显示全部楼层
刚学shader 表示没太看懂啊  有几个问题请教
1.为什么没有 vert 方法和 v2f 结构体
2.29行输入参数为什么是摄像机的位置
3. 26行 i.normal 是模型空间中的法线吧
4. 27行 得到的是什么,还有后面的都不清楚啥意思
回复 支持 反对

使用道具 举报

7日久生情
1690/5000
排名
1664
昨日变化

0

主题

406

帖子

1690

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
136635
好友
0
蛮牛币
1768
威望
0
注册时间
2016-2-15
在线时间
506 小时
最后登录
2019-2-19
2018-4-13 11:07:56 显示全部楼层
很好,谢谢
回复

使用道具 举报

排名
48126
昨日变化

0

主题

1

帖子

8

积分

Rank: 1

UID
51632
好友
0
蛮牛币
7
威望
0
注册时间
2014-10-28
在线时间
3 小时
最后登录
2018-4-24
2018-4-13 11:23:19 显示全部楼层
这个效果挺好的
回复

使用道具 举报

7日久生情
1671/5000
排名
2252
昨日变化

0

主题

494

帖子

1671

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
163777
好友
1
蛮牛币
523
威望
0
注册时间
2017-2-27
在线时间
553 小时
最后登录
2019-3-22
2018-4-13 13:47:19 显示全部楼层


多谢分享
回复

使用道具 举报

7日久生情
3617/5000
排名
1488
昨日变化

0

主题

2135

帖子

3617

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
219676
好友
1
蛮牛币
2886
威望
0
注册时间
2017-7-12
在线时间
628 小时
最后登录
2019-3-22

活力之星

2018-4-13 14:16:50 显示全部楼层
谢谢分享
回复

使用道具 举报

7日久生情
1700/5000
排名
1365
昨日变化

2

主题

152

帖子

1700

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
148089
好友
0
蛮牛币
2698
威望
0
注册时间
2016-5-10
在线时间
638 小时
最后登录
2019-3-22
2018-4-13 15:38:57 显示全部楼层
66666666666666
回复

使用道具 举报

5熟悉之中
778/1000
排名
4593
昨日变化

6

主题

130

帖子

778

积分

Rank: 5Rank: 5

UID
216290
好友
0
蛮牛币
692
威望
0
注册时间
2017-4-5
在线时间
323 小时
最后登录
2019-1-21
2018-4-13 18:00:46 显示全部楼层
多谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则