尝试将漫反射纹理与立方体贴图混合会使对象不可见

Trying to blend diffuse texture with cubemap makes object invisible

我正在关注 learnopengl 网站,我正在尝试将对象上的漫反射纹理与计算的 reflection/refraction 矢量相结合,但它会使对象不可见。当我设置 gl_FragColor = environmentColor; 时,它工作正常,但当我尝试乘法、添加或混合漫反射纹理时,对象变得不可见。这是我的代码:

vec3 norm = normalize(Normal);

vec3 viewVector = normalize(worldPosition.xyz - cameraPosition);
vec3 reflectedVector = reflect(viewVector, norm);
vec3 refractedVector = refract(viewVector, norm, 0.68047f);
vec4 reflectedColor = texture(skybox, reflectedVector);
vec4 refractedColor = texture(skybox, refractedVector);
vec4 environmentColor = mix(reflectedColor, refractedColor, 0.5f);

gl_FragColor = mix(texture(texture_diffuse1, TexCoords), environmentColor, 0.5f);

对于可能有同样问题的其他人,我发现我的错误是:我将立方体贴图纹理的位置设置为与我的 sampler2D 纹理相同。我只是修改了立方体贴图纹理的 glActiveTexture 以使用 GL_TEXTURE1 而不是 GL_TEXTURE0 并将制服初始化为指向 1 现在一切正常。