| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- @header package main
- @header import sg "third-party:sokol/gfx"
- @header import m "huginn:core/math"
- @vs vs
- layout(binding=0) uniform vs_params {
- mat4 mvp;
- };
- in vec4 position;
- in vec3 normal0;
- in vec4 color0;
- out vec4 color;
- out vec3 normal;
- void main() {
- gl_Position = mvp * position;
- normal = normal0;
- color = color0;
- }
- @end
- @fs fs
- in vec4 color;
- in vec3 normal;
- out vec4 frag_color;
- void main() {
- // Простое освещение по нормалям
- vec3 light_dir = normalize(vec3(0.5, 1.0, 0.3));
- vec3 norm = normalize(normal);
- float diff = max(dot(norm, light_dir), 0.0);
-
- // Ambient + diffuse
- float ambient = 0.3;
- float lighting = ambient + diff * 0.7;
-
- frag_color = vec4(color.rgb * lighting, color.a);
- }
- @end
- @program scene vs fs
|