如何在不更改的情况下将数据从顶点着色器传输到片段着色器? 我需要对顶点像素说他们有这种颜色。这种颜色只能在顶点着色器中获得。GLSL:顶点着色器无片段着色片段着色器
回答
这里有GLSL一个很好的教程:NeHe GLSL tutorial
如果你想分享的顶点和片段着色器之间的数据使用一个内置的类型,例如gl_Color
如果你想通过颜色由顶点着色器通过片段着色器计算出来,您将创建一个片段着色器,其中包含以下行:gl_FragColor = gl_Color
gl_Color
将从顶点着色器写入的颜色自动设置。您可以通过设置其中一个内置变量(如gl_FrontColor
或其中一个同位体:gl_BackColor
等)来从顶点着色器中写入颜色。
我认为它不起作用,我看不到结果并且顶点着色器返回:警告C7564:赋值给属性gl_Color – itun 2011-05-05 03:00:16
对。应该提到您应该在顶点着色器中设置gl_FrontColor(或其中一个像gl_BackColor的对象)。 gl_Color将自动为您设置。 – 2011-05-05 03:08:05
您必须使用变化,因为每个片段都受到更多“影响”比一个顶点(除非你正在渲染GL_POINTS
),所以你必须在线/多边形内插它们。 GLSL的最新版本允许指定平面着色插值,它不会在整个图元内插值,而忽略来自其他顶点的值。
我怀疑你想要做的只是渲染与不同颜色的顶点相对应的像素是否正确?在这种情况下,它不是那么容易,你可能想先渲染填充的多边形,然后重新渲染为GL_POINTS
。此时,变量变量不会被插值,因为每个片段都受单个顶点的影响。
- 1. 顶点着色器和片段着色器
- 2. 无法将顶点着色器中的颜色传递给片段着色器
- 3. OpenGL片段着色器VS DirectX片段着色器
- 4. GLSL片段着色器语法错误
- 5. GLSL片段着色器不会编译
- 6. GLSL片段着色器结构输出
- 7. OpenGL - 顶点着色器颜色没有传递给片段着色器
- 8. 着色器程序到节点+片段着色器
- 9. AS3 Stage3D片段着色器?
- 10. GLSL变量不从顶点传递到片段着色器
- 11. GLSL片段着色器得到顶点位置
- 12. 从顶点着色器传递一个浮动的片段着色器
- 13. 片段着色器不能读取顶点着色器'colorVarying'的输出
- 14. 无法链接glsl顶点着色器
- 15. GLSL着色器
- 16. 从几何着色器的片段着色器
- 17. 将表面着色器转换为片段着色器
- 18. 片段着色器:在着色器中没有统一名称
- 19. GLFW - 无法编译片段着色器
- 20. 带片段着色器的GLSL只呈现黑色GL_POINTS
- 21. 片段着色器如何确定顶点着色器输出中片段的数量?
- 22. GLSL点燃顶点着色器
- 23. GLSL顶点着色器编译错误
- 24. GLSL顶点着色器gl_Position值
- 25. GLSL ES顶点着色器错误
- 26. GLSL顶点着色器崩溃电脑
- 27. 英特尔和GLSL - 无法编译片段着色器
- 28. OpenGL片段着色器不写入SSBO
- 29. 纹理中的OpenGL片段着色器
- 30. 通行证到片段着色器
你是什么意思“这种颜色我只能在顶点着色器中获得颜色?”通常,您可以使用由顶点着色器创建的片段着色器中的颜色值。所以,我不确定你在问什么。 – 2011-05-05 02:10:18
对不起,这是一个错字。)@DasBoot“通常,您可以使用由顶点着色器创建的片段着色器中的颜色值。” - 这个怎么做?我的意思是如何转移它。 – itun 2011-05-05 02:19:02
使用变化。 – 2011-05-05 02:33:13