有些游戏声称使用表面散射,但是我目前对sss的理解只能通过光线追踪来实现。如果没有光线追踪,您将如何进行表面散射?做一些声称使用sss的事情,但实际上使用一些不使用光线的近似技巧。我什至无法想象实时进行以下操作。


评论

一种方法是将网格的背面渲染到深度缓冲区以计算“光学深度”,该深度不适用于高度凹入的网格,但看起来还不错。 http.developer.nvidia.com/GPUGems/gpugems_ch16.html

#1 楼

有很多方法可以以较高或较低的保真度伪造SSS。一些最近流行的方法:


物体照明的屏幕空间模糊(在此处详细介绍)




使用从几何的正常翻转版本生成的“内部”环境光遮挡贴图来近似局部厚度,从而提供一种简单的方法来伪造光透射(此处提供更多信息,并在此处提供附录)



PaulHK链接到的GPU Gems文章中也有各种各样的技术。我要添加的一件事是关于开头提到的减光纹理方法,Valve除了伪造的SSS外,Valve还用于Source游戏中的一些有趣效果–有关此信息,请参阅其$lightwarptexture文档。



评论


$ \ begingroup $
另一个不错的选择是几年前SIGGRAPH的Pre-Integrated Skin Shading。
$ \ endgroup $
–内森·里德(Nathan Reed)
17年4月21日在20:27