问题标签 [molehill]

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 投票
2 回答
333 浏览

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

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

这是纹理对象的 agal 代码:

顶点着色器:

片段着色器:

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

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

顶点着色器:

片段着色器:

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

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

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

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

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

0 投票
1 回答
152 浏览

actionscript-3 - 如何将 Robotlegs 与 Molehill 集成?

我想扩展 Robotlegs (1.5.2) SignalContext 以允许 AGAL / Molehill 3D。那里有一个 Away3d 端口以及与 Starling 兼容的机器人腿构建的开始 - 但这看起来不完整。至少我想这需要一个自定义 SignalContext 和 MediatorMap 但我想看看其他人是否正在考虑它(可能是下一个 Robotlegs 的主要版本?)

任何关于如何实现这一目标的想法表示赞赏

干杯!

0 投票
3 回答
153 浏览

adobe - 为什么在 AGAL 中我们在 createVertexBuffer 方法中有一个最大值为 64 的 data32PerVertex?

我不明白这个 64 值......据我所知,我们有 8 个最大寄存器,每个寄存器的大小为 128 位(4 data32),

所以我们不能访问超过 32 个数据 32?我错了吗 ?对于我们可以存储在顶点中的其他 32 个数据 32 是什么?

谢谢

0 投票
3 回答
841 浏览

actionscript-3 - 质量差的纹理stage3D

我在 stage3D 中绘制了一个简单的正方形,但是图片中的数字和边缘的质量并没有达到应有的水平:

正方形

这是带有(小)源代码的示例,我将最多的源代码放在一个文件中。 http://users.telenet.be/fusion/SquareQuality/
http://users.telenet.be/fusion/SquareQuality/srcview/

我正在使用 mipmapping,在我的着色器中我使用“<2d, miplinear, repeat>”,纹理为 256x256 jpg(比图像上的大),还尝试了 png,尝试了“mipnearest”并尝试不使用 mipmapping。抗锯齿 4,但 10 或更多根本没有帮助......

有任何想法吗?问候,托马斯

0 投票
1 回答
70 浏览

molehill - adobe molehill android setting

Using Flash Builder 4.6 & SDK 4.6 Away3d and Starling Interoperation device - samsung galuxy s3

debugging on device, its run well. install exported apk on the device, its just white background.

[app name]_app.xml file setting is

0 投票
1 回答
592 浏览

shader - AGAL:在片段着色器中计算屏幕空间位置

在我更详细地定义我的问题之前,我想我应该首先解释我是如何设置所有内容的。

基本上我有一个简单的平面网格,定义如下(x,y,z,u,v):

这里没有什么好玩的。但是,我渲染它的方式就是一切都失败了。它是使用两个渲染通道渲染的;第一个是一个简单的片段着色器,它简单地将颜色复制到输出并渲染到 512x512 纹理。尽管如此,一切正常。它在第二个渲染过程中我的问题在于。

第二个也是最后一个渲染通道渲染相同的几何图形,但片段(像素)的颜色应该从第一个通道渲染的纹理中获取。这就是我的问题所在,我需要一种方法来正确计算当前像素在屏幕空间坐标中的位置,或者准确地说是 UV 坐标,以便正确地从纹理中提取它们。

我已经对如何计算这个位置进行了一些研究,但不知何故我最终创造了一个万花筒般的效果。然而,这种效果仅在 X 或 Z 轴上旋转网格时才明显,而不是 Y 轴上,如此处所示

轮换比较

用于第二遍的片段程序,即创建此效果的片段程序,如下所示

最后一点,我对这一切都很陌生。所以我可能会遗漏一些明显的东西,因此我提前道歉。

如果你想看看代码中所有不存在的荣耀,可以在这里找到 Github 存储库。

0 投票
1 回答
298 浏览

actionscript-3 - AGAL:m44 而不是 Matrix3D.append()

如何移动这样的计算:

在着色器中?

我目前的做法:

在 vt4 中产生错误的结果。我究竟做错了什么?

0 投票
0 回答
51 浏览

actionscript-3 - 如何使用 Matrix3D.appendTranslation()?

在舞台 3d 中,我设置了一个基本三角形,我可以使用附加旋转和附加比例,一切正常,但是在 z 轴上使用附加平移,三角形将消失,平移为 1 或更高。对于其他形状,它只会消失 3 或更高。而且看起来三角形在 0 到 0.9 平移之间并没有变得更小/更远。x 和 y 轴上的平移确实有效。

这是我的着色器代码:

我的渲染循环:

我的完整代码: