43 lines
844 B
GLSL
43 lines
844 B
GLSL
|
|
uniform float wireStepParam;
|
|
|
|
in vec3 pos;
|
|
in vec3 nor;
|
|
in float wd; /* wiredata */
|
|
|
|
float get_edge_sharpness(float wd)
|
|
{
|
|
#ifndef USE_SCULPT
|
|
return ((wd == 0.0) ? -1.5 : wd) + wireStepParam;
|
|
#else
|
|
return 1.0;
|
|
#endif
|
|
}
|
|
|
|
/* Geometry shader version */
|
|
#if defined(SELECT_EDGES) || defined(USE_GEOM)
|
|
out float facing_g;
|
|
out float edgeSharpness_g;
|
|
|
|
#else /* USE_GEOM */
|
|
out float facing;
|
|
flat out float edgeSharpness;
|
|
# define facing_g facing
|
|
# define edgeSharpness_g edgeSharpness
|
|
|
|
#endif /* SELECT_EDGES */
|
|
|
|
void main()
|
|
{
|
|
vec3 wpos = point_object_to_world(pos);
|
|
gl_Position = point_world_to_ndc(wpos);
|
|
|
|
vec3 wnor = normalize(normal_object_to_world(nor));
|
|
facing_g = dot(wnor, ViewMatrixInverse[2].xyz);
|
|
edgeSharpness_g = get_edge_sharpness(wd);
|
|
|
|
#ifdef USE_WORLD_CLIP_PLANES
|
|
world_clip_planes_calc_clip_distance(wpos);
|
|
#endif
|
|
}
|