例如,我在代码中这样写:

glTexImage2D(GL_TEXTURE_2D, i, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, data);

并在着色器中:
glFragColor = texture2D(sampler, uv).rgba

会发生什么,这种情况有官方定义吗?

最佳答案

结果将是相同的,就像您将执行以下操作一样:

glFragColor = vec4( texture2D(sampler, uv).rgb, 1.0 );

因为 Khronos 组的 Image Format 规范说:



进一步查看 OpenGL 4.6 API Core Profile Specification; 15.2. SHADER EXECUTION; page 487 ]:

关于c++ - 当我在 glTexImage2D 中选择与在着色器中采样不同的内部格式时会怎样?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45141783/

10-11 23:22