bgfx/examples/28-wireframe/fs_wf_wireframe.sc

26 lines
624 B
Scala

$input v_view, v_bc
/*
* Copyright 2016 Dario Manesku. All rights reserved.
* License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
*/
#include "../common/common.sh"
#include "uniforms.sh"
void main()
{
vec3 color = u_wfColor;
float opacity = u_wfOpacity;
float thickness = u_wfThickness;
if (!gl_FrontFacing) { opacity *= 0.5; }
vec3 fw = abs(dFdx(v_bc)) + abs(dFdy(v_bc));
vec3 val = smoothstep(vec3_splat(0.0), vec3_splat(fw*thickness), v_bc);
float edge = min(min(val.x, val.y), val.z); // Gets to 0.0 around the edges.
vec4 rgba = vec4(color, (1.0-edge)*opacity);
gl_FragColor = rgba;
}