首页 文章

OpenGL纹理覆盖材质颜色

提问于
浏览
0

我想渲染一个场景并将材质颜色与纹理混合 . 我正在使用可编程管道和GLSL,当调用函数texture()时,网格的所有部分都希望没有纹理变得透明 . (即使我不在最终的fragColor中使用vec4)

看下面的screeshots,在第一个图像中我只有材质颜色,在第二个应用纹理,但只有材质颜色的面变得透明 .

在我的片段着色器中,我有类似的东西:

vec4 tex = texture(texsampl,fTexCoord);
fFragColor = ambient + (diffuse*tex)  + specular;

1 回答

  • 0

    只有材料颜色变得透明 .

    好吧,你're adding the values, that'是什么预期 . 你应该使用一些混合函数,如 mix (= s*a + d*(1-a) ,其中s和d是材质和纹理,a是一些混合因子)或 slerp .

相关问题