天天看點

[acm15]the sggx microflake distribution關鍵點結果

[acm15]the sggx microflake distribution關鍵點結果

intro

acm transaction on graphics 15的一個文章;

https://dl.acm.org/doi/10.1145/2766988

整體偏學術,主要是對馬島的siggraph20的course中有引用,順着看過來,還挺有意思;

論文本身有點晦澀,看起來有點枯燥,看這個視訊比較好:

https://www.bilibili.com/video/BV1MK411P71x?from=search&seid=10817193380449311591

筆者還加了些注釋說明。

overview

sggx microflake distribution是處理volume 渲染的一個方法;

[acm15]the sggx microflake distribution關鍵點結果

像fur,fabric,植被這種,實體比較正确的方式還是要按照volume去模組化;

像之前[sig16]《神秘海域4》中的volumetric-based materials

裡的技術還是偏hack的,沒有做正确的模組化和計算。

[acm15]the sggx microflake distribution關鍵點結果

在sggx之前,是有zhao shuang老師的很多在volume渲染方面的很多工作.

對于毛發這種,是屬于各向異性的體資料,一般使用的模組化是microflake;毛發這種完整說來是:spatially-varing properties of anisotropic microflake participating media;

microflake就是如圖了解就行,就是volume中一堆小片,用這個來模組化各種體資料;

[acm15]the sggx microflake distribution關鍵點結果

但是之前的做法是超高精度的渲染方式,細節很高,但是消耗太大;

而且數學模型也不容易去downsample。

sggx是使用了一個更加簡單,以及容易lod的表達,極大地提升了這個渲染的效率,是以也在一些遊戲中開始被使用;

關鍵點

整篇文章關鍵點兩個:

  • roughness實體屬性的直覺表達,是microflake在各個方向上的投影面積(project area)
  • 然後使用ellipsoid(橢球體)來表達模組化,把解析公式的方式,轉變成geometry的方式,進而把整個問題大幅度簡化
    [acm15]the sggx microflake distribution關鍵點結果

    這裡作者首先從light在volume中傳播的方式來進行反推,最後得出roughness就是microflake在各個方向上的project area;

    然後進行downsample的時候也要圍繞這個來做;

    一旦有了project area這個關鍵點,那麼模組化就相對直接

    [acm15]the sggx microflake distribution關鍵點結果
    [acm15]the sggx microflake distribution關鍵點結果

就是使用ellipsoid來模組化,可以做到和原來的microflake等效;

[acm15]the sggx microflake distribution關鍵點結果

這樣normal distribution什麼的也都有了,sggx的ellipsoid模型也可以把ggx distribution統一進來;

[acm15]the sggx microflake distribution關鍵點結果

然後ellisoid表達就是一個矩陣就有了,各種簡潔;

進而各種dowsample等等的操作就簡單了;

結果

sggx normal distribution能夠在效果相近的情況下,大幅度提升渲染效率,可以說是挺犀利了;

[acm15]the sggx microflake distribution關鍵點結果
[acm15]the sggx microflake distribution關鍵點結果

繼續閱讀