<圖學玩家 第001篇 原創文>
在閱讀與3D模型生成相關的論文時,SDF是非常常見的關鍵字,因此筆者在這邊跟各位介紹Signed Distance Field (SDF)。
在計算機圖學中,對於3D物體表面的表示有顯示 (Explicit) 和隱式 (Implicit)兩種方式。顯示表示法如我們常見的Mesh, Point Cloud這些直接表現出幾何資訊的方式。而隱式表示法是屬於間接表示法,就好比我們可以用以下數學式去表示單位球:
而SDF則可以用來對3D物體表面進行隱式表示。
SDF是一種空間描述,用來描述空間中每一個點,到離該點最近的3D物體表面的距離,在物體表面外為正值,否之為負值,下圖以2D輪廓作為圖示:
從上圖例子可以看出,即使我們不特別給定輪廓線的資訊,單純以整個空間的SDF資訊,也可以用來間接表示該2D輪廓。而3D物體表面只是2D的延伸概念。
Application
SDF的應用非常廣泛,例如下圖遊戲引擎的Particle系統中,我們可以根據SDF建置一個Direction Texture,讓移動中的Particle知道自己已經接近建築物,不要讓自己跑進去。
而關於SDF更多的應用,可以參考Raymarching的介紹。