From e31535abfff4c3335dd465e3745a69d3102253a6 Mon Sep 17 00:00:00 2001 From: quou Date: Sat, 28 Dec 2024 18:27:30 +1100 Subject: converting, loading and rendering GLTF models --- intermediate/surface.glsl | 68 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 intermediate/surface.glsl (limited to 'intermediate/surface.glsl') diff --git a/intermediate/surface.glsl b/intermediate/surface.glsl new file mode 100644 index 0000000..681ec3f --- /dev/null +++ b/intermediate/surface.glsl @@ -0,0 +1,68 @@ +#ifdef DESC +[program] +type: graphics +vertex: main +fragment: main + +[binding] +name: mesh +rate: vertex +[attribute] +name: position +type: vec3 +[attribute] +name: normal +type: vec3 +[attribute] +name: uv +type: vec2 + +[interpolator] +name: uv +type: vec2 +[interpolator] +name: normal +type: vec3 + +[struct] +name: Config +[variable] +name: transform +type: mat4 +[variable] +name: projection +type: mat4 + +[cbuffer] +name: config_buffer +type: Config +stage: vertex + +[target] +name: colour +type: vec4 + +#endif + +#ifdef VERTEX_SHADER + +void main() { + interpolator.uv = uv; + interpolator.normal = mat3(config_buffer.transform) * normal; + gl_Position = + config_buffer.projection * + config_buffer.transform * + vec4(position, 1.0); +} + +#endif + +#ifdef FRAGMENT_SHADER + +void main() { + vec3 normal = normalize(interpolator.normal); + float light = max(dot(normal, vec3(0, 0, 1)), 0.0); + colour = vec4(light.xxx, 1.0); +} + +#endif -- cgit v1.2.3-54-g00ecf