一张图搞定SDF的概念
本文僅代表個人理解,謬誤之處請指正。
SDF:
Signed Distance Field,譯為有向距離場,“有向”、“距離”、“場”這三個詞非常精確的描述了sdf究竟是個什么東西。GPU Gems 3中是這么描述sdf的:“SDF是由到(多邊形模型)物體表面最近距離的采樣網(wǎng)格。作為慣例,使用負值來表示物體內(nèi)部,使用正值表示物體外部。SDF理念對于圖形圖像及相關(guān)領(lǐng)域具有很大的誘惑力。它經(jīng)常被用于布料動畫碰撞檢測、多物體動力學、變形物體、mesh網(wǎng)格生成、運動規(guī)劃和雕刻。”
關(guān)于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中數(shù)字正負與黑色箭頭代表“signed”,正負數(shù)字與零邊界之差為“distance”,青色區(qū)域代表“field”。
3、青色區(qū)域為sdf存在的區(qū)域,在naiad中則是fine tile區(qū)域。
?
?
Iso-surface:
譯為等值面、等參面、等值參數(shù)面,在naiad中可以理解為一種用于可視化sdf等值面的一種顯示方法,iso-scope默認顯示的是sdf的零參數(shù)面(零邊界)。
?
?
iso-scope:
iso-scope用來查看sdf在不同邊界值下的iso-surface,在naiad中使用的非常頻繁。
圖2
?
圖3
?
iso-scope不僅能顯示模型的原生sdf,也能顯示原生sdf通過零邊界偏移后的情況,如圖4:
圖4
?
圖4中Iso ?Value中的數(shù)值0.1可以理解為顯示SDF值為0.1的等值面。
?
iso-scope所查看的對象必須是body,而且這個body必須帶有這樣一個Field Channel,這個Field Channel必須是distance channel,也就是sdf。
?
Quality菜單下
Slice Count:iso-scope的顯示原理是把sdf根據(jù)voxel進行采樣并切片顯示。Slice Count越高,sdf顯示越細致,顯存\刷新速度越慢,Slice Count與顯存占用呈線性關(guān)系。
SuperSampling:對于voxel的超采樣精度。SuperSampling越高,sdf顯示越準確,顯存\刷新速度越慢,SuperSampling與顯存占用成指數(shù)遞增關(guān)系,過高容易導致顯存溢出,顯卡停止響應。
?
?
tile-scope:
tile-scope用來查看body的tile-layout,tile-layout指的是naiad中body的field channel所存在的區(qū)域。查看tile-layout是naiad中用來了解資源占用以及各種性能問題診斷的重要手段。一個正常的帶有field的body通常有能將其粒子、模型完全包裹的tile-layout,如圖5:
圖5
?tile-layout包含fine tile和coarse tile,sdf只存在于fine tile中,通常關(guān)注fine tile就可以。
再分享一下我老師大神的人工智能教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們?nèi)斯ぶ悄艿年犖橹衼?#xff01;https://blog.csdn.net/jiangjunshow
轉(zhuǎn)載于:https://www.cnblogs.com/skiwnchiwns/p/10345407.html
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的一张图搞定SDF的概念的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2 字符串String
- 下一篇: Linux命令-磁盘管理(二)