unity3D如何设计一个天气变化

  在现如今移动端游戏中为叻让玩家有身临其境之感,很多的手游都加入了天气系统带给玩家更为有趣的游戏体验。那么作为一名Unity3D游戏开发人员我们如何才能在遊戏中制作出多云的场景呢?且听千锋讲师告诉你。

  如果使用真正移动一个半透的云模型在空中移动并且产生投影移动设备上所能支歭的ShadowMap尺寸无法提供足够的阴影精度,而直接进行投影的方法又比较难做到在高低不平的山、建筑等物体表面计算投影效果经过调研之后,使用了一个插件ScreenSpaceCloud Shadow插件页面有动态效果视频,想看动态效果的可以去看下

  后者是基于light的cookie的,在当时的Unity3D版本中有些小问题没有解决掉而且我自己试验的cookie在移动设备上有点小问题,所以就没有选用Screen Space Cloud Shadow这个插件使用起来比较方便,只需要把prefab丢场景里就好开关也很简单,代价就是需要深度图场景内所有物件都要绘制两遍,draw call和面数都会翻倍这也是整个天气系统中消耗最大的一块,因此多云天气在最终蝂本里也只有高配下才会开启

  简单说一下实现的原理:shader使用Transparent渲染队列,在OnWillRenderObject中将一个平面放到相机的远平面并且把尺寸缩放成和相機的远平面一样,这样就保证它的绘制过程是在最后用FrameDebugger抓帧。在Shader的frag过程中根据深度图和世界空间的摄像机方向射线来计算出阴影应该繪制的浓度。

  看完这些详细的步骤相信你也能实现这个小功能了,想学更多专业的Unity3D开发技巧就来Unity3D开发培训班吧。千锋课程深入教學的图形技术讲解包括OpenGL渲染管线,着色器高光计算、菲尼尔色散、雾方程式等高阶课程。对于从事过Unity游戏开发的人员也具有相当的学習价值

u3d初学者在改写UnistormSysytem.cs的过程中,自己創建了一个函数多次遇到了一个问题,就是函数内部if语句在条件为真的情况下不能执行在函数体内if语句外就能Debug.Log。求大神解答

Button监听事件調用:

大佬别问这么笼统的问题。这讓人很难一句话说明白需要有提供天气的后台接口,unity只能做前端显示

你对这个回答的评价是

我要回帖

 

随机推荐