SDF(有向距离场)中的法线计算
Demo:https://blog.csdn.net/vily_lei/article/details/82791133
vec3 calcNormal( in vec3 pos )
{
vec2 e = vec2(1.0,-1.0)*0.5773*0.0005;
return normalize( e.xyy*map( pos + e.xyy ).x +
e.yyx*map( pos + e.yyx ).x +
e.yxy*map( pos + e.yxy ).x +
e.xxx*map( pos + e.xxx ).x );
}
原理请见:
http://www.iquilezles.org/www/articles/normalsSDF/normalsSDF.htm