阅读提示:为防止内容获取不全,请勿使用浏览器阅读模式。
传统情况下,在2D形式进行类似于3D的表现首先要在2D游戏场景中设置3D渲染区域。
在3D渲染区域要放上想要表达的多个2D图片。
当然2D图片并不是随意放置的,要将所述多个2D图片渲染成相邻图片的两侧边缘顺次连接在一起的折叠册页的3形式。
这样做的话当程序开始接受到输入信息(诸如对触屏上的滑动手势之类的)做出响应时。
就会将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视觉效果。
(当然了以上所有的3D都是伪3D,这里的3D指的都是指3D视觉效果)
这对于一般的2D做3D效果确实可以做到。
可是雨滴欸,雨滴怎么完成上述过程?
别说是游戏里的折叠册效果了,就是下雨场景用现实中的立体书也很难表示好不好?
还有涉及到雨滴的正交投影和透视投影倒是不难。
但是很多滴雨滴怎么处置?
一滴一滴地安排吗?
还是说这刚好佐证了GRAYFOREST利用了游戏引擎呢?