@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