贝尼托·瓦西里耶维奇接着说道:“尤其是透视投影是典型的计算密集型投影,这个过程涉及到三角计算。
并不是sin x、cos x那种简单的三角计算,涉及到这个过程中的三角计算通常伴随附加有包括矩阵和矢量相乘的运算。”
贝尼托·瓦西里耶维奇接着说道:“随着场景中所记录细节的量的增大时,用来渲染该场景的冗长计算的数量也将增大,这对CPU是个极大的考验。
常规情况下,涉及到一般物体的投影计算都很吃CPU。
更何况是涉及到下雨这个场景,如果按照你说得这种办法进行透视投影的话。
实时计算量将随着雨滴数量的增多而呈现出指数增长。
恕我直言,别说5s中的A7处理器是一枚桌面级处理器。
就是A7处理器的处理效能在此基础上再翻一番恐怕也只能勉强满足这种运算需求。
巧妇难为无米之炊,如果真的是采用这种方式的话,现有的CPU水平根本无法提供技术支撑。
假设GRAY FOREST所采用的真是这种方式的话。
那么在现有的技术水平下,运行这么一款计算量超级多的游戏时会出现什么样的反应呢?
这些额外的计算大概率会要求以移动设备减小的帧速率进行游戏。
但经过我们的实测同样的5s机型在运行《HILL CLIMB RACING》这款游戏时在屋顶场景的小雨环节并不会出现帧速率减小的情况。
这也从侧面验证了我们先前的判断。
即—GRAY FOREST在《HILL CLIMB RACING》用的绝对不是引入3D渲染区域而后构建折叠册的方式。
除此之外,我觉得GRAY FOREST所采用的方式也不是传统意义上的游戏渲染。
一般来说涉及到2D游戏画面相对应的游戏渲染通常所采取的步骤通常是:
先获取2D游戏画面数据而后分析2D游戏画面元件的初始坐标;
在获得初始坐标之后根据所述初始坐标构建所述2D游戏画面元件的实际坐标系。
接着,基于上面所构筑的实际坐标系,将2D游戏画面映射成3D游戏画面才具有的视觉效果。
再之后要将映射的3D游戏画面的数据缓存到缓存器中。
当接收2D游戏的运行指令,只需要根据所述运行指令调取缓存器中已经生成的3D游戏画面的数据就可以了。
同时为了增强表现形式,还需要对调取的3D游戏画面进一步渲染。
上述这个过程对GPU的要求很高,GPU必须有强大的实时渲染能力。
这样的做法虽然理论上行得通,但也仅仅是在越狱后苹果手机或者ROOT之后的安卓手机上菜行得通。
但在正常状态的手机中根本不大现实。
毕竟一个应用能调用的GPU大多数情况下都是相当有限的。
因此我认为GRAY FOREST在《HILL CLIMB RACING》用的绝对不是这种方法。”
帕/纳/宁:“那你认为GRAY FOREST采用的究竟是什么方式呢?”
贝尼托·瓦西里耶维奇:“对此我也只能猜测,一个人设计游戏时采用的方式很大程度和其开发风格有很大的关系。
GRAY FOREST虽然崛起的很迅速,像一颗冉冉兴起的新星,但此人开发手法是相当老练的。
毕竟在开发《HILL CLIMB RACING》这款游戏之前,GRAY FOREST已经开发了三个作品了。
这些作品都得到了市场的验证,广受游戏玩家的喜爱。
能取得这样的成绩的GRAY FOREST也可以说得上是一个极其有经验的游戏开发者了。
而这样的人在涉及到具体游戏开发时不可能凭空给自己制造麻烦。
因此我推断GRAY FOREST所采取的一定是最简单的方式。
另外不久前GRAY FOREST在GitHub上上传了他之前开发《2048》所设计的代码。
开始的时候我并没怎么当回事,因为这段代码形式并不算很简洁。
但绝对是在iOS上运行起来效率最高的。
其实像《2048》这种简单的小游戏,即便是运行效率有点区别,也不会影响太大。
可偏偏GRAY FOREST一定要搞一个效率最高的。
这说明这个人骨子里就追求高效率。
这样一个一味追求高效的人在设计《HILL CLIMB RACING》这款游戏中所采用场景构建一定是最高效的。
而在2D游戏中最高效的做法绝对不是额外引入3D渲染区。
基于效率方面的分析以及对游戏画面进行判断。
我认为GRAY FOREST在下雨场景中雨滴之所以看起来很有层次感是因此采用了一种视觉欺骗。”
帕/纳/宁疑惑道:“视觉欺骗?”
贝尼托·瓦西里耶维奇:“对的,就是视觉欺骗,一般我们会下意识的认为‘近大远小’。
因此涉及到雨滴层次感架构的时候,只需要将雨滴表现的大小不一即可。
当然,涉及到如此浓密的雨滴,GRAY FOREST绝对不可能一滴滴地去绘制。
小主,这个章节后面还有哦,请点击下一页继续阅读,后面更精彩!