问题标签 [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 投票
2 回答
1994 浏览

actionscript - 如何使用 Agal 在 Stage3D 中的位图上绘制一条线?

如何使用 Agal 在 Stage3D 中的位图上绘制一条线?有人可以提供代码示例吗?

0 投票
3 回答
153 浏览

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

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

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

谢谢

0 投票
1 回答
593 浏览

actionscript - 使用 Stage3D/AGAL 的简单平面着色

我对 3D 开发比较陌生,目前正在使用 Actionscript、Stage3D 和 AGAL 来学习。我正在尝试创建一个带有平面阴影的简单程序网格的场景。但是,我一直坚持到底应该如何将表面法线传递给着色器以进行照明。我真的很想为每个三角形使用一个单一的表面法线,并为每个三角形做平面,甚至着色。我知道通过每个顶点的法线来实现更好看的照明很容易,但这是我所追求的外观。

由于着色器通常处理每个顶点,而不是每个三角形,我是否可以只为每个三角形传递一个法线,而不是每个顶点一个法线?我的想法完全在这里吗?如果有人有一个简单的平面阴影的工作示例,我将不胜感激。

0 投票
2 回答
486 浏览

actionscript-3 - AGAL HELP:在 2D 纹理、2D 渲染中,如何使用 agal 从程序常量的 x、y 偏移量计算顶点

我希望有人可以对我的 agal 问题有所了解:

我有一个 64x64 固定大小的纹理。uv 和顶点也是固定的。

现在我需要在 2D 阶段移动它。

我目前使用的方法是每次从这个纹理中绘制三角形时计算和上传一个新顶点。

我发现 VertexBuffer3D.uploadFromByteArray 需要大量时间来处理。

我相信在 agal 中必须有更聪明的方法来做到这一点。

我可以在顶点阴影的常量寄存器中传递 x、y 偏移量,并在 agal 中计算顶点大小吗?

如果这是可能的,我该怎么做?

0 投票
1 回答
1121 浏览

performance - 2 通道法线贴图的性能成本和缺点是什么?

我正在做的是使用法线贴图来照亮 2D 精灵。最初我打算在图像红色通道中使用凹凸/高度图,并使用其他两个通道来存储其他信息。我的想法是,因为我知道法线贴图上的任何法线总是在 [0 .. 1] 范围内具有 z 值,我可以从蓝色通道中排除此信息并根据 x 的长度计算 z 值和 y 值。所以我试了一下,它似乎到目前为止工作,它看起来几乎和原来的一样。

我的问题是附加说明的费用是多少?有一些额外的乘法和加法以及另外两个 sqrt 调用。

这是使用的片段着色器:

0 投票
1 回答
372 浏览

actionscript-3 - Adboe AGAL 对寄存器感到困惑

我对寄存器有点困惑。

在这篇文章中, http://www.adobe.com/devnet/flashplayer/articles/what-is-agal.html

有两行 AGAL 代码

第一行将计算结果放入运算寄存器,但第二行没有操作运算寄存器,

那么做第一行是什么意思?

我还找到了一个演示:

在vertexShader中,前三行也将reslut放在op中,但第四行alos没有使用它。

那是什么意思?

谢谢

0 投票
3 回答
764 浏览

actionscript-3 - 我可以使用 AS3 Stage3D AGAL 来实现类似 CUDA 的处理吗?

我有一个程序可以在 320x240 流运行时检测球,但是如果我流更大的分辨率,它会变得太慢。我假设如果我可以使用 GPU 来计算每个像素(以及它们的相邻帧和相邻像素),它会更快。任何人都知道我是否可以使用 AGAL 从 GPU 取回数据?

在排序中,我有下面的循环,通过帧的每个像素,我想在 GPU 上计算最多,以获得更好的性能。

0 投票
2 回答
1129 浏览

actionscript-3 - How do I pass barycentric coordinates to an AGAL shader? (AGAL wireframe shader)

I would like to create a wire frame effect using a shader program written in AGAL for Stage3D.

I have been Googling and I understand that I can determine how close a pixel is to the edge of a triangle using barycentric coordinates (BC) passed into the fragment program via the vertex program, then colour it accordingly if it is close enough.

My confusion is in what method I would use to pass this information into the shader program. I have a simple example set up with a cube, 8 vertices and an index buffer to draw triangles between using them.

If I was to place the BC's into the vertex buffer then that wouldn't make sense as they would need to be different depending on which triangle was being rendered; e.g. Vetex1 might need (1,0,0) when rendered with Vetex2 and Vetex3, but another value when rendered with Vetex5 and Vetex6. Perhaps I am not understanding the method completely.

Do I need to duplicate vertex positions and add the aditional data into the vertex buffer, essentially making 3 vertices per triangle and tripling my vertex count? Do I always give the vertex a (1,0,0), (0,1,0) or (0,0,1) value or is this just an example? Am I over complicating this and is there an easier way to do wire-frame with shaders and Stage3d?

Hope that fully explains my problems. Answers are much appreciated, thanks!

0 投票
1 回答
240 浏览

actionscript-3 - 这个 AGAL 输出正确吗?

我正在尝试转换此着色器:

结果(这个输出对你来说看起来不错吗?或者我遗漏了一些东西):

但是,如果我将 AGAL 顶点着色器更改为一些非常简单的工作,我将无法显示任何内容:

当我通过以下方式将 GLSL 转换为 AGAL 时,我添加了常量:

我准备了所有这样的缓冲区:

有什么建议么?

0 投票
1 回答
444 浏览

flash - Flash 和 AGAL:如何正确插入法线向量

我正在尝试编写一组着色器来绘制曲面的边缘(不是多边形!),就像在游戏Echochrome中一样。

根据我对图形编程的记忆,这样做的技术是进行多通道渲染。第一遍应该将面部法线向量和深度编码为 RGBA 颜色并将它们绘制到纹理上。如果当前片段的法线或深度信息与周围纹素的法线或深度有显着差异,则第二遍应查找纹理中的值并绘制边缘。

(注意:如果有更简单的方法,请告诉我,特别是如果在 Flash 中很容易做到。但是,我的具体问题如下。)

我在编写第一遍时遇到了障碍。根据我在使用 DirectX 9.0c 进行 3D 游戏编程的介绍:Frank D. Luna 的着色器方法中读到的内容,“插入”法线向量的正确方法是对三角形顶点的法线向量求平均,然后使用它表面上每个片段的值。但是,我的片段着色器改为对法线向量进行插值,这导致为表面绘制渐变而不是纯色。

如何让 AGAL 进行必要的平均而不是插值?