问题标签 [vertex-shader]

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

flash - 在 AGAL 顶点着色器中,输出着色器中使用的“w”组件是什么?

我了解顶点位置的“xyz”组件,但“w”有什么作用?它可以一直保持相同的常数值吗?

例子:

0 投票
2 回答
2382 浏览

ios - OpenGL ES 2 (iOS) 在两组顶点之间变形/动画

我有两组用作线带的顶点:

  1. 顶点1
  2. 顶点2

重要的是要知道这些顶点具有以前未知的值,因为它们是动态的。

我想在这两者之间进行动画过渡(变形)。我想出了两种不同的方法:

选项1:

在顶点着色器中设置时间统一,从0 - 1开始,我可以在其中执行以下操作:

正如您可能看到的,这有一个问题:如何在其中获得“DestinationVertexPosition”

选项 2:

在顶点着色器之外进行插值计算,在这里我循环遍历每个顶点并为插值创建第三个顶点集,并使用它来渲染:

我已经高度简化了这两个代码片段,只是为了让这个想法更清楚。

现在,从这两个选项中,我觉得第一个在性能方面肯定更好,因为事情发生在着色器级别,而且我不必在每次“时间”更新时创建一组新的顶点.

因此,既然已经介绍了问题的介绍,我将不胜感激以下三件事:

  1. 讨论在 OpenGL ES 2 (iOS) 中实现预期结果的更好方法。
  2. 讨论如何通过提供“DestinationVertexPosition”或以某种方式修改想法来正确实现选项 1,以更好地实现相同的结果。
  3. 关于如何实施选项 2的讨论。
0 投票
2 回答
250 浏览

flash - Adobe 到底是什么意思 VertexShader 有 8 个输入的限制?

这是否意味着每个顶点的数据集只能传递总共8 个浮点值?

这是否意味着您只能拥有以下一项?

  • FLOAT_4的2 个输入。
  • FLOAT_2的4 个输入。
  • FLOAT_1的8个输入。
  • 任何可以加起来总共有8 个浮点值的混合物?

是这样吗?因为如果是这样,那么在他们的文档中说可以使用 8 个输入确实具有误导性。

也许我遇到了麻烦,因为我没有正确格式化我的数据,但我试图使用9 floats per vertices,如:

  • va0 将是FLOAT_4,偏移量设置为0
  • va1 将是FLOAT_4,偏移量设置为4
  • va2 将是FLOAT_1,偏移量设置为8

但是这个实验的屏幕上什么也没有出现。我是否超出了 VertexShader 输入限制?

0 投票
1 回答
2886 浏览

shader - Three.js 中非常简单的自定义着色器 - 如何使其工作?

我正在尝试为 Three.js 制作最简单的自定义着色器,但我还没有弄清楚如何让它工作。我使用着色器的对象根本没有出现。

在我的页面html中,我有:

然后在javascript中:

对象应该在哪里,什么都没有。如果我用MeshLambertMaterial. 我错过了什么,我需要让它工作?

0 投票
1 回答
72 浏览

flash - 可以在 Context3D 中重置/取消常量(顶点或片段)吗?

如果我对各种实例进行多次绘制调用,如果我在下一个分配中不再使用它们Program3D,是否有办法重置或使常量无效?Program3D

我有必要做这样的事情吗?

0 投票
1 回答
3636 浏览

shader - 是否可以在顶点着色器中访问多边形中的所有顶点?

我正在尝试在 Unity 中创建线框顶点/片段着色器。根据这篇论文似乎是可能的。一般的想法似乎是您将在顶点着色器中计算的距离向量传递给片段着色器中的每个片段,它可以使用它来确定根据线框线在多边形内的位置绘制线框线的亮度。

但是,从我读过的所有其他内容来看,您似乎只能访问顶点着色器中的单个顶点。对于 ecah 顶点,我需要访问多边形中的所有相邻顶点。该论文似乎暗示不需要几何着色器,这很好,因为 Unity 还不支持它们。

我错过了什么?是否永远不可能访问顶点着色器中的相邻顶点?如果没有几何着色器,我想做的事情是不可能的吗?

0 投票
1 回答
380 浏览

flash - 使用Context3DVertexBufferFormat.BYTES_4时,一个字段的取值范围是多少?

如果我使用字节数组方法填充顶点缓冲区:

然后使用以下格式设置顶点缓冲区属性:

Vertex 属性的字段(在本例中为va0.x、va0.y、va0.z、va0.w )的可能值范围是多少(0 ​​到 255?0.0 到 1.0?等)?写入对象的数据类型是否有所不同ByteArraywriteFloatwriteUnsignedInt)?

0 投票
2 回答
248 浏览

flash - 矩阵是否可以存在于 AGAL 中的顶点常量以外的顶点寄存器上?

我经常看到将Matrix3D对象作为 AS3 中的顶点常量寄存器传递给Context3D对象的示例。但从未在任何其他类型的寄存器(临时属性)中看到矩阵。

是否有任何方法可以将 Matrix 顶点常量复制到临时寄存器,然后使用其他提供的值(顶点属性或其他常量)操作该 Matrix 临时寄存器的各个字段(例如:用于旋转)?

一个简单的mov dest, source操作可以解决问题吗?

0 投票
2 回答
4048 浏览

c++ - GLSL 每个顶点固定大小的数组

在桌面 GLSL 中是否可以将固定大小的浮点数组作为属性传递给顶点着色器?如果是,如何?

我想为角色动画设置每个顶点的权重,所以我想在我的顶点着色器中有如下内容:

如何从我的 C++ 和 OpenGL 程序中填充属性数组?我在另一个问题中看到,我可以获取数组属性的属性位置,然后将索引添加到该位置。有人可以为我相当大的阵列举一个例子吗?

谢谢。

0 投票
2 回答
3203 浏览

android - 如何访问opengl es 2中顶点着色器程序中的其他顶点?

我是一个 android 应用程序,我想计算一个曲面的法线依赖于该曲面的其他顶点。我不想在“主”程序中这样做,因为它需要很多时间。实际上,对于每个顶点,我为每个顶点传递 4 个浮点数组:

我知道这是非常非常脏的代码,所以我不想传递 4 个数组,而是这样做:

那么在顶点着色器程序中是否可以访问当前的浮动缓冲区?有没有像 currentFloat 这样的特殊关键字?还是我想念另一种可能性?