diff options
| author | seanpringle <[email protected]> | 2020-09-27 18:29:05 +1000 |
|---|---|---|
| committer | GitHub <[email protected]> | 2020-09-27 10:29:05 +0200 |
| commit | 4bcddc3b15b394b81cf4bd481ce9c600f6c6d5d8 (patch) | |
| tree | c3697b028cb859d8003703de4bbd15d57f17f9d7 /examples/shaders/resources | |
| parent | e90b4d8915d593ab57cedfe988da8fbbd18b4408 (diff) | |
| download | raylib-4bcddc3b15b394b81cf4bd481ce9c600f6c6d5d8.tar.gz raylib-4bcddc3b15b394b81cf4bd481ce9c600f6c6d5d8.zip | |
[wip] rlDrawMeshInstanced (#1318)
* rlDrawMeshInstanced first attempt
* rlDrawMeshInstanced OpenGL 3.3 and VAO checks
* rlDrawMeshInstanced GetShaderAttribLocation; comments
* example instanced shader
* RLGL_STANDALONE RAYMATH_STANDALONE Vector4
* apply suggested naming changes; add instanced mesh example
* remove orphan variables
Diffstat (limited to 'examples/shaders/resources')
| -rw-r--r-- | examples/shaders/resources/shaders/glsl330/base_lighting_instanced.vs | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/examples/shaders/resources/shaders/glsl330/base_lighting_instanced.vs b/examples/shaders/resources/shaders/glsl330/base_lighting_instanced.vs new file mode 100644 index 00000000..5e5430b3 --- /dev/null +++ b/examples/shaders/resources/shaders/glsl330/base_lighting_instanced.vs @@ -0,0 +1,36 @@ +#version 330 + +// Input vertex attributes +in vec3 vertexPosition; +in vec2 vertexTexCoord; +in vec3 vertexNormal; +in vec4 vertexColor; + +layout (location = 12) in mat4 instance; + +// Input uniform values +uniform mat4 mvp; + +// Output vertex attributes (to fragment shader) +out vec3 fragPosition; +out vec2 fragTexCoord; +out vec4 fragColor; +out vec3 fragNormal; + +// NOTE: Add here your custom variables + +void main() +{ + // Send vertex attributes to fragment shader + fragPosition = vec3(instance * vec4(vertexPosition, 1.0)); + fragTexCoord = vertexTexCoord; + fragColor = vertexColor; + + mat3 normalMatrix = transpose(inverse(mat3(instance))); + fragNormal = normalize(normalMatrix * vertexNormal); + + mat4 mvpi = mvp * instance; + + // Calculate final vertex position + gl_Position = mvpi * vec4(vertexPosition, 1.0); +} |
