问题标签 [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 回答
1451 浏览

actionscript-3 - Flash Player 11 中的 Stage3D 不显示

我正在尝试使用 Stage3D API 在 ActionScript 3.0 中编写 3D 游戏。我已经playerglobal.swc在我的frameworks/libs/player/11.0目录中复制了 ,并frameworks/flex-config.xml通过更改target-playerto11.0.0swf-versionto 来修改文件13

当我编译我的 ActionScript 3.0 文件时,mxmlc我设置了选项-target-player=11.0.0-static-link-runtime-shared-libraries=true. 现在,我在导入时在编译时没有收到错误,com.adobe.utils.AGALMiniAssembler所以flash.display.Stage3D我认为这没有问题。

我在 Opera 中运行编译后的 SWF 文件,我使用的是今天公开发布的最新 Flash Player(版本 11.0.1.152)(干杯;D)。播放器似乎没有问题,因为我可以玩僵尸大亨。但是,当我播放我的 SWF 文件时,Stage3D 不显示;但附加到舞台的所有其他显示对象都会显示。

我相信我的配置或代码存在问题,但我无法确定它。我使用的代码只是从Labs @ Jam3复制而来。我认为视口有问题,所以我简单地替换stage.stage3Ds[0].viewPort=new Rectangle(0, 0, 980, 570);stage.stage3Ds[0].x=0; stage.stage3Ds[0].y=0;. 也许,这就是问题的原因。

我一直在网上寻找解决方案,但我似乎无法找到它。任何帮助将不胜感激。但是请注意,我不希望使用像 Away3D 这样的框架,因为我希望使用低级功能(我更喜欢编程)。如果您想了解更多详细信息,请询问。

0 投票
1 回答
1732 浏览

flash - 将纹理 (BitmapData) 渲染到 2D 空间中的 Stage3D 所需的低级代码是什么?

我查看了以下网站以获取有关编写 AGAL 以将纹理/位图渲染到Stage3D对象的一些信息:

http://iflash3d.com/shaders/my-name-is-agal-i-come-from-adobe-1/

但它似乎涵盖了更多关于如何在 3D 空间中创建对象的内容。或许无法避免?

但无论如何我会问这个:

编写以将多个精灵渲染Stage3D

注意:不需要过滤器、效果或着色器 - 只需位置、缩放和旋转变换。另外,我不是在寻找现有的在后台执行此操作的 3rd 方 API。我想自己试验这种低级语言。

0 投票
1 回答
1420 浏览

flash - Adobe Flex 和 Stage3D

几周前,我开始使用 Adob​​e Flex 和 RIA。在阅读了大量关于这项惊人技术的文章和文章后,我发现了 Stage3D。我搜索了 Flex 和 Stage3D 的集成,但似乎这项技术还不是很有名。我想开发一个虚拟 3D 应用程序,您可以在其中移动 3D 头像等(Java 后端)......使用 Stage3d(当然还有像 Flare3d 之类的框架!太棒了!)这似乎是可能的。但后来我想到了将 Flex 与 Stage3D 集成。例如,Stage3D 应用程序中的 2D Flex 组件(在表面上......)或至少将这两种技术结合起来,以便 Flex 可以用于 HUD 或类似的东西。有人已经对这个新概念有一些经验了吗?

问候,克里斯

0 投票
2 回答
695 浏览

actionscript-3 - 在低级 AGAL 中编码时,您是否需要为每个纹理创建一个新的 Program3D?

例如...

如果我正在开发一个需要多个纹理的应用程序(基本上是唯一的精灵),我是否需要为我希望在应用程序中使用的每个单独的纹理调用context3D.createProgram();并组装一个新的Program3D带有 aVertexShaderAssembler和 a )?FragmentShaderAssembler

Program3D通常在引擎中如何工作?一个程序运行整个事情,还是每个纹理模型地图使用一个程序

我是否正确地假设您只需要Program3D在初始化时间 ( Event.ADDED_TO_STAGE) 期间创建一次,而不是在每个帧 ( Event.ENTER_FRAME) 期间创建一次,对吗?

0 投票
1 回答
164 浏览

flash - 在 ENTER_FRAME 期间在多个 Program3D 之间切换计算成本高吗?

在设置Stage3D's进行渲染时,在一个循环Context3D中切换 's 是否昂贵/不好?Program3DEvent.ENTER_FRAME

我手头没有例子,但我很想知道是否存在这样的情况,会使用程序之间的这种交替,以及帧速率是否会受到很大影响。

0 投票
1 回答
535 浏览

actionscript-3 - 更新 Away3d 4.x Broomstick 中的动态高度图

