【发布时间】:2011-01-21 12:06:06
【问题描述】:
我目前正在开发 AS3 中的 3D 引擎,我已经为即将推出的新 Molehill API 设计了它,但我也想渲染到当前的 AS3 图形 API。我以为我会编写一个基于堆栈的实现来渲染到目标 DisplayObject。然后我意识到我基本上可以创建一个 OpenGL API 风格的接口来从实际的光栅化过程中抽象出我的 3D 引擎。 (就像在 OpenGL 上构建的任何 3D 引擎一样)这也将允许其他 3D 引擎像使用任何其他导入的库一样使用代码。显然会有处理视口、矩阵堆栈等的功能,但我是一个简单的例子:
AS3GL.begin( AS3GL.GL_TRIANGLES );
AS3GL.color3f(1,0,0);
AS3GL.vertex2f(0,0);
AS3GL.color3f(0,1,0);
AS3GL.vertex2f(.5,0);
AS3GL.color3f(0,0,1);
AS3GL.vertex2f(.5,.5);
AS3GL.end();
我想知道在 AS3 上是否已经存在类似的东西我可以使用,或者是否有人有任何关于 OpenGL 的内部状态系统和/或堆栈实现的详细信息。
【问题讨论】:
-
这是个好问题。我还没有看到这个实现,但这是我过去考虑过的事情。打算考虑一下...我可能会回来回答...
-
所以你想用这些函数重新创建即时模式,每帧调用一次,没有显示列表,没有顶点缓冲区? OpenGL 已经放弃了这种方法,但也许您的目标是最简单的程序员模型,无需额外设置。
-
我见过的最接近的似乎是 Yogurt3D (drawlogic.com/2009/04/30/…)。该网站目前已关闭,但我记得以前看过一些令人印象深刻的演示。
-
@alex,我从我自己的实际使用角度考虑这个问题。我刚刚创建了一个 Molehill 3D 引擎,我想重用渲染器代码以与我们将数据传递到 Molehill 的方式相同/类似的方式将命令传递给光栅化器 API。但我明白你关于立即模式的观点,我假设你在谈论可编程顶点着色器等
-
@George 我认为 Yogurt3D 实际上是用 OpenGL 指令分析现有的 C 代码并将其迁移到 Flash,这不是我真正要谈论的方法,我只是在考虑与介于当前的 GPU API 和 Flash 应用程序本身之间,但仍以 Flash 编写。
标签: actionscript-3 api opengl graphics 3d