回答
没有直接的方式来访问片段着色器中的顶点,顶点着色器一次只处理1个顶点,并且没有整个基元的概念。片段着色器仅处理片段。
您可以输出关于特定顶点的信息,并将其插入片段着色器,例如如何在三角形上混合颜色或执行纹理坐标。通常情况下,无论如何,您都需要在片段着色器中进行混合处理,以便在顶点着色器中自动完成。你可以得到碎片三维空间坐标(但只有碎片,而不是周围的顶点)。
这样说,你可以附加任何信息到你的着色器。例如,除了位置,法线和texcoords之外,还可以有一个额外的属性,其中包含有关要在特定顶点中访问的每个顶点的信息。如果这可能是3组x,y,z坐标,如果这是你想要的信息和一个数字,表示正在处理的图元中的哪个顶点数(即三角形中的第一个第二或第三个顶点)和/或序列号在整个网格中。或者它可能只是一个索引号,如果这是你想要的。额外的属性会占用更多的内存,因为您必须复制基元中每个顶点的顶点数据,以确保片段着色器与其所有3个顶点具有相同的数据。
例如,对于每个顶点(对于三角形图元)以下属性:
v1, n1, uv1, v1, v2, v3, 0
v2, n2, uv2, v1, v2, v3, 1
v3, n3, uv3, v1, v2, v3, 2
v4, n4, uv4, v4, v5, v6, 0
v5, n5, uv5, v4, v5, v6, 1
v6, n6, uv6, v4, v5, v6, 2
如果你需要,你需要重复,太多的法线或纹理COORDS。
还要考虑片段着色器中的顶点信息实际上在做什么。您可以预先计算在片段着色器中要计算的答案,而不是将所有顶点的数据发送出去,而是将答案附加为属性,并从顶点着色器到片段着色器进行插值。
另一种方法是将所有顶点数据转储到统一数据库中并查找它。你可能仍然需要附加一些索引信息作为顶点属性,尽管它知道它应该查找哪个索引。另外请记住,由于每个像素都会发生查找,因此查找速度会很慢,并且您可能会发生碰撞,因为每个顶点都将查看有关周围信息的信息。
在较新版本的OpenGL(3.x +)几何图形和细化着色器中,可以访问这种信息并将其输出到着色器管道中的下一个东西。
有了这样的说法,它将有助于准确地知道你要完成什么,因为它提供了哪些顶点数据需要传递给片段着色器。如果没有访问片段着色器中的数据,也可能有更简单的方法来做你想做的事情。
片段着色器确实没有链接到顶点着色器,而顶点着色器是每个顶点,没有创建该几何图形的总集合的概念。所以你不能获得最终产生片段着色器实例的顶点。
您试图实现特定效果吗?无论你想从顶点计算出来,通常都可以通过加载适当的变化来实现 - 例如,如果您将每个顶点的3d位置加载到适当的变化,那么每个片段将固有地知道其位置。
- 1. iOS上的OpenGL ES 2:空片段和顶点着色器
- 2. GLSL:顶点着色器无片段着色片段着色器
- 3. OpenGL ES:从着色器获取转换的顶点
- 4. 在OpenGL ES 2.0顶点着色器中生成顶点
- 5. opengl es 2.0 - 优化片段着色器
- 6. OpenGL - 顶点或片段着色器中的纹理映射?
- 7. OpenGL ES 2.0中片段着色器的非均匀颜色值
- 8. 获取片段着色器中顶点的TexCoords
- 9. OpenGL ES 2:简单绘图是否需要顶点和片段着色器?
- 10. OpenGL - 顶点着色器颜色没有传递给片段着色器
- 11. OpenGL ES 2.0 - 在顶点着色器中找不到属性
- 12. 创建使用OpenGL和顶点和片段着色器
- 13. 无法将顶点着色器中的颜色传递给片段着色器
- 14. OpenGL:片段vs顶点着色器的渐变?
- 15. GLSL ES顶点着色器错误
- 16. 确定openGL ES顶点着色器中计算的三角形的顶点
- 17. OpenGL ES:将单浮点数传递给顶点着色器?
- 18. OpenGL ES 2.0:属性没有绑定在顶点着色器
- 19. 指定顶点着色器的法线的OpenGL ES 2.0
- 20. 正确的顶点着色器代码? OpenGL ES 2.0的
- 21. 如何使用片段着色器在OpenGL ES中绘制球体错觉?
- 22. 如何获取片段着色器中当前多边形的顶点?
- 23. X射线顶点着色器的OpenGL ES 2.0
- 24. Android中的着色器在OpenGL ES中
- 25. 如何使顶点和片段着色器在three.js中工作
- 26. OpenGL片段着色器VS DirectX片段着色器
- 27. OpenGL ES(2.0)着色语言:如何在顶点着色器中输入布尔值并传递给片段着色器?
- 28. 如何可视化的OpenGL ES 2.0片段着色
- 29. 顶点着色器和片段着色器
- 30. OpenGL ES 2.0点光源着色器