Advertisement
trishLEX

Untitled

Jun 6th, 2017
342
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.13 KB | None | 0 0
  1. def shader():
  2.     vertex_shader = """
  3.        #version 450 core
  4.            layout (location = 0) in vec3 position;
  5.            layout (location = 1) in vec3 color;
  6.            layout (location = 2) in vec2 texCoord;
  7.            layout (location = 3) in vec3 normal;
  8.            uniform mat4 transform;
  9.            out vec4 pos;
  10.            out vec3 ourColor;
  11.            out vec2 TexCoord;
  12.            out vec3 norm;
  13.            void main()
  14.            {
  15.            gl_Position = transform * vec4(position.x, position.y, position.z, 1.0f);
  16.            pos = gl_Position;
  17.            ourColor = color;
  18.            TexCoord = vec2(texCoord.x, texCoord.y);
  19.            norm = (transform * vec4(normal, 0.0)).xyz;
  20.            }
  21.        """
  22.  
  23.     fragment_shader = """
  24.        #version 450 core
  25.            in vec4 pos;
  26.            in vec3 ourColor;
  27.            in vec2 TexCoord;
  28.            in vec3 norm;
  29.            out vec4 color;
  30.            uniform sampler2D texture1;
  31.            uniform bool flag;
  32.            uniform vec4 l_pos;
  33.            uniform vec4 l_amb;
  34.            uniform vec4 l_diff;
  35.            uniform vec4 l_spec;
  36.            uniform float l_shine;
  37.            void main()
  38.            {
  39.            vec3 L = normalize(l_pos.xyz - pos.xyz);
  40.            vec3 E = normalize(vec3(0, 0, -1)-pos.xyz);
  41.            vec3 R = normalize(-reflect(L, norm));
  42.            vec4 Iamb  = l_amb;
  43.            vec4 Idiff = l_diff * max(dot(norm, L), 0.0);
  44.            Idiff = clamp(Idiff, 0.0, 1.0);
  45.            vec4 Ispec = l_spec * pow(max(dot(R, E), 0.0), l_shine);
  46.            Ispec = clamp(Ispec, 0.0, 1.0);
  47.            if (flag){
  48.                color = vec4(ourColor, 1.0f);
  49.                }
  50.            else {
  51.            color = texture(texture1, TexCoord);
  52.                }
  53.            color = color * (Iamb + Idiff + Ispec);
  54.            }
  55.        """
  56.     global shader
  57.     shader = OpenGL.GL.shaders.compileProgram(OpenGL.GL.shaders.compileShader(vertex_shader, GL_VERTEX_SHADER),
  58.                                               OpenGL.GL.shaders.compileShader(fragment_shader, GL_FRAGMENT_SHADER))
  59.  
  60.     buildVAO()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement