欢迎光临散文网 会员登陆 & 注册

[笔记]庄懂的技术美术入门(十七)

2022-11-15 17:01 作者:少女的美梦7  | 我要投稿

1.ScreenUV

Preview

屏幕UV就是让物体根据自身的视角空间坐标对纹理进行采样。

需要将贴图模式改为Repeat

代码实现

        原本直接使用观察空间的坐标去做会发生畸变,即下图原本应该是斜直线却变成了曲线,经过posVS.xy/posVS.z的处理,除以Z深度后可以校正畸变

        因为屏幕纹理是按照屏幕大小来做Tilling跟模型的距离是没有关系的,模型距离远了Tilling在屏幕上映射上去会显得很大,而取originDist是取的模型原点z深度,那么模型上的每个顶点都得到了一个统一的距离值,UV再乘这个值就会受到距离的影响

畸变

2.ScreenWarp

Preview

类似玻璃折射效果

        通过GrabPass{ "_Name"}通道抓取一次屏幕图像作为纹理,然后再根据物体的屏幕坐标对这个屏幕纹理进行采样。

        屏幕纹理采样坐标 pos = ComputeGrabScreenPos(i.clipPos);

        采样 tex2Dproj(_Name, pos);

        warpMidVal为扰动中间值,warpInt为扰动强度,调节这两个值可以调节扰动的大小。为什么要用mainColor.x减去扰动中间值就是一个比较灵活的操作了,我们希望扰动的范围和物体的主颜色挂钩,而且与透明度相关,所以就会有上面的扰动值计算。

代码实现


[笔记]庄懂的技术美术入门(十七)的评论 (共 条)

分享到微博请遵守国家法律