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

actionscript-3 - Stage3D 功能

我一直在学习 stage3D,并且正在尝试第一次渲染一些东西。在这个程序的过程中没有出现运行时错误,但我没有看到任何输出......我的代码如下(必要时带有注释)

我已经将此与几个在线示例进行了比较,并且没有发现任何差异。我在想可能有一些我忽略的设置,或者我缺少的要求......不过我迷路了。想法?

0 投票
1 回答
576 浏览

actionscript-3 - Stage3D, AGAL - 顶点和纹理的坐标系

我一直在尝试使用更复杂的着色器,并且遇到了顶点着色器和纹理采样器使用的坐标系问题。简而言之:它们似乎没有任何意义,并且在尝试测试它们时,我最终得到不一致的结果。更糟糕的是,互联网上几乎没有文档,而且我发现的大多数信息似乎都希望我知道这是如何工作的。我希望有人可以澄清以下内容:

  • 顶点着色器传递一个 (x, y, z) 表示渲染目标上的位置。x、y 和 z 的可接受值是多少?
  • x 和 y 如何对应后台缓冲区的宽度和高度(假设它是渲染目标)?
  • x 和 y 如何对应输出纹理的宽度和高度(假设它是渲染目标)?
  • 当 x=0 和 y=0 时,顶点在哪里?
  • 纹理采样器在 (u, v) 坐标处对纹理进行采样。u 和 v 的可接受值是多少?
  • u 和 v 如何与被采样纹理的宽度和高度对应?
  • AGAL 的 wrap、clamp 和 repeat 标志如何改变采样,如果没有给出默认行为是什么?
  • 在 u=0 和 v=0 采样时,哪个像素按位置返回?

编辑: 根据我的测试,我相信答案是:

  • 不确定
  • -1 是左/下,1 是右/上
  • 不确定
  • 在输出的中心
  • 不确定
  • 0 是左/下,1 是右/上
  • 不确定
  • 纹理的最左下角
0 投票
1 回答
618 浏览

actionscript-3 - 渲染到纹理不起作用

我正在尝试测试 Stage3D 的 setRenderToTexture 函数,但我的测试代码没有提供任何输出。我希望有人能告诉我为什么 - 我几乎已经尝试了一切来让它工作。我创建的代码如下:

编辑:我注意到更改空白位图的颜色确实会改变最终输出的颜色 - 它正在显示,但正方形并未呈现给它。

0 投票
1 回答
242 浏览

actionscript-3 - AGAL 无证操作

在查看 AGALMiniAssembler 类的源代码时,我注意到一些似乎在任何地方都没有记录的操作码 - ifzeifbrk和其他一堆 - 以及看起来像未记录的纹理采样标志 - 3dcentroidsingledepth. 这些是有效的、未记录的操作和标志吗?是否正在考虑将它们未使用的代码用于以后的实施?有谁知道他们做什么?

0 投票
1 回答
454 浏览

actionscript-3 - 为什么需要即时编译 AGAL 着色器?

Flash Player 11 引入了AGAL 统一着色器汇编语言,它能够对 Flash 开发人员透明地编译成 OpenGL GLSL 着色器和 DirectX HLSL 着色器。

几乎每个使用 AGAL 的程序都使用AGALMiniAssembler(用 AS3 编写)打包,它将 AGAL 源代码作为字符串并在运行时(即即时)将其编译为 AGAL 二进制格式。然后将此二进制数据输入到 Flash Player 中,然后再将其输入到图形硬件中

但是为什么首先必须发布AGAL源代码并将其包含在您的应用程序中?你不能在你的开发者上运行 AGAL 汇编器吗?PC 并简单地包含 AGAL ByteArray?AGAL 着色器是否需要即时编译?请注意,我不是在寻求好处,我只是在问是否真的有必要包含 AGAL 源代码并让它编译 JIT 而不是 AOT(提前)。

0 投票
0 回答
272 浏览

vertex-shader - 第 3D 阶段 - 以“数学方式”绘制轨道线

我想知道是否有一种方法,使用 Stage3D 和 AGAL,在不使用实际网格的情况下仅绘制圆的周长;我认为顶点着色器可能会以某种方式被“欺骗”,使其认为它正在处理网格的顶点,同时始终将 op(输出位置)寄存器设置为与特定平面上空间中的某个点的距离相同。(我想在我正在制作的太空游戏中渲染行星的轨道)
但我无法理解如何做到这一点。有任何想法吗?

0 投票
0 回答
135 浏览

actionscript-3 - 如何在 Stage3D 中绘制单像素宽度线

我正在制作一个以太空为背景的 3D 游戏。我目前正在添加行星的轨道线。
理想情况下,我想以 1 像素宽度绘制轨道线,而不管线与相机的距离如何。有谁知道这样做的方法?
目前,我正在使用缩放和旋转以匹配行星轨道的平面网格。在片段着色器中,我使用 U 和 V 坐标来确定是否应在给定像素处绘制像素:

所以 ft1 最终是当前片段与平面网格中心的距离。我可以使用 sge 和 slt 操作代码将此值与“1”进行比较,但是如何使结果线始终仅绘制 1 个像素宽度?我得到的结果会因透视而失真,并且如果相机接近与飞机齐平。
我已经尝试通过当前片段与相机的距离来缩放宽度,但这似乎是一个丑陋的解决方法 - 如果相机恰好与轨道平面齐平,它仍然会受到“扁平化”的影响。
解决方案是什么?当然可以绘制一条非透视的 1 像素宽度的线......

0 投票
1 回答
232 浏览

shader - 用于照明的 Starling 扩展的渐变阴影

告诉我如何拥有它http://devsbook.com/est.jpg来获取它http://devsbook.com/est2.jpg 在网站 winxalex.blogspot.com -> gradient-shadow-filter-starling 上找到了一个示例。 html 但我不能使用它。感谢你

这个基础阴影着色器

0 投票
1 回答
74 浏览

registry - 具有硬件支持的 minko 骨骼动画导致错误 #3659:AGAL 验证失败

我更新了 minko as3 代码以在标准配置文件而不是基线上运行,并且我有一个动画网格,我知道这是一个事实,有 185 个顶点常量,标准上允许的最大数量为 250,但我不断收到 [trace] 错误:错误#3659:AGAL 验证失败:源操作数 1 在顶点程序的标记 1 处的常量寄存器索引超出范围。

我对 agal 的工作原理知之甚少,但我确实了解 minko。谁能指出我正确的方向来改变什么?我已经调整了 minko Profile.as 类和使用它的位置,这就是我如何能够将注册表中顶点常量的确切数量归零(185)

0 投票
1 回答
80 浏览

actionscript-3 - 当 AGAL 寄存器“包含”3D 向量时,它们如何被添加或减去?

我正在为我正在开发的太空游戏中的行星环添加阴影。为此,我需要计算圆柱体(行星的阴影)与平面(环的网格)相交的位置。

由于无法看到“sub”和“add”操作码如何处理寄存器的每个组件,我受到了阻碍。在此页面http://www.adobe.com/devnet/flashplayer/articles/what-is-agal.html上有一个图形说明了每个操作码的作用;它将加法和减法(在其他计算中)描述为“组件方式”。

这是否意味着,如果我添加或减去 3D 向量,x、y、z(和 w?)分量将相互独立地受到影响?而且,如果是这样,寄存器如何“知道”如果添加或减去例如 2 个数字不这样做?我是否需要分别处理 3D 向量的每个组件,还是只使用“添加”或“子”正确添加或减去 2 个向量?