将传统GLSL着色器更新为现代GLSL
我正在尝试更新我拥有的一个旧的GLSL 120着色器,尽管它的大部分都很简单,但以下是我遇到的问题: 顶点着色器:gl_FrontSecondaryColor,gl_FrontColor 片段着色器:gl\u颜色,gl\u第二颜色 问题是,对于3.x及以上版本,我还没有找到足够的替代方案 例如: gl\u FragColor的替代品是创建将传统GLSL着色器更新为现代GLSL,glsl,shader,Glsl,Shader,我正在尝试更新我拥有的一个旧的GLSL 120着色器,尽管它的大部分都很简单,但以下是我遇到的问题: 顶点着色器:gl_FrontSecondaryColor,gl_FrontColor 片段着色器:gl\u颜色,gl\u第二颜色 问题是,对于3.x及以上版本,我还没有找到足够的替代方案 例如: gl\u FragColor的替代品是创建 layout (location = 0) out vec4 fragColor; 但对于上述另一种情况,具体如何处理 gl_FrontSecondaryC
layout (location = 0) out vec4 fragColor;
但对于上述另一种情况,具体如何处理
gl_FrontSecondaryColor,gl_FrontColor
这些只是顶点着色器输出。它们在任何方面都不特别
gl_颜色,gl_第二颜色
这些是神奇的片段着色器,可以在着色器中有效地执行条件逻辑。他们进行正面/背面测试,然后获取合适类型的正面或背面颜色
因此,如果要进行双面渲染,则必须自己进行测试。VS将输出一个前后值,FS将同时输入这两个值,但根据三角形的朝向选择要使用的值。指示当前面是正面还是背面。您可以使用它来选择要使用的输入值
如果你不做双面渲染。。。你不在乎。你只需要一个VS输出和一个FS输入。OpenGL图形管道已经改变了很多,看看@MrKiwi是的,它已经改变了很多,但我指的是现代等价物是什么,就像你不再使用gl_FragColor、gl_ProjectViewMatrix等。相反,您可以创建自己的制服和变量。