#version 330 core // Interpolated values from the vertex shaders in vec2 UV; in vec3 Position_worldspace; in vec3 Normal_cameraspace; in vec3 EyeDirection_cameraspace; in vec3 LightDirection_cameraspace; // Ouput data out vec3 color; // Values that stay constant for the whole mesh. uniform sampler2D myTextureSampler; uniform mat4 MV; uniform vec3 LightPosition_worldspace; void main(){ // Light emission properties // You probably want to put them as uniforms vec3 LightColor = vec3(1,1,1); float LightPower = 50.0f; // Material properties vec3 MaterialDiffuseColor = texture( myTextureSampler, UV ).rgb; vec3 MaterialAmbientColor = vec3(0.1,0.1,0.1) * MaterialDiffuseColor; vec3 MaterialSpecularColor = vec3(0.3,0.3,0.3); // Distance to the light float distance = length( LightPosition_worldspace - Position_worldspace ); // Normal of the computed fragment, in camera space vec3 n = normalize( Normal_cameraspace ); // Direction of the light (from the fragment to the light) vec3 l = normalize( LightDirection_cameraspace ); // Cosine of the angle between the normal and the light direction, // clamped above 0 // - light is at the vertical of the triangle -> 1 // - light is perpendicular to the triangle -> 0 // - light is behind the triangle -> 0 float cosTheta = clamp( dot( n,l ), 0 ,1 ); // Eye vector (towards the camera) vec3 E = normalize(EyeDirection_cameraspace); // Direction in which the triangle reflects the light vec3 R = reflect(-l,n); // Cosine of the angle between the Eye vector and the Reflect vector, // clamped to 0 // - Looking into the reflection -> 1 // - Looking elsewhere -> < 1 float cosAlpha = clamp( dot( E,R ), 0,1 ); color = // Ambient : simulates indirect lighting MaterialAmbientColor + // Diffuse : "color" of the object MaterialDiffuseColor * LightColor * LightPower * cosTheta / (distance*distance) + // Specular : reflective highlight, like a mirror MaterialSpecularColor * LightColor * LightPower * pow(cosAlpha,5) / (distance*distance); }
Standard input is empty
prog.cpp:2:2: error: invalid preprocessing directive #version #version 330 core ^~~~~~~ prog.cpp:5:1: error: ‘in’ does not name a type in vec2 UV; ^~ prog.cpp:6:1: error: ‘in’ does not name a type in vec3 Position_worldspace; ^~ prog.cpp:7:1: error: ‘in’ does not name a type in vec3 Normal_cameraspace; ^~ prog.cpp:8:1: error: ‘in’ does not name a type in vec3 EyeDirection_cameraspace; ^~ prog.cpp:9:1: error: ‘in’ does not name a type in vec3 LightDirection_cameraspace; ^~ prog.cpp:12:1: error: ‘out’ does not name a type out vec3 color; ^~~ prog.cpp:15:1: error: ‘uniform’ does not name a type uniform sampler2D myTextureSampler; ^~~~~~~ prog.cpp:16:1: error: ‘uniform’ does not name a type uniform mat4 MV; ^~~~~~~ prog.cpp:17:1: error: ‘uniform’ does not name a type uniform vec3 LightPosition_worldspace; ^~~~~~~ prog.cpp:19:11: error: ‘::main’ must return ‘int’ void main(){ ^ prog.cpp: In function ‘int main()’: prog.cpp:23:9: error: ‘vec3’ was not declared in this scope vec3 LightColor = vec3(1,1,1); ^~~~ prog.cpp:27:7: error: expected ‘;’ before ‘MaterialDiffuseColor’ vec3 MaterialDiffuseColor = texture( myTextureSampler, UV ).rgb; ^~~~~~~~~~~~~~~~~~~~ prog.cpp:28:14: error: expected ‘;’ before ‘MaterialAmbientColor’ vec3 MaterialAmbientColor = vec3(0.1,0.1,0.1) * MaterialDiffuseColor; ^~~~~~~~~~~~~~~~~~~~ prog.cpp:29:7: error: expected ‘;’ before ‘MaterialSpecularColor’ vec3 MaterialSpecularColor = vec3(0.3,0.3,0.3); ^~~~~~~~~~~~~~~~~~~~~ prog.cpp:32:27: error: ‘LightPosition_worldspace’ was not declared in this scope float distance = length( LightPosition_worldspace - Position_worldspace ); ^~~~~~~~~~~~~~~~~~~~~~~~ prog.cpp:32:54: error: ‘Position_worldspace’ was not declared in this scope float distance = length( LightPosition_worldspace - Position_worldspace ); ^~~~~~~~~~~~~~~~~~~ prog.cpp:32:74: error: ‘length’ was not declared in this scope float distance = length( LightPosition_worldspace - Position_worldspace ); ^ prog.cpp:35:7: error: expected ‘;’ before ‘n’ vec3 n = normalize( Normal_cameraspace ); ^ prog.cpp:37:7: error: expected ‘;’ before ‘l’ vec3 l = normalize( LightDirection_cameraspace ); ^ prog.cpp:43:38: error: ‘n’ was not declared in this scope float cosTheta = clamp( dot( n,l ), 0 ,1 ); ^ prog.cpp:43:40: error: ‘l’ was not declared in this scope float cosTheta = clamp( dot( n,l ), 0 ,1 ); ^ prog.cpp:43:42: error: ‘dot’ was not declared in this scope float cosTheta = clamp( dot( n,l ), 0 ,1 ); ^ prog.cpp:43:50: error: ‘clamp’ was not declared in this scope float cosTheta = clamp( dot( n,l ), 0 ,1 ); ^ prog.cpp:46:7: error: expected ‘;’ before ‘E’ vec3 E = normalize(EyeDirection_cameraspace); ^ prog.cpp:48:7: error: expected ‘;’ before ‘R’ vec3 R = reflect(-l,n); ^ prog.cpp:53:38: error: ‘E’ was not declared in this scope float cosAlpha = clamp( dot( E,R ), 0,1 ); ^ prog.cpp:53:40: error: ‘R’ was not declared in this scope float cosAlpha = clamp( dot( E,R ), 0,1 ); ^ prog.cpp:55:2: error: ‘color’ was not declared in this scope color = ^~~~~ prog.cpp:57:3: error: ‘MaterialAmbientColor’ was not declared in this scope MaterialAmbientColor + ^~~~~~~~~~~~~~~~~~~~ prog.cpp:59:3: error: ‘MaterialDiffuseColor’ was not declared in this scope MaterialDiffuseColor * LightColor * LightPower * cosTheta / (distance*distance) + ^~~~~~~~~~~~~~~~~~~~ prog.cpp:59:26: error: ‘LightColor’ was not declared in this scope MaterialDiffuseColor * LightColor * LightPower * cosTheta / (distance*distance) + ^~~~~~~~~~ prog.cpp:61:3: error: ‘MaterialSpecularColor’ was not declared in this scope MaterialSpecularColor * LightColor * LightPower * pow(cosAlpha,5) / (distance*distance); ^~~~~~~~~~~~~~~~~~~~~ prog.cpp:61:67: error: ‘pow’ was not declared in this scope MaterialSpecularColor * LightColor * LightPower * pow(cosAlpha,5) / (distance*distance); ^
Standard output is empty