在传统计算机图形学中,大多数3D模型是通过对细分的图元网格(通常是三角形或四边形)进行光栅化或光线跟踪来渲染的。最近,已经有一些实时技术基于对有符号距离场(SDF)进行光线跟踪。直观上讲,这些距离场不能与传统渲染的三角形和四边形相同,并且必须像3D几何图元(立方体,球体等)那样才能获得适当的阴影。这是真的?如果不是,是否可以使用SDF来表示“传统” 3D模型的复杂场景?如果是真的,那么艺术家如何创建SDF渲染器中使用的高细节模型?

#1 楼

带符号的距离场在最小的图形应用程序(例如演示场景)中很受欢迎,在演示应用程序中,可以从一些简单的分析图元(例如球体或立方体)合成有趣的对象。然而,带符号的距离场不限于这些简单的对象,并且它们不一定需要由人类来设计。例如,您可以在没有任何艺术家交互的情况下合成三角形网格的解析有符号距离字段-SDF毕竟只是到最接近的三角形的有符号距离,可以轻松计算。这样,您就可以继续使用传统的网格管道,同时还可以在后台使用SDF。

对于虚幻引擎,对于所有静态网格物体,SDF都会自动预先计算一次,然后采样到一个低分辨率3D纹理。然后,可以使用简单的纹理查找在任何地方进行廉价评估,从而使它们可以在运行时进行柔和的阴影处理。这个在GDC 2011上的虚幻演示简要地提到了3D纹理(幻灯片27)。

评论


$ \ begingroup $
从体素模型生成SDF也很容易。
$ \ endgroup $
–内森·里德(Nathan Reed)
2015年8月5日,9:10

$ \ begingroup $
关于GPU Gems 3的一篇文章介绍了如何使用GPU构造任意网格的有符号距离场,该文章可从此处免费获得:http.developer.nvidia.com/GPUGems3/gpugems3_ch34.html
$ \ endgroup $
–马特奥·贝特洛(Matteo Bertello)
2015年8月7日14:32