Unity3D之跑酷地图弯曲效果
2015-11-24 09:41
696 查看
3D跑酷游戏,远处地表是弯曲的,形成视觉差,其实是通过shader来实现。
_QOffset("Offset",Vector)=(0,0,0,0)
_Dist("Distance",float)=100
下面是无光照的shader
如果是surface shader,则把最后一行的 o.pos = mul (UNITY_MATRIX_P, vPos);
换成 v.vertex = mul(vPos,UNITY_MATRIX_IT_MV);
上面是在顶点着色器中的主要代码,颜色第一行把模型坐标转到相机空间坐标,下面两行用来控制离相机越远,弯曲越大。
_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);
上面是在顶点着色器中的主要代码,颜色第一行把模型坐标转到相机空间坐标,下面两行用来控制离相机越远,弯曲越大。
相关文章推荐
- Kinect结合Unity3D引擎开发体感游戏(一)
- Unity3D中脚本的执行顺序和编译顺序
- Unity3D动态对象优化代码分享
- Unity3D获取当前键盘按键及Unity3D鼠标、键盘的基本操作
- Unity3d获取系统时间
- unity3d发布apk在android虚拟机中运行的详细步骤(unity3d导出android apk)
- Unity3D游戏引擎实现在Android中打开WebView的实例
- unity3d调用手机或电脑摄像头
- Unity3d发布IOS9应用时出现中文乱码的解决方法
- 分享一个开源的网络游戏服务器架构—HouHai
- Unity3D插件详细评测及教学下载
- Unity3D上路_01-2D太空射击游戏
- Unity3D上路_02-第一视角射击游戏
- Unity3D上路_03-塔防游戏
- Unity3D上路_04-基础资源介绍
- Unity3D上路_05-网络相关