Updated shader code to v330

This commit is contained in:
2018-04-04 09:39:42 +02:00
parent 0b0db2b706
commit cc997bc3f0

View File

@@ -4,15 +4,16 @@
Shader::Shader() {
addCacheableShaderFromSourceCode(QOpenGLShader::Vertex, R"(
attribute highp vec3 a_vertex;
attribute highp vec3 a_normal;
attribute lowp vec4 a_color;
#version 330
in highp vec3 a_vertex;
in highp vec3 a_normal;
in lowp vec4 a_color;
uniform highp mat4 M;
uniform highp mat4 V;
uniform highp mat4 P;
varying highp vec3 v_normal;
varying lowp vec4 v_color;
varying lowp vec4 v_vertex;
out highp vec3 v_normal;
out lowp vec4 v_color;
out lowp vec4 v_vertex;
void main() {
gl_Position = P * V * M * vec4(a_vertex, 1.0);
v_normal = (V * M * vec4(a_normal, 0.0)).xyz;
@@ -22,20 +23,23 @@ Shader::Shader() {
)");
addCacheableShaderFromSourceCode(QOpenGLShader::Fragment, R"(
#version 330
uniform vec4 color;
uniform bool useNormal;
uniform bool useVertexColor;
varying highp vec3 v_normal;
varying lowp vec4 v_color;
varying lowp vec4 v_vertex;
in highp vec3 v_normal;
in lowp vec4 v_color;
in lowp vec4 v_vertex;
layout(location=1) out vec4 fragColor;
void main() {
vec3 lightPos = vec3(0,0,0); // camera
//vec3 lightVec = normalize(vec3(0,0,1));
vec3 lightVec = normalize(lightPos - v_vertex.xyz);
float intensity = useNormal ? 0.3 + 0.7 * dot( normalize(v_normal), lightVec ) : 1.0; // light at camera pos
vec4 col = useVertexColor ? v_color : color;
gl_FragColor.rgb = col.rgb * intensity;
gl_FragColor.a = col.a;
fragColor.rgb = col.rgb * intensity;
fragColor.a = col.a;
}
)");