庄懂的水特效AP01/L16/Water
Maintex把xy的移动先停了
首先是参数列表,把xy停了,接下来就是noise的造成的影响了(应该说是wrap扰动贴图)
在vertex里面移动了uv0
speed设置为0了,剩下的就是noise对每个像素的单独扰动处理
warp扰动
以warp图左下角为原点建立自己的独立采样坐标系
uv1和uv2在这个坐标系里面采样
但是使用了不同的采样路线
o.uv1 = v.uv * _Warp1Params.x - frac(_Time.x * _Warp1Params.yz);
这个公式是对采样坐标系的变化
o.uv1 = v.uv * _Warp1Params.x(大小,整张图延xy变密--实际上是加速了采样移动位置导致的)
- frac(_Time.x * _Warp1Params.yz);(减一个二维的流速,采样点移动)
现在是1,1 所以因为是采样坐标系的 -frac(_Time.x * _Warp1Params.yz)
time变大,采样点往vector(-1,-1)移动
但这影响的只是第一个 var_Warp1在唯一一张warp图里的采样手段得出了
为了达成更加的随机变化,所以var_Warp2又进入了一次warp图的独立坐标系,用不同的密度和移速,与 var_Warp1叠加----- 像两个规律的波,叠加在一起,混乱度飙升(要的就是这个随机)
warp扰乱图只有两个通道,代表了each pixel当前的扰动移动后的新采样位置
出发的思考都是像素,一个像素用一套公式,可以自己创建可控参数,可以去不同的sampleTex的独立坐标系里面取出通道里的值
这里两个warpParam只是前往单个sampleTex坐标系里的基本直接采样的过程进行了 自定义参数的规则控制(也就是两套规则)
都是数值,没有变化,最开始appdata里取出的也是基本的数值,最终要影响的是该像素的输出
---也就是像素完全独立,采样图坐标系和自定义参数,和像素的显示无关,各种变化都是各张sampleTex里独立的处理,最后给pixel