问题标签 [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.

0 投票
1 回答
477 浏览

flash - 在 Direct3D 或 OpenGL 应用程序中使用 Stage 3D

在 Stage 3D 出现之前,我可以简单地使用就地站点捕获 Flash 渲染引擎的输出并将其用作纹理。但是现在,Stage 3D 似乎无法无窗渲染...

有没有办法捕获在直接模式下运行的闪光灯控制的输出?或者有没有办法让它们渲染到提供的表面?

0 投票
3 回答
1891 浏览

flash - Scaleform 与 Stage3d

考虑到现在 Flash 同时具有 Stage3D 和对虚幻引擎的原生支持(我的意思是,至少对虚幻引擎游戏),我很好奇将来是否需要 Scaleform(以当前形式)。

我问这个主要是出于好奇,因为我找不到太多关于 UE 如何与 Flash 一起工作的信息。另外,我没有使用过 Scaleform,只是阅读了它(Scaleform 工作流程),而且他们在任何地方都没有提到 stage3d。

我不确定这是否是询问 Scaleform 的最佳地点(似乎没有 Scaleform 标签),但在我看来,现在它们和 stage3d 之间应该有某种桥梁。

你们有什么感想?

0 投票
0 回答
236 浏览

ipad - 用于游戏的 Stage3D - 可用设备

我刚刚开始使用 AS3 开发塔防游戏 - 似乎:

  1. 等轴测引擎将是必要的
  2. 屏幕上会同时出现大量带有大量动画的不同模型,因此,这里流行的 blitting 算法可能会在所需的内存资源方面扼杀应用程序
  3. 为了使游戏资源更可重用(无论是本游戏还是续作),它们很可能会在 3D 工具中创建,然后渲染成精灵表。

主要目标设备将是 iPad (AIR)。阅读了官方文档后,我得到的印象是 Stage3D 是可以使用的。问题是:

  • 您可以使用 Stage3D 为 iPad 构建一个 AIR 应用程序(并且可以运行)吗?其他设备呢?
  • 在性能和易用性方面我能得到什么吗?(精灵表与直接 3D 模型;伪 3D(等距)与真实 3D)

想法、意见、经验?

更新:

第 1 部分:是的,你可以;适用于 iPad 和 Android 设备。让它工作需要经过严格的本地和基于设备的测试

第 2 部分:(研究中)

0 投票
1 回答
888 浏览

actionscript-3 - 在 Flash Builder 4.6 中为移动应用程序使用直接渲染模式的任何 *正常* 方式?

我尝试使用 Flash Builder 4.6 中的 Stage3D 制作移动应用程序(air 3.2),但每当我尝试调试应用程序时,我都会收到错误消息,提示 Stage3D 不可用。

我必须手动编辑 bin-debug/MyApp.xml 并设置<renderMode>direct</renderMode>它才能工作。

是否有任何正常的方法可以在 Flash Builder 中选择直接渲染模式,而无需手动编辑应用 XML?

0 投票
1 回答
1050 浏览

actionscript-3 - 在 Flash 中读取 STL 文件

是否发布了一个库来读取 AS3 中的 .STL 文件?它似乎是一个常见的 3d 文件,我还没有找到在 Stage3d 中输出 .STL 文件的任何希望。

0 投票
2 回答
333 浏览

flash - 混合不同的 Program3D 会导致某些对象无法渲染

我在使用 Stage3D 时遇到了一些意想不到的事情。我为我的对象制作了两个不同的着色器程序。其中一个程序用于使用纹理位图和 uv 数据。另一个只是使用颜色数据。这两个对象非常不同,因为最终,我将使用纯色和简单的渲染逻辑显示一些内容(如方向线、高光等),而其他内容(如实际对象、背景等)将使用 mipmap 等进行渲染向前。问题是当我使用这两个非常不同的着色器程序时,只有一个可以工作。所以要么出现我所有的纯颜色对象,要么出现我所有的纯纹理对象。显然,我希望两者都出现。

这是纹理对象的 agal 代码:

顶点着色器:

片段着色器:

这些对象的渲染代码如下所示:

这是我用于纯色对象的 agal 代码(即没有纹理):

顶点着色器:

片段着色器:

这些对象的渲染代码如下所示:

由于某种我无法弄清楚的原因,我将不同的数据分配给不同的不同寄存器索引 (va) 的事实导致其中一个渲染过程失败。如果我首先在纹理循环中渲染纹理对象,我所有的彩色对象都会消失,反之亦然。对象将在第一帧正确显示。但是一旦渲染循环第二次播放,就会发生这种意外行为。

我发现如果我通过添加以下内容来修改颜色对象的渲染代码:

有用。但这确实不是一个好的解决方案。我不想知道在我的程序的某个地方,另一个对象正在使用 n 个不同的寄存器进行渲染,所以如果另一个 program3D 实例需要小于 n,我必须将所有那些未使用的 va 设置为 null。此外,如果我为现在需要第 4 个 va 的某个对象(例如发光对象)创建一个新的着色器程序,现在我必须返回并修改所有其他着色器程序以将 va4 设置为 null,以便一切都可以渲染。这是真的吗?当然,我在这里遗漏了一些东西。设置我所有的纹理寄存器(ft)也是如此。

我可以提供更多信息...

0 投票
1 回答
1472 浏览

actionscript-3 - 使用 Stage3D 渲染不同对象时使用顶点缓冲区的最佳方法是什么

我有一组简单的二维对象,主要由两个三角形组成。尽管对象非常简单,但每个对象都是使用模板操作绘制的,因此每个对象都需要自己drawTriangles()调用。

存储和处理这些对象及其顶点和索引缓冲区的最佳方法是什么?

我可以想到几种不同的方法:

  1. 在启动时创建一个大的顶点和索引缓冲区并将每个对象添加到其中,例如:

    在所有对象的渲染循环期间,检查哪些对象在屏幕上可见并更新它们的顶点。然后重新上传整个顶点缓冲区。然后循环遍历可见对象并使用单独调用绘制每个对象的三角形drawTriangles()

    /li>
  2. 除了仅在需要时重新上传每个对象的顶点数据之外,您还可以执行类似于数字 1 的操作:

    /li>
  3. 您还可以创建一个新的顶点缓冲区,该缓冲区仅包含每帧上的可见对象:

    /li>
  4. 另一种选择是为每个对象创建单独的顶点缓冲区:

    /li>

我可以想象选项 1 会很慢,因为每个帧都需要上传整个顶点缓冲区。
选项 2 的优点是它只需要上传已更改但可能会遭受多次调用的顶点数据uploadFromVector

更新

我看过 Starling 框架源代码,特别是QuadBatch类: http:
//gamua.com/starling/
https://github.com/PrimaryFeather/Starling-Framework

似乎所有顶点都是事先手动转换的,并且每帧都会重建和上传整个顶点缓冲区。

0 投票
2 回答
837 浏览

actionscript-3 - 模型视图投影矩阵应该在 Actionscript 3 中构建还是在顶点着色器中的 GPU 上构建?

我见过的所有 Stage3D 示例在每个渲染事件上都在 AS3 中构建模型视图投影矩阵。例如:

顶点着色器中的一行将顶点转换为屏幕空间:

这样做有理由吗?GPU不就是为了这些计算而设计的吗?

为什么不只在视图和投影矩阵发生变化时更新它们并将它们上传到单独的寄存器:

然后在每个帧和每个对象上:

而着色器看起来像这样:

更新

我现在在这里发现了另一个可能已经回答了这个问题的问题:
DirectX 世界视图矩阵乘法 - GPU 或 CPU 的地方

0 投票
2 回答
3895 浏览

ios - Adobe Air App 最低 IOS 版本

我正在使用 Adob​​e Air 3.2 使用新的 stage 3D 功能为 IOS 编写应用程序。我可以定位的最低 IOS 版本是多少?

此外,为了以新的 Ipad 3 为目标,您似乎需要指示编译器引用 IOS 5.1。这是否意味着如果我使用该设置进行编译,我将无法在较低的 IOS 版本上运行我的应用程序?

0 投票
2 回答
255 浏览

actionscript-3 - 如何防止用户在 3D 游戏中逆向行驶

我正在使用 Flare3D 在 Flash 中制作 3D 游戏,并且我有一条由长直线段和短曲线段组成的轨道。玩家可以自由驾驶他们的汽车,但我需要能够防止他们掉头并在赛道上向后行驶。

关于如何做到这一点的任何想法?