固定视角2D场景中的3D人物


这些偶然迸发的灵感, 纯属胡思乱想, 记录在此, 希望抛砖引玉.

制作过斜视角 2D 游戏的程序员都知道, 最消耗内存的图象, 是那些可以四处活动的精灵. 为了生动, 我们常常为之保存 8 个方法的图片. 即使这样, 8 个方向也往往表现力有限. 这时我们这些设计引擎的程序员想到了 3D 技术.

云风常常有写奇怪的想法, 下面就是一个:

由于我们的视角固定, 人物的旋转轴只有一个, 在游戏中人物体积不大, 而且不需要缩放. 所以可以结合 2D 的预渲染图片的精美, 和 3D 技术的灵活. 设想人物是一个空心的蒙皮构成的模型. 我们用垂直于旋转轴的平面切割这个模型, 得到一组厚度均为一个像素点的切片. 当我们以固定视角从下向上(或者丛上到下, 带 Z-Buffer 检查) 依次绘制这组切片时, 就重建了这个模型的外观. 当然, 还需要将切片上的法线值记录下来, 引擎实时为模型上光. 对于每个切片数据, 我建议以旋转轴为中心, 以极坐标形式逐点保存. 绘制时采用查表, 那么对于软件的实现将是特别迅速的. 而旋转操作, 仅仅是加减θ值而已了.

这仅仅是一个头脑中的想法, 我知道存在不少的问题, 比如切片的厚度怎么取, 重建模型后会不会有很大的误差/锯齿等现象. 软件光照的误差等等. 这些都要等有人 (也许就是我) 实践后才能知道.


云风 于2000.2.24