在OpenGL的顶点着色器中获取元素ID

Petwoip

我正在渲染由OpenGL中的三角形组成的线。

现在,我可以在以下位置工作:

顶点缓冲区: {v0, v1, v2, v3}

索引缓冲区(三角带): {0, 1, 2, 3}

在此处输入图片说明

最上面的图像是传递到顶点着色器的原始数据,最下面的图像是在对v1和v3应用偏移(使用vertex属性)之后输出的顶点着色器。

我的目标是对直线上的每个点使用一个顶点,并以其他方式生成偏移量。我当时在看gl_VertexID,但我想要的更像是元素ID。这是我想要的设置:

顶点缓冲区: {v0, v2}

索引缓冲区(三角带): {0, 0, 1, 1}

并使用虚构gl_ElementID % 2来偏移其他所有顶点。

我试图避免使用几何着色器或其他顶点属性。有什么办法吗?我愿意接受完全不同的想法。

我可以想到一种避免几何着色器并仍使用紧凑表示形式的方法:实例渲染只需绘制一个四边形的许多实例(如三角形带),然后通过glVertexAttribDivisor()将这两个位置定义为每个实例的属性

请注意,您根本不需要带有4个顶点的“模板四边形”。从概念上讲,您仅需要两个属性,一个用于您的起点,一个用于您的终点。(当然,如果您以2D模式工作,则可以将其融合为一个vec4)。在每次顶点着色器调用中,您都可以访问这两个点,并且可以基于该点和的值gl_VertexID(仅在0到3的范围内)来构造最终的顶点位置这样,您就可以完全避免要瞄准的每个线段有两个点的顶点阵列布局,而仍然只需要一个绘制调用和一个顶点着色器即可。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从顶点着色器中的vec3获取值?OpenGL 3.3

来自分类Dev

顶点着色器和片段着色器如何在OpenGL中通信?

来自分类Dev

顶点着色器或片段着色器中的OpenGL ES2.0 Lighting

来自分类Dev

OpenGL-从顶点着色器访问缓冲区中的下3个顶点

来自分类Dev

顶点着色器的OpenGL属性名称

来自分类Dev

OpenGL奇怪的顶点着色器问题

来自分类Dev

OpenGL调试,如何查看顶点着色器的结果

来自分类Dev

OpenGL顶点着色器变换,对象消失

来自分类Dev

OpenGL奇怪的顶点着色器问题

来自分类Dev

OpenGL ES 2.0 矢量转换无法通过矩阵乘法(在顶点着色器中)工作

来自分类Dev

OpenGL无法将变量从顶点着色器发送到片段着色器

来自分类Dev

顶点着色器中的边界框

来自分类Dev

无法在Maya插件中编译顶点着色器

来自分类Dev

顶点着色器中对复数的运算

来自分类Dev

顶点着色器属性位置中的损坏数据

来自分类Dev

顶点着色器中的边界框

来自分类Dev

顶点着色器中的Phong照明

来自分类Dev

在顶点着色器中对复数进行运算

来自分类Dev

无法在Maya插件中编译顶点着色器

来自分类Dev

从顶点着色器读取变量以在 webgl 中呈现

来自分类Dev

自定义和通用顶点着色器属性在OpenGL和OpenGL ES中的使用

来自分类Dev

OpenGL 4.X的顶点着色器如何处理大量顶点

来自分类Dev

OpenGL-GLSL绘制3D GL_LINES顶点着色器与顶点

来自分类Dev

尝试在Win32 OpenGL中使用着色器,但顶点着色器什么也没画

来自分类Dev

带有顶点着色器和QGLShaderProgram的OpenGL HeightMap

来自分类Dev

将属性传递给OpenGL顶点着色器的行为异常

来自分类Dev

OpenGL性能:VBO /顶点着色器与glEnableClientState / glVertexPointer和glMultMatrix与glUniformMatrix

来自分类Dev

OpenGL C++、立方体贴图、顶点着色器

来自分类Dev

WebGL:是否禁止在顶点着色器和片段着色器中绑定相同的制服?

Related 相关文章

  1. 1

    如何从顶点着色器中的vec3获取值?OpenGL 3.3

  2. 2

    顶点着色器和片段着色器如何在OpenGL中通信?

  3. 3

    顶点着色器或片段着色器中的OpenGL ES2.0 Lighting

  4. 4

    OpenGL-从顶点着色器访问缓冲区中的下3个顶点

  5. 5

    顶点着色器的OpenGL属性名称

  6. 6

    OpenGL奇怪的顶点着色器问题

  7. 7

    OpenGL调试,如何查看顶点着色器的结果

  8. 8

    OpenGL顶点着色器变换,对象消失

  9. 9

    OpenGL奇怪的顶点着色器问题

  10. 10

    OpenGL ES 2.0 矢量转换无法通过矩阵乘法(在顶点着色器中)工作

  11. 11

    OpenGL无法将变量从顶点着色器发送到片段着色器

  12. 12

    顶点着色器中的边界框

  13. 13

    无法在Maya插件中编译顶点着色器

  14. 14

    顶点着色器中对复数的运算

  15. 15

    顶点着色器属性位置中的损坏数据

  16. 16

    顶点着色器中的边界框

  17. 17

    顶点着色器中的Phong照明

  18. 18

    在顶点着色器中对复数进行运算

  19. 19

    无法在Maya插件中编译顶点着色器

  20. 20

    从顶点着色器读取变量以在 webgl 中呈现

  21. 21

    自定义和通用顶点着色器属性在OpenGL和OpenGL ES中的使用

  22. 22

    OpenGL 4.X的顶点着色器如何处理大量顶点

  23. 23

    OpenGL-GLSL绘制3D GL_LINES顶点着色器与顶点

  24. 24

    尝试在Win32 OpenGL中使用着色器,但顶点着色器什么也没画

  25. 25

    带有顶点着色器和QGLShaderProgram的OpenGL HeightMap

  26. 26

    将属性传递给OpenGL顶点着色器的行为异常

  27. 27

    OpenGL性能:VBO /顶点着色器与glEnableClientState / glVertexPointer和glMultMatrix与glUniformMatrix

  28. 28

    OpenGL C++、立方体贴图、顶点着色器

  29. 29

    WebGL:是否禁止在顶点着色器和片段着色器中绑定相同的制服?

热门标签

归档