天天看点

[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关键点结果

继续阅读