我正在进行OpenGL分配,要求我们合并Phong照明模型。但是,当我试图将两个1x3向量相乘时,我看到了闪烁。
启用双重交换,mipmap也是如此。
示例:
color = texture(myTextureSampler,UV).rgb * vec3(0.5,0.5,0.5);
color = texture(myTextureSampler,UV).rgb * vec3(0.9,0.9,0.9);
color = texture(myTextureSampler,UV).rgb * 0.9;
color = texture(myTextureSampler,UV).rgb * vec3(1.0,1.0,1.0);
(是的......那是一个gif)
更新:即使这样闪烁:
color = vec3(0.9,0.1,0.2);
完整的源代码是here,它基于opengl-tutorials.org code,但(希望)此问题很快就会更新,并且问题的重复性很小。
干杯
答案 0 :(得分:0)
事实证明,问题是OpenGL期望RGBA(vec4
)输出而不是RGB(vec3
),因为我启用了GL_BLEND
。
解决方案1 :删除GL_BLEND
,关闭glEnable(GL_BLEND)
。
解决方案2 :返回vec4
。您可以使用vec4(existing_vec3, 1.0)
将其“填充”为1x4向量。