问题标签 [stage3d]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
flash - 用于矢量渲染的 Flash 11 和 Stage3D?
我有一个严重依赖本机 Flash 渲染器的 Flash 应用程序(主要是带有一堆 lineto、curveto 命令的矢量绘图)。
我见过的大多数演示和基准测试都只是调整大小/旋转精灵。新的 3d 引擎会提高主要进行矢量渲染的应用程序的性能吗?
flash - AGAL 和可变寄存器
我只是想这样做是如何工作的。所以我在垂直着色器中。我存储从 va1 到 v1 的 UV 坐标。在片段着色器中,插值纹理坐标现在在 v1 中可用于采样。引擎盖下是否有联系,比如语义,将 v1 与正常坐标相关联?
片段是按三角形推送到片段着色器还是在整个网格的几何顶点通过时被推送到片段着色器?
在顶点着色器中,假设我将模型视图乘以顶点的位置。然后我想与片段着色器共享我的 z 坐标以获取其他内容。我将转换后的向量的 z-cord 存储到 v3 中。一旦我进入片段着色器并访问 v3 的 z 坐标,这是我传入的相同 z 坐标还是这个 z 坐标会被两者之间的透视划分改变?我只是问,因为我想澄清在这些寄存器中存储值时描述的“插值”行为。
flash - 如何在全屏和标准屏幕模式之间切换 Stage3D?
我正在使用 ND2D 库(由NullDesign 制作,引擎的源代码可在github 上获得)测试一些东西。
我遇到的是,如果我将 Flash 应用程序切换到全屏模式,World2D
(或Stage3D
/Context3D
埋在其中)不会自动拉伸以将其最大化到整个屏幕分辨率。
我是否需要将我的设置重新初始化为新的全屏尺寸?如果stage.scaleMode
设置为"NO_SCALE"
怎么办?这是否会影响舞台以来的尺寸,虽然看起来更大,但仍会保留相同的坐标系和尺寸?
如果有人知道如何正确切换全屏模式Stage3D
,请提供一些启示!
如果您在 ND2D 中有解决方案,那就更好了 :)
谢谢!
flash - 如何使用 VertexBuffer3D 操作分层显示结构中的对象?
为了更好地解释我想要实现的目标,这里有一个简单的例子:
场景 1:在某个 3D 容器对象中,我想添加两个 Cube:一个没有任何变换,一个具有较小的位置、旋转和缩放调整。添加这两个立方体后,我还想变换容器的位置、旋转和比例。
场景 2:在 3D 角色的身体中,它由许多分层的子项(和子子项)组成,每个子项在动画过程中都有各种变换。
所以我的问题是:
如何有效地计算这些单独的 3D 对象转换?甚至可以只用一个来做到这一点VertexBuffer3D
吗?还是我需要几个VertexBuffer3D
来跟踪每个对象?使用多个VertexBuffer3D
似乎可能会达到限制(但我没有阅读足够的Stage3D
/Context3D
文档来确定)。
flash - 在 AGAL 顶点着色器中,输出着色器中使用的“w”组件是什么?
我了解顶点位置的“xyz”组件,但“w”有什么作用?它可以一直保持相同的常数值吗?
例子:
flash - Stage3D 剔除混乱
在 OpenGL 中,默认设置是:
- 坐标系 = 右手,有
+x->right, +y->up, +z->towards-viewer
. - 因此,围绕 z 的正向旋转会将 x 基向量移动到 y(逆时针)。
- 前面的多边形被定义为逆时针顶点。
- 背面的剔除通过以下方式实现:
好的,我们都知道这一点。在 Flash11/Molehill/Stage3d
中,默认值应该是相同的。
但是,如果我通过以下方式在步骤 4 中启用背面剔除:
我的脸被剔除。似乎默认值为 Context3DTriangleFace.FRONT。我在 OpenGL 和 Stage3D 中创建了一个完整性检查案例,它们在其他方面是相同的。相同的顶点/索引列表,保留默认值,相同的正交投影矩阵,标识 ModelView,但我必须将剔除设置为 FRONT 而不是 BACK。
好像 Stage3D 有不同的绕线默认值。即,好像在引擎盖下,OpenGL 已设置为:glFrontFace(GL_CW); 而不是 OpenGLs 默认值:glFrontFace(GL_CCW);
有没有其他人遇到过这个?快把我逼疯了...
flash - Adobe 到底是什么意思 VertexShader 有 8 个输入的限制?
这是否意味着每个顶点的数据集只能传递总共8 个浮点值?
这是否意味着您只能拥有以下一项?
- FLOAT_4的2 个输入。
- FLOAT_2的4 个输入。
- FLOAT_1的8个输入。
- 任何可以加起来总共有8 个浮点值的混合物?
是这样吗?因为如果是这样,那么在他们的文档中说可以使用 8 个输入确实具有误导性。
也许我遇到了麻烦,因为我没有正确格式化我的数据,但我试图使用9 floats per vertices,如:
- va0 将是FLOAT_4,偏移量设置为0。
- va1 将是FLOAT_4,偏移量设置为4。
- va2 将是FLOAT_1,偏移量设置为8。
但是这个实验的屏幕上什么也没有出现。我是否超出了 VertexShader 输入限制?
flash - 将纹理分别应用到立方体的每一侧?
使用 Away3D,我成功地显示了一个立方体。到目前为止,如果我想在立方体的每一侧独立显示纹理(每一侧都有不同的纹理),我必须将它们全部放在一个纹理中,有点像精灵贴图。有没有办法可以做到这一点,以便我可以在立方体的每一侧应用不同的位图?到目前为止,这是我的代码:
flash - 将外部模型导入 Stage3D 的选项有哪些?
从我通过快速的谷歌查找发现,Stage3D 对模型导入的支持并不是最好的。
有没有人试图做这样的事情并且可以为我提供一些关于如何做的信息?
我对能够使用 COLLADA/FBX 或类似产品的进口商感兴趣。
提前致谢!
flash - 可以在 Context3D 中重置/取消常量(顶点或片段)吗?
如果我对各种实例进行多次绘制调用,如果我在下一个分配中不再使用它们Program3D
,是否有办法重置或使常量无效?Program3D
我有必要做这样的事情吗?