Signed Distance Field
Signed Distance Field (SDF) は、位置ベクトルを入れると物体表面までの距離を返すような関数 物体外部では正の値・物体内部では負の値を取るように設計されることが多い
SDFの例
無限平面
code:glsl
float sdPlane(vec3 p, vec3 n) {
// assume n to be normalized
return dot(p, n);
}
円・球
定義が「ある1点からの距離が等しい点の集合」のため、ある一点からの距離に半径を引き算すれば完成
code:glsl
float sdSphere(vec3 p, float r) {
return length(p) - r;
}
その他のプロシージャルなSDF
テクスチャ
テクスチャにSDFを格納することも可能
CG文脈では、文字や図形をレンダリングする際に用いられることが多い