第268章 各取所需的合作(3/4)
在游戏天气效果中,还需要对相应的天气粒子进行处理。
借助于这些拟真的粒子实现游戏里的天气层级的变化。
经过一些技术方面的沟通。
林灰发现超/级/细/胞方面的一些猜想已经很接近于真相了。
按照超/级/细/胞方面的猜想。
林灰之所以能够实现粒子的层级感是因为利用了视觉上“近大远小”这一现象。
了解了这一现象之后,在进行雨滴层次架构的时候。
只需要将雨滴表现的大小不一即可。
在实际操作的时将传统二维画面的\y轴之外。
引入一个虚拟的z轴。
赋予天气粒子雨滴一个虚拟深度值z。
想呈现给人“近”感的粒子z值更高,想呈现给人“远”感的z值更小。
在天气粒子的整个生命周期中,虚拟深度值z保持不变;
z值和天气粒子雨滴状态之间应该存在着一个函数,
这个函数所起到的作用是缩放作用是对雨滴进行缩放。
并且这个函数将赋予深度值不同的天气粒子以不同的视觉大小和运动状态。
再之后将缩放变换结果分别发送至粒子大小显示单元和粒子运动状态显示单元
如此一来,理论上应该会使2d游戏中的天气粒子具备层次感……
不得不说,看来超/级/细/胞方面也不乏思维活跃之人。
这种猜想已经很接近事情的真相了。
事实上对于层次感的呈现确实是利用了近大远小的原理。
给每个天气粒子赋予一虚拟深度值,并根据该深度值的大小,获取不同天气粒子实际显示的大小。
但层次感的呈现却不仅仅限于以虚拟深度值对粒子大小进行相应的映射。
更进一步是利用不同的虚拟深度值对天气粒子运动状态进行实时修饰。
以虚拟深度值对粒子大小进行映射才有了雨滴天气粒子层次的逼真。
而对运动状态的实时修饰才使得雨滴降落的过程自然。
从而营造出真实的雨景。
因为对雨滴运动状态的修饰比较考验渲染水平。
还涉及到粒子的预加载。
减少实时渲染所需的工作量。
当然为了实现更好的天气粒子显示效果。
有时还需要引入了地形分割机制。
对于诸如水面、陆地、屋顶之类的地图进行特有类型识别。
本章未完,点击下一页继续阅读。