另外不久前graytb上上传了他之前开发《2048所设计的代码。
开始的时候我并没怎么当回事,因为这段代码形式并不算很简洁。
但绝对是在上运行起来效率最高的。
其实像《2048这种简单的小游戏,即便是运行效率有点区别,也不会影响太大。
可偏偏grayret一定要搞一个效率最高的。
这说明这个人骨子里就追求高效率。
这样一个一味追求高效的人在设计《llclbrag这款游戏中所采用场景构建一定是最高效的。
而在2d游戏中最高效的做法绝对不是额外引入3d渲染区。
基于效率方面的分析以及对游戏画面进行判断。
我认为grayret在下雨场景中雨滴之所以看起来很有层次感是因此采用了一种视觉欺骗。”
帕/纳/宁疑惑道:“视觉欺骗?”
贝尼托·瓦西里耶维奇:“对的,就是视觉欺骗,一般我们会下意识的认为‘近大远小’。
因此涉及到雨滴层次感架构的时候,只需要将雨滴表现的大小不一即可。
当然,涉及到如此浓密的雨滴,grayret绝对不可能一滴滴地去绘制。
正常来讲,2d画面,就是只有、y轴的画面,不存在z轴;
而3d画面,则是有、y、z轴的画面。
而grayret采用的做法应该是在2d游戏中引入了虚拟的z轴。
我猜测grayret具体来说是这样做的。
因为在游戏中,像雨滴这种东西一般都是由粒子系统进行表示的。
[一般来说粒子系统表示三维计算机图形学cg中模拟一些特定的模湖现象的技术。
之所以将这些现象称为模湖现象是因为用其它传统的渲染技术难以实现的真实感的游戏图形。
经常使用粒子系统模拟的现象有火、爆炸、烟、雨、火花、落叶、云、雾、发光轨迹这样的抽象视觉效果等等。
粒子系统的核心是粒子发射器生成的一个个行为独立的粒子,共同构建出动画]
在对游戏中引入虚拟的z轴之后。
这样我们在游戏开发中进行雨滴层次感的构建的时候。
完全可以让粒子发射器在发射天气粒子雨滴的时候,赋予天气粒子雨滴一个虚拟深度值z。
在天气粒子的整个生命周期中,虚拟深度值z保持不变;
z值和天气粒子雨滴状态之间应该存在着一个函数,
这个函数所起到的作用是缩放作用是对雨滴进行缩放。
并且这个函数将赋予深度值不同的天气粒子以不同的视觉大小和运动状态。
再之后将缩放变换结果分别发送至粒子大小显示单元和粒子运动状态显示单元
如此一来,理论上应该会使2d游戏中的天气粒子具备层次感。
当然,这只是我的猜测而已,想要知道问题真正的答桉,还需要进一步的分析。
再或者,我们要向grayret本人寻求答桉。”