three-d 0.7.2

A renderer which compiles to both desktop (OpenGL) and web (WebAssembly + WebGL).
Documentation

uniform float diffuse_intensity;
uniform float specular_intensity;
uniform float specular_power;
uniform sampler2D tex;

in vec3 pos;
in vec3 nor;
in vec2 uvs;

vec4 get_surface_color()
{
    return texture(tex, vec2(uvs.x, 1.0 - uvs.y));
}

Surface get_surface()
{
    vec3 normal = normalize(gl_FrontFacing ? nor : -nor);
    return Surface(pos, normal, get_surface_color(), diffuse_intensity, specular_intensity, specular_power);
}