问题标签 [agal]

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 回答
277 浏览

actionscript - 使用 Actionscript Matrix3D 的矩阵连接

我想从 Stage3D 框架中获得正确渲染的投影结果,该框架通过其 API 呈现某种“灰盒”界面。它是灰色而不是黑色,因为我可以看到这个关键的源代码片段:

完全适合我需要的投影渲染技术来自一个有用的教程,该教程直接与 AGAL 一起使用,而不是任何特定的框架。其可比较的渲染逻辑片段如下所示:

因此,我相信对这里发生的事情的正确概括总结是,两段代码都在设置要发送到顶点着色器的正确组合矩阵,该矩阵将成为 m44 AGAL 操作的参数。一般的描述是组合矩阵将带我们从对象局部空间通过相机视图空间到屏幕或剪辑空间。

我的问题可以概括为我对正确的矩阵运算的无知。我相信我合并这两种环境的失败尝试正是因为将一个矩阵附加到另一个矩阵的语义不是,也绝不打算等同于将该矩阵附加到另一个矩阵。那么,我的要求可以这样概括。因为我无法控制框架将发出的调用顺序,例如,我必须接受追加操作,所以我只能尝试在准备要追加的矩阵的一侧修复问题。该代码不是黑盒代码,但它太复杂了,我不知道如何更改它以满足框架提出的接口要求。

是否有一些倒置、转换或其他操作序列可以让我修改设计为预先添加的 viewProjection 矩阵,以便它在添加到对象的世界空间坐标时正确显示?

0 投票
2 回答
428 浏览

actionscript-3 - stage3d uv 映射如何工作?

我是 3d 编程的新手。最近我发现 uv 映射让我很困惑。

使用

我将 v1 作为 uv 坐标,将 fs0 作为纹理位图,这按原样工作。纹理包裹了 3D 对象。

但是我只用一个坐标 v1 将 ft0 复制到 oc 一次,系统如何知道要填充 else 区域的内容?

而且我也没有提供顶点坐标,片段程序是调用每个像素还是每个顶点渲染?

0 投票
1 回答
897 浏览

actionscript-3 - 如何实现纹理的运行时压缩?

我在这里阅读了文档:

http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7d5b.html

Flash Player 11.4 和 AIR 3.4 支持运行时纹理压缩,这在某些情况下很有用,例如从矢量图渲染动态纹理时。要使用运行时纹理压缩,请执行以下步骤:

通过调用 Context3D.createTexture() 方法创建纹理对象,在第三个参数中传递 flash.display3D.Context3DTextureFormat.COMPRESSED 或 flash.display3D.Context3DTextureFormat.COMPRESSED_ALPHA。使用 createTexture() 返回的 flash.display3D.textures.Texture 实例,调用 flash.display3D.textures.Texture.uploadFromBitmapData() 或 flash.display3D.textures.Texture.uploadFromByteArray()。这些方法一步上传和压缩纹理。

我尝试按照步骤操作,但出现错误:

错误:错误 #3763:采样器 0 绑定的纹理与 AGAL 中指定的读取模式不匹配。必须显式声明读取压缩或单/双通道纹理。在 flash.display3D::Context3D/drawTriangles()

我也应该在 agal 方面放一些说明吗?

这是完整的代码:

注意:在我尝试并失败后,我没有使用嵌入的 png 作为纹理,只是一个空的 bitmapdata 创建的运行时无法在我的 macos flash 播放器 11.8 上运行

从这里抓取AGALMiniAssembler.as:https://github.com/PrimaryFeather/Starling-Framework/blob/master/starling/src/com/adobe/utils/AGALMiniAssembler.as

0 投票
1 回答
473 浏览

actionscript-3 - what's the agal tex syntax?

Here is the syntax I've read

tex t a b - Samples the texture in b (which should be one of the fs registers) at the coordinates in a, putting the resulting colour in t.

but In some opensource project code I found someone wrote tex like this:

and this

which really confusing me about what stuff I can put in <> it seems no order requirement

thanks for any hints

0 投票
1 回答
182 浏览

actionscript-3 - 用于 3D 镜面反射的反射光逻辑

我正在尝试向 Stage3D 游戏添加镜面反射,它几乎可以正常工作,但我认为我对实际反射阶段发生的数学运算没有足够好的把握。
我有一个入射光矢量,我的脸是法线;我知道如何处理生成的反射向量(归一化,然后用指向播放器“相机”的归一化向量进行点积)但是将原始光向量反射到面部的 AGAL 操作码是什么?我无法理解这一点。任何帮助表示赞赏...

0 投票
1 回答
276 浏览

actionscript-3 - Stage3D 中的阴影投射着色器

我一直在使用 AGAL 顶点和片段着色器。我已经正确点亮了单个对象(包括镜面反射阴影),但我想让对象在其他对象上投射阴影。我在网上看过,但我认为大多数直接使用 AGAL 的人都构建了自定义 Stage3D 库,并且阴影投射解决方案似乎不在公共领域。有人愿意改变吗?
我想知道如何让一个物体在另一个物体上投下阴影。我无法发布我尝试过的内容,因为我不知道从哪里开始解决这个问题。您将如何将信息(其他对象是否阻挡光线)传递到另一个对象的着色器?
谢谢。

0 投票
1 回答
298 浏览

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

如何移动这样的计算:

在着色器中?

我目前的做法:

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

0 投票
1 回答
218 浏览

actionscript-3 - AGAL 操作码 mul 和 dp4

我正在尝试深入研究 AGAL 代码并有一些对我来说很有趣的问题。

第一个问题是关于操作码的muldp4
如果我是对的,mul 会执行以下 操作

dp4 ft0, ft0, ft5与 相同mul,但您可以通过使用另一个组件订单来更改订单,例如ft0.argb
先感谢您!

0 投票
2 回答
389 浏览

flash - AGAL - 剪辑空间 M44 op, va0,vc0 的位置

M44 op, va0,vc0 - 这是什么意思?这是顶点着色器的第一行。我多次看到它,但是我不明白以下内容: Vc0 - 空 3d 矩阵 - 对象的位置 Va0 - 顶点坐标

为什么要在矩阵上乘向量?

先感谢您!

0 投票
1 回答
311 浏览

flash - AGAL - Optcode NRM - 将矢量标准化为大小 1 - 为什么使用它?

各位晚上好!

我有一个我试图理解的代码示例:

虽然我无法想象大多数操作(我尝试在纸上进行所有计算以了解程序的含义 - 我想这是可能的)但 NRM optcode 最让我感到困惑。我无法理解我们为什么要这样做。我发现每个向量的长度都从 0,0,0 到它的坐标。归一化向量的长度为 1。这对计算有何帮助?先感谢您!