Unity3D之跑酷地图弯曲效果

来源:互联网 发布:文字转word软件 编辑:程序博客网 时间:2024/04/29 11:46

3D跑酷游戏,远处地表是弯曲的,形成视觉差,其实是通过shader来实现。

_QOffset("Offset",Vector)=(0,0,0,0)

_Dist("Distance",float)=100


下面是无光照的shader

float4 vPos = mul (UNITY_MATRIX_MV, v.vertex);float zOff = vPos.z/_Dist;vPos += _QOffset*zOff*zOff;o.pos = mul (UNITY_MATRIX_P, vPos);


如果是surface shader,则把最后一行的 

o.pos = mul (UNITY_MATRIX_P, vPos);

换成 v.vertex = mul(vPos,UNITY_MATRIX_IT_MV);


上面是在顶点着色器中的主要代码,颜色第一行把模型坐标转到相机空间坐标,下面两行用来控制离相机越远,弯曲越大。

0 0
原创粉丝点击