本文僅代表個人理解,謬誤之處請指正。
SDF:
Signed Distance Field,譯為有向距離場,“有向”、“距離”、“場”這三個詞非常精確的描述了sdf究竟是個什么東西。GPU Gems 3中是這么描述sdf的:“SDF是由到(多邊形模型)物體表面最近距離的采樣網格。作為慣例,使用負值來表示物體內部,使用正值表示物體外部。SDF理念對於圖形圖像及相關領域具有很大的誘惑力。它經常被用於布料動畫碰撞檢測、多物體動力學、變形物體、mesh網格生成、運動規划和雕刻。”
關於sdf的更多知識可參考如下鏈接:GPU Gem 3,Byte wrangler`s blog,SIGGRAPH2007_AlphaTestedMagnification。
在naiad中的sdf是個3d的東西,但我接下來用自己制作的一幅二維圖像來解釋2d的sdf,這樣反而更容易理解3d的sdf~

圖1
圖1中:
1、藍色線條為sdf的零邊界連線,在naiad中則是iso-scope顯示的iso surface。
2、“有向”“距離”“場”的概念:voxel中數字正負與黑色箭頭代表“signed”,正負數字與零邊界之差為“distance”,青色區域代表“field”。
3、青色區域為sdf存在的區域,在naiad中則是fine tile區域。
Iso-surface:
譯為等值面、等參面、等值參數面,在naiad中可以理解為一種用於可視化sdf等值面的一種顯示方法,iso-scope默認顯示的是sdf的零參數面(零邊界)。
iso-scope:
iso-scope用來查看sdf在不同邊界值下的iso-surface,在naiad中使用的非常頻繁。

圖2
圖3
iso-scope不僅能顯示模型的原生sdf,也能顯示原生sdf通過零邊界偏移后的情況,如圖4:
圖4
圖4中Iso Value中的數值0.1可以理解為顯示SDF值為0.1的等值面。
iso-scope所查看的對象必須是body,而且這個body必須帶有這樣一個Field Channel,這個Field Channel必須是distance channel,也就是sdf。
Quality菜單下
Slice Count:iso-scope的顯示原理是把sdf根據voxel進行采樣並切片顯示。Slice Count越高,sdf顯示越細致,顯存\刷新速度越慢,Slice Count與顯存占用呈線性關系。
SuperSampling:對於voxel的超采樣精度。SuperSampling越高,sdf顯示越准確,顯存\刷新速度越慢,SuperSampling與顯存占用成指數遞增關系,過高容易導致顯存溢出,顯卡停止響應。
tile-scope:
tile-scope用來查看body的tile-layout,tile-layout指的是naiad中body的field channel所存在的區域。查看tile-layout是naiad中用來了解資源占用以及各種性能問題診斷的重要手段。一個正常的帶有field的body通常有能將其粒子、模型完全包裹的tile-layout,如圖5:

圖5
tile-layout包含fine tile和coarse tile,sdf只存在於fine tile中,通常關注fine tile就可以。
再分享一下我老師大神的人工智能教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智能的隊伍中來!https://blog.csdn.net/jiangjunshow


