Signed Distance Field
#陰関数 #CG #数学
SDF
位置を入れると物体表面までの距離を返すような関数
「物体表面」は、厳密には「距離空間における集合の境界」
陰関数の特殊な場合である
物体外部では正の値・物体内部では負の値を取るように設計されることが多い
https://en.wikipedia.org/wiki/Signed_distance_function
SDFの例
円・球
円や球は、最も単純に定義できるSDFのひとつ
定義が「ある1点からの距離が等しい点の集合」のため、ある一点からの距離に半径を引き算すれば完成
code:glsl
float sdSphere(vec2 p, float r) {
return length(p) - r;
}
その他のプロシージャルなSDF
iqの神記事を参照
https://iquilezles.org/articles/distfunctions/
テクスチャ
テクスチャにSDFを格納することも可能
CG文脈では、文字や図形をレンダリングする際に用いられることが多い
初出はImproved Alpha-Tested Magnification for Vector Textures and Special Effects