]> git.tdb.fi Git - libs/gl.git/blobdiff - shaderlib/cubemap_effect.glsl
Implement image-based lighting in PbrMaterial
[libs/gl.git] / shaderlib / cubemap_effect.glsl
diff --git a/shaderlib/cubemap_effect.glsl b/shaderlib/cubemap_effect.glsl
new file mode 100644 (file)
index 0000000..b865a7a
--- /dev/null
@@ -0,0 +1,29 @@
+uniform CubeParams
+{
+       mat3 faces[6];
+};
+
+#pragma MSP stage(vertex)
+layout(location=0) in vec4 vertex;
+void main()
+{
+       gl_Position = vertex;
+}
+
+#pragma MSP stage(geometry)
+layout(triangles) in;
+layout(triangle_strip, max_vertices=18) out;
+void main()
+{
+       for(int i=0; i<6; ++i)
+       {
+               gl_Layer = i;
+               for(int j=0; j<3; ++j)
+               {
+                       gl_Position = gl_in[j].gl_Position;
+                       out vec3 texcoord = faces[i]*vec3(gl_in[j].gl_Position.xy, 1.0);
+                       EmitVertex();
+               }
+               EndPrimitive();
+       }
+}