1

最终,papervision3d(流行的 Flash 3D 渲染包)如何将转换后的纹理绘制到屏幕上?

它是在内部使用 Flash 的任何渲染设备 - 即通过将纹理绘制到 DisplayObjects 并转换它们,还是使用 3D MovieClips?或者也许是过滤器?或者它最终只是从纹理中读取像素并将它们绘制到输出中,就像您在任何软件平台中所做的那样?

我问是因为直截了当的答案是后一个,但经过一些测试后,这种方法似乎getPixel并不setPixel够快,所以似乎一定有更神秘的事情发生。

感谢您提供任何信息!

编辑 - 我对答案的总结:Papervision 本身不做透视变换。它只会对每个纹理三角形进行缩放和倾斜变换,如果使用足够多的三角形,就会出现透视错觉。仿射变换使用 Flash 的渲染设备,因此避免了昂贵的像素操作。

4

1 回答 1

5

这一切都是使用绘图 API 呈现的。(lineTo) 使用绘图 API,您可以设置 bitmapFill ratehr 而不是颜色,这允许您绘制纹理。在内部,它们将您作为纹理传入的每个资产转换为渲染时使用的 BitmapData 对象。然后,对于您的 3D 对象所具有的任何细分(三角形),它们预先对其进行转换以获得正确的视角。

这种方法仍然是处理器密集型的,但比设置每个像素更快。它的工作原理与其他 3D 渲染软件非常相似,使用专门为 ActionScript 构建的 smae 技术和理论。

于 2009-05-16T16:17:49.813 回答