第186章 赫尔辛基的风声(1 / 2)
第186章赫尔辛基的风声
帕纳宁道:“或许我们不应该太先入为主顺着游戏引擎这个思路走,我们应该想想如果我们没有游戏引擎我们要怎么开发?”
紧跟着帕纳宁问道:“我的老伙计,如果是你要你来开发《HILLCLIMBRACING》这款游戏中同样的效果的话,你会怎么做呢?你不妨就拿这款游戏屋顶地图涉及到的下雨情景分析一下。”
贝尼托·瓦西里耶维奇说道:“关于这个我先前已经考虑过了几种可能。
我觉得涉及到下雨这个情景,最让人啧啧称奇的其实是三点。
首先,GRAYFOREST设计的‘下雨’很有层次感。
其次,早GRAYFOREST设计的下雨场景中并没有出现一般游戏里天气粒子常常呈现的井喷或者断续。
再有,就是《HILLCLIMBRACING》这款游戏里下雨场景开始和结束时涉及到的一些过渡很自然。”
贝尼托·瓦西里耶维奇接着说道:“后两个问题稍微麻烦一些,但涉及到层级感的问题,倒是不难猜测GRAYFOREST是怎么做到的。
无非就是以2D的形式进行了3D的表现而已,从而实现一种伪3D的效果。”
帕纳宁印象中以2D形式进行类似于3D的表现:
首先要在2D游戏场景中设置3D渲染区域。
在3D渲染区域要放上想要表达的多个2D图片。
当然2D图片并不是随意放置的,要将所述多个2D图片渲染成相邻图片的两侧边缘顺次连接在一起的折叠册页的3D形式。
这样做的话当程序开始接受到输入信息(诸如对触屏上的滑动手势之类的)做出响应时。
就会将3D渲染区域提前“放置”的折叠册页向着程序先前设定的方向展开。
这个过程还要智能地调整相应折叠册页中的排布顺序及图片的尺寸以实时地确定各2D图片的展开位置和展开角度。
这一过程顺利实现的话可以将各2D图片渲染成与其展开位置和展开角度实时对应的伪3D表现形式。
具体怎么理解这个过程呢?
帕纳宁想到了“立体书”,就是一翻开能看到立体画面的那种书。
某种程度上在2D游戏场景中设置3D渲染区域而后在所述3D渲染区域显示多个2D图片这一举动就很类似于立体书的运作过程。
只不过架构这种“立体书”的过程远比绘制现实中那种小儿科般的立体书要复杂的多。
这个过程需要涉及到对2D游戏场景进行分层。
要将2D游戏场景中所述折叠册页所在的区域设置为采用3D渲染策略的3D渲染层。
所述3D渲染层不光要对应于所述3D渲染区域,同时为了避免一些瑕疵的出现。
还要将2D游戏场景中的背景区域设置为采用2D渲染策略的2D渲染层。
而后要将3D渲染层覆盖到2D渲染层之上。
通常这个覆盖的采用的形式是:
——对所述2D渲染层采用正交投影方式进行投影,对所述3D渲染层采用透视投影方式进行投影。
并不是简简单单叠加就完事了。
在游戏中涉及到具体到表现的时候还要绘制2D渲染层到颜色缓冲区。
将2D渲染层的所有像素深度设为最大深度而形成为所述2D游戏场景的背景;
绘制3D渲染层到颜色缓冲区:
对于3D渲染层的所有像素深度设为小于所述最大深度。
使得3D渲染层投影生成的画面覆盖背景所在2D渲染层的相应区域。
如此才能在2D画面上实现的3D视觉效果。
这个过程听起来就很麻烦。
虽然不明白大道至简的道理,但帕/纳/宁同样认为而麻烦的事物往往意味着实际运行的时候容易出现这样那样的问题。
反正帕/纳/宁觉得GRAYFOREST所用的绝对不是这种方法。
在老搭档面前帕/纳/宁自然没有遮掩。
他将他这个想法毫无保留地说给了贝尼托·瓦西里耶维奇。
贝尼托·瓦西里耶维奇深以为然。
帕/纳/宁道:“我的老伙计,你把我搞糊涂了。
你刚才说GRAYFOREST所做的无非就是以2D的形式进行了3D的表现从而实现3D的视觉效果。
可你也同意了我刚刚的观点——认为GRAYFOREST采用的不是通过引入3D渲染区域再构建‘折叠册’的那种做法。
莫非你想说的是除了我刚才说的这种方法之外,还有别的方法可以在2D画面中进行3D表现?
在电脑游戏中除了我刚才说的那个方法,确实还有很多别的方法在2D画面中进行3D表现。
但恕我实在想不到在手游里除了构建3D渲染区域之外,还有哪些可以实现在2D画面中实现3D效果的技术。
哦,我亲爱的贝尼托·瓦西里耶维奇,别绕弯子了,快告诉我你究竟是怎么想的。”
贝尼托·瓦西里耶维奇理了理思路,而后开口说道:“首先说到你刚才提到的观点,我和你也是同样的见解。
利用类似于折叠册的形式实现《HILLCLIMBRACING》这款游戏里下雨场景中那种颇具层次感的画面虽然在理论上行得通。
但仅仅是理论上,GRAYFOREST在《HILLCLIMBRACING》用的绝对不是这种方法。
如果按照你说得那种方法在实际操作的时候涉及到将3D渲染层覆盖到2D渲染层之上时。
这个过程需要对2D渲染层采用正交投影方式进行投影,对所述3D渲染层采用透视投影方式进行投影。
而这两种投影涉及到的计算都极其庞大。
尤其是透视投影是典型的计算密集型投影,这个过程涉及到三角计算。
并不是sinx、cosx那种简单的三角计算,涉及到这个过程中的三角计算通常伴随附加有包括矩阵和矢量相乘的运算。
随着场景中所记录细节的量的增大时,用来渲染该场景的冗长计算的数量也将增大,这对CPU是个极大的考验。
常规情况下,涉及到一般物体的投影计算都很吃CPU。
更何况是涉及到下雨这个场景,如果按照你说得这种办法进行透视投影的话。
实时计算量将随着雨滴数量的增多而呈现出指数增长。
恕我直言,别说5s中的A7处理器是一枚桌面级处理器。
就是A7处理器的处理效能在此基础上再翻一番恐怕也只能勉强满足这种运算需求。
巧妇难为无米之炊,如果真的是采用这种方式的话,现有的CPU水平根本无法提供技术支撑。
假设GRAYFOREST所采用的真是这种方式的话。
那么在现有的技术水平下,运行这么一款计算量超级多的游戏时会出现什么样的反应呢?