首先我的Fragmenshader的代碼。OpenGL紋理找不到匹配的超載函數找到
#version 330 core
struct Material{
sampler2D diffuse;
};
struct Light{
vec3 position;
vec3 ambient;
vec3 diffuse;
};
in vec3 Normal;
in vec3 FragPos;
in vec3 TexCoords;
out vec4 color;
uniform vec3 viewPos;
uniform Material material;
uniform Light light;
void main()
{
//ambient
vec3 ambient = light.ambient * vec3(texture(material.diffuse, TexCoords));
//Diffuse
vec3 norm = normalize(Normal);
vec3 lightDir = normalize(light.position - FragPos);
float diff = max(dot(norm,lightDir),0.0);
vec3 diffuse = light.diffuse * diff *vec3(texture(material.diffuse,TexCoords));
color = vec4(ambient+diffuse,1.0f);
}
如果我想要編譯我得到的錯誤: 「紋理」:不mathcing發現 重載函數(使用隱式轉換)我看着GLSL文檔,但我看起來是正確的。之後,我在我的OpenGL文件中搜索了一個錯誤...但我看起來沒問題。
是否使用'TexCoords.xy'幫助切斷'TexCoords'的Z座標?現在你試圖用'vec3'來抽樣'sampler2D'。 – genpfault
謝謝...... –