当我更改高度图的 bimapdata 时,如何更新我的高程对象?

我注意到 getHeightAtPosition() 更新为新位图的值,但高程看起来仍然一样..

(我知道可以遍历几何网格中的所有顶点并根据位图调整它们,但是 Elevation 的好处是您不必这样做。如果它可以在创建时调整位图应该可以更新了..)

0 投票
2 回答
394 浏览

actionscript - Alternativa3D 引擎的任何替代品?

我对 Alternativa3D 引擎很熟悉,对我来说它非常好,但我只是想知道另一个能够与之竞争的 3d 引擎。发动机必须符合以下要求:

  • 必须有良好的 Stage3D 支持

  • 尽可能开源(Alternativa3D 不是开源的,这是主要缺点)

  • 必须有足够的文档和教程

0 投票
1 回答
2165 浏览

actionscript-3 - 如何在模型的局部空间(非全局)中组合 X、Y 和 Z 旋转?

我从 Molehill 开始,在掌握 Matrix3D 时遇到了很多问题。我的第一个问题是如何管理描述单个模型方向的 Matrix3D。

我使用 Matrix3D.appendRotation() 来做到这一点。但是根据我添加的顺序,我会得到不同的结果(显然,因为我在全局空间中一次旋转一个)。我知道这是一个常见问题,我在使用 3d 软件建模时遇到过。但这一次,我必须以编程方式修复它。这是我需要帮助的地方。

首先,如果有任何混淆,这里是图片中的问题:

第 1 步:我渲染一个模型。

起始位置

步骤 2a:我在 X 轴上旋转它。看起来正确!

X轴旋转

步骤 2b:我在 Z 轴上旋转它。看起来正确!

Z轴旋转

所以......如果我在模型的 X 和 Z 轴上旋转我想要这个:

所需的 XZ 旋转

但是,悲伤的脸,我明白了:

在此处输入图像描述

我可以看到问题。我在全局空间中一次添加一个旋转。我需要在对象的本地空间中旋转。我不知道如何做到这一点,或者我什至应该搜索什么(术语等)。代码很简单(而且错误):

我猜我不想使用 Vector3D 轴常数,而是想使用一些归一化向量和一些……呃,东西……代替 modelZRot、modelXRot,最后是 modelYRot。谁能告诉我应用上述所需旋转类型的最佳实践解决方案是什么?

更新:花了一天时间阅读“书籍”(又名 YouTube 上的 KhanAcademy)并在此处开始此演示:3d 旋转矩阵的数学我偶然发现了一种非常接近我想要的“查看”方法解决方案。不幸的是,我只有 50% 的理解。我仍然希望有人能对这个话题有所了解!

问题是,这似乎相当笨重。特别是因为 Vector3D 的旋转角度应该是第四个 (w) 值。更重要的是,Matrix3D 似乎已经有了一个lookAt() 方法。我还没明白……请有人把我从数小时的反复试验中拯救出来!

0 投票
1 回答
3328 浏览

flash - Flash CS5 中的 stage3d 入门,选择哪个框架?

今年我完全脱离了 3d 潮流和 flash 编程的舞台,但我想赶上一些事情,我需要一些技巧。

以下是我所知道的:FP11 具有低级 GPU stage3d API,代号为 Molehill。有一些框架可以帮助您更轻松地访问所有 stage3d 功能。(我知道 Flare3D 和 Alternativa3D)。

最好从哪个框架开始?(不仅仅是提到的2)Flare3D和Alternativa3D的相当少的教程说你需要Flex SKD / Flash Builder,但我必须使用Flash CS5。-我可以吗?

这让我想到了下一个问题。您能否指出我可以看到一些示例/教程的地方?由于 FP11 刚刚在今年秋天发布,似乎很难找到太多帮助。

我想尝试制作一个相当简单的 2d 画布,例如 Photoshop 画布的 GPU 加速选项(可以平滑地旋转和平移)。拥有一个不错的跨平台 gpu 加速的位图和内容的画廊/画布是我在 Flash 中一直想要的东西,但在 CPU 上却做不到。

干杯!

[编辑]

如果您在为 Flash Pro CS5 或 CS5.5 手动制作 FP11 配置文件时遇到问题,请阅读本文并安装相应的 MXP。

0 投票
1 回答
315 浏览

flash - 数字可以在 AGAL 操作中硬编码吗?

如果我尝试简单地将 1.0 添加到寄存器的一个颜色通道,我可以:

  • 用一些我不知道的浮点数语法直接写它,或者......
  • 我是否必须先将数字传递给常数,然后在那里使用该常数寄存器?

我正在尝试做的示例: