diff options
| author | victorfisac <[email protected]> | 2015-12-21 17:25:22 +0100 |
|---|---|---|
| committer | victorfisac <[email protected]> | 2015-12-21 17:25:22 +0100 |
| commit | 1bcb5ddd505e5c4bdac6f254e931e9c3145be88d (patch) | |
| tree | c71c012feda413d4134a4dd8ac5e7e2bd45b9c61 /shaders/gl330/phong.vs | |
| parent | 4db2da91850fcc55ec08df253e533e236eb91451 (diff) | |
| download | raylib-1bcb5ddd505e5c4bdac6f254e931e9c3145be88d.tar.gz raylib-1bcb5ddd505e5c4bdac6f254e931e9c3145be88d.zip | |
Added lighting engine module
- New lighting engine module which contains new data types Light and
Material. These data types and functions facilitates making a basic 3D
iluminated program with a light and a model.
- Added lighting engine module example (currently included in raylib.h;
it might be compiled by separate and include lighting.h in game source C
file).
- Corrected some opengl defines control structures and added some TODO
to fix raylib-opengl 1.1 source build (note: now source can be compiled
without errors, but rlglReadPixels() won't work properly).
Note: most of functions of phong version 330 shader are not in v100
shaders, so I couldn't write a version 100 phong shader. These functions
are included from version 150.
Diffstat (limited to 'shaders/gl330/phong.vs')
| -rw-r--r-- | shaders/gl330/phong.vs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/shaders/gl330/phong.vs b/shaders/gl330/phong.vs new file mode 100644 index 00000000..25163902 --- /dev/null +++ b/shaders/gl330/phong.vs @@ -0,0 +1,28 @@ +#version 330 + +// Vertex input data +in vec3 vertexPosition; +in vec2 vertexTexCoord; +in vec3 vertexNormal; + +// Projection and model data +uniform mat4 projectionMatrix; +uniform mat4 modelviewMatrix; +uniform mat4 modelMatrix; + +// Attributes to fragment shader +out vec2 fragTexCoord; +out vec3 fragNormal; + +void main() +{ + // Send texture coord to fragment shader + fragTexCoord = vertexTexCoord; + + // Calculate view vector normal from model + mat3 normalMatrix = transpose(inverse(mat3(modelMatrix))); + fragNormal = normalize(normalMatrix * vertexNormal); + + // Calculate final vertex position + gl_Position = projectionMatrix * modelviewMatrix * vec4(vertexPosition, 1.0); +}
\ No newline at end of file |
