问题描述
我的颜色肯定显示出来,因为当我在最终结果颜色中添加0.8时,您几乎看不到它们。除了称为Light_Position的统一矢量3并启用照明功能外,我没有在主照明中执行任何代码,在主照明中是否需要用于捕获表面法线和其他东西的代码?如果是这样,请告诉我该怎么做。
主要用于照明:
glEnable(GL_DEPTH_TEST);
glEnable(GL_NORMALIZE);
glEnable(GL_COLOR_MATERIAL);
glm::vec3 Light_Position(0.2f,0.1f,0.2f);
int lightpos = glGetUniformLocation(shader,“light_position”);
glUniformMatrix4fv(lightpos,1,GL_FALSE,glm::value_ptr(Light_Position));
//Both fragment and vertex shaders in one file
#shader vertex
#version 330 core
layout(location = 0) in vec3 position;
layout(location = 1) in vec3 normal;
uniform mat4 model_matrix;
uniform mat4 perspective;
uniform mat4 just_translations;
uniform vec3 light_position;
out vec3 fragment_position;
out vec3 Normals;
void main()
{
gl_Position = model_matrix * vec4(position.x,position.y,position.z,1.0);
fragment_position = vec3(just_translations * vec4(position.x,1.0));
Normals = mat3(transpose(inverse(just_translations))) * normal;
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)