游戏蛮牛学习群(纯技术交流,不闲聊):159852603
游戏蛮牛 手机端
开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

开发者专栏

关注:2315

当前位置:游戏蛮牛 技术专区 开发者专栏

__________________________________________________________________________________
开发者干货区版块规则:

  1、文章必须是图文形式。(至少2幅图)
      2、文章字数必须保持在1500字节以上。(编辑器右下角有字数检查)
      3、本版块只支持在游戏蛮牛原创首发,不支持转载。
      4、本版块回复不得无意义,如:顶、呵呵、不错......【真的会扣分的哦】
      5、......
__________________________________________________________________________________
查看: 2856|回复: 37

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

[复制链接]  [移动端链接]
排名
3
昨日变化

6808

主题

7332

帖子

2万

积分

Rank: 16

UID
1231
好友
185
蛮牛币
7312
威望
30
注册时间
2013-7-29
在线时间
3508 小时
最后登录
2018-9-23

社区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 蛮牛币. 幸运榜 / 衰神榜

跟我念“站长妹纸萌萌哒!”我说站长,你说YO!爱你们么么哒~
回复

使用道具 举报

7日久生情
2038/5000
排名
2168
昨日变化

1

主题

930

帖子

2038

积分

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

UID
216583
好友
2
蛮牛币
3372
威望
0
注册时间
2017-4-7
在线时间
507 小时
最后登录
2018-9-21
发表于 2018-4-12 15:23:23 | 显示全部楼层
多谢分享

回复

使用道具 举报

5熟悉之中
751/1000
排名
3487
昨日变化
1

2

主题

75

帖子

751

积分

Rank: 5Rank: 5

UID
9302
好友
1
蛮牛币
1525
威望
0
注册时间
2013-12-1
在线时间
278 小时
最后登录
2018-9-21
发表于 2018-4-12 16:45:13 | 显示全部楼层
谢谢分享,非常实用

回复 支持 反对

使用道具 举报

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

0

主题

276

帖子

555

积分

Rank: 5Rank: 5

UID
250350
好友
2
蛮牛币
524
威望
0
注册时间
2017-10-23
在线时间
115 小时
最后登录
2018-8-25
发表于 2018-4-12 19:14:47 | 显示全部楼层

多谢分享

回复

使用道具 举报

7日久生情
4816/5000
排名
69
昨日变化

1

主题

516

帖子

4816

积分

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

UID
13097
好友
1
蛮牛币
4969
威望
0
注册时间
2014-1-21
在线时间
1725 小时
最后登录
2018-9-25

活力之星

发表于 2018-4-12 19:26:08 | 显示全部楼层
感谢分享,强大

回复

使用道具 举报

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

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日久生情
2947/5000
排名
2460
昨日变化

0

主题

2107

帖子

2947

积分

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

UID
185339
好友
1
蛮牛币
4246
威望
0
注册时间
2016-11-20
在线时间
298 小时
最后登录
2018-9-21
发表于 2018-4-13 09:54:02 | 显示全部楼层

回复

使用道具 举报

4四处流浪
460/500
排名
8652
昨日变化
2

1

主题

197

帖子

460

积分

Rank: 4

UID
258102
好友
1
蛮牛币
487
威望
0
注册时间
2017-12-6
在线时间
134 小时
最后登录
2018-9-21
发表于 2018-4-13 10:19:12 | 显示全部楼层
谢谢啦

回复

使用道具 举报

5熟悉之中
547/1000
排名
5451
昨日变化
1

8

主题

124

帖子

547

积分

Rank: 5Rank: 5

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

回复 支持 反对

使用道具 举报

6蛮牛粉丝
1398/1500
排名
2063
昨日变化

0

主题

367

帖子

1398

积分

Rank: 6Rank: 6Rank: 6

UID
136635
好友
0
蛮牛币
1408
威望
0
注册时间
2016-2-15
在线时间
405 小时
最后登录
2018-9-23
发表于 2018-4-13 11:07:56 | 显示全部楼层
很好,谢谢

回复

使用道具 举报

排名
45804
昨日变化
107

0

主题

1

帖子

8

积分

Rank: 1

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

回复

使用道具 举报

5熟悉之中
985/1000
排名
3233
昨日变化
1

0

主题

208

帖子

985

积分

Rank: 5Rank: 5

UID
163777
好友
1
蛮牛币
664
威望
0
注册时间
2017-2-27
在线时间
351 小时
最后登录
2018-9-25
发表于 2018-4-13 13:47:19 | 显示全部楼层


多谢分享

回复

使用道具 举报

7日久生情
3241/5000
排名
2041
昨日变化

0

主题

2116

帖子

3241

积分

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

UID
219676
好友
1
蛮牛币
2419
威望
0
注册时间
2017-7-12
在线时间
495 小时
最后登录
2018-9-22

活力之星

发表于 2018-4-13 14:16:50 | 显示全部楼层
谢谢分享

回复

使用道具 举报

6蛮牛粉丝
1423/1500
排名
1642
昨日变化
1

1

主题

137

帖子

1423

积分

Rank: 6Rank: 6Rank: 6

UID
148089
好友
0
蛮牛币
2401
威望
0
注册时间
2016-5-10
在线时间
543 小时
最后登录
2018-9-20
发表于 2018-4-13 15:38:57 | 显示全部楼层
66666666666666

回复

使用道具 举报

5熟悉之中
743/1000
排名
4370
昨日变化
2

6

主题

127

帖子

743

积分

Rank: 5Rank: 5

UID
216290
好友
0
蛮牛币
665
威望
0
注册时间
2017-4-5
在线时间
298 小时
最后登录
2018-9-21
发表于 2018-4-13 18:00:46 | 显示全部楼层
多谢分享

回复

使用道具 举报

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

本版积分规则

快速回复 返回顶部 返回列表