我正在使用 glslangValidator 编译此着色器,并使用扩展名为 GL_ARB_gl_spirv 的 OpenGL 4.3 核心配置文件,并使用 GLAD Web 服务生成函数指针以访问核心 OpenGL API,并使用 SDL2 来创建上下文(如果有任何用处)。
如果我有这样的片段着色器:
#version 430 core
//output Fragment Color
layout (location = 0) out vec4 outFragColor;
//Texture coordinates passed from the vertex shader
layout (location = 0) in vec2 inTexCoord;
uniform sampler2D inTexture;
void main()
{
outFragColor = texture(inTexture, inTexCoord);
}
我将如何设置inTexture
使用哪个纹理单元?
从我通过文档在线阅读的内容来看,我无法使用glGetUniformLocation
该制服的位置来获取要使用的位置glUniform1i
,因为我使用的是 SPIR-V,而不是直接使用 GLSL。
我需要做什么才能将其设置为时尚glUniform1i
?我需要location
在布局修饰符中设置吗?binding
? _ 我尝试使用统一缓冲区对象,但显然sampler2D
只能是统一的。