summaryrefslogtreecommitdiffhomepage
path: root/examples/shaders/resources
diff options
context:
space:
mode:
authorseanpringle <[email protected]>2020-09-27 18:29:05 +1000
committerGitHub <[email protected]>2020-09-27 10:29:05 +0200
commit4bcddc3b15b394b81cf4bd481ce9c600f6c6d5d8 (patch)
treec3697b028cb859d8003703de4bbd15d57f17f9d7 /examples/shaders/resources
parente90b4d8915d593ab57cedfe988da8fbbd18b4408 (diff)
downloadraylib-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.vs36
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);
+}