首页 理论教育直接照明在虚拟现实中的应用

直接照明在虚拟现实中的应用

【摘要】:直接照明是一个被老式渲染引擎所采用的主要光照方法。表4-1阴影产生方法需要考虑的最重要的问题是,由于这些方法会产生超越真实的图像,他们只能处理只有点光源的场景,而且场景中的物体都能做到完美地反射和漫反射。同时也应该注意到,在真实世界里,我们仍然能看到不被直接照亮的物体。直接照明的渲染器试图通过加入环境光来解决这样的问题。这样一来所有的物体都接收到一个最小的普遍直接照明值。

直接照明是一个被老式渲染引擎(如3D Studio、POV等)所采用的主要光照方法。一个场景由两种动态物体组成:普通物件和光源。光源在不被其他物件遮挡的情况下向某些物件投射光线,若光源被其他物体遮挡,则会留下阴影[30]

在这种思想之下有许多方法来产生阴影,如Shadow Volume(阴影体)、Z缓冲方法、光线追踪等等。但由于它们都采用一个普遍的原则,因此这些方法都有同样的问题,而且都需要捏造一些东西来解决这些问题(见表4-1)。

表4-1 阴影产生方法

(www.chuimin.cn)

需要考虑的最重要的问题是,由于这些方法会产生超越真实的图像,他们只能处理只有点光源的场景,而且场景中的物体都能做到完美地反射和漫反射。现在,除非你是某种富裕的白痴,你的房子可能并不是装满了完全有光泽的球体和点状的光源。事实上,除非你生活在完全不同的物理背景下的一个宇宙空间,你的房间是不可能出现任何超级锐利的阴影的。

人们宣称光线追踪器和其他渲染器能够产生照片级的真实效果是一件非常自然的事情。但想象如果有人拿一张普通光线追踪(这种渲染方法类似经典OpenGL光栅和光照渲染方法)的图片给你看,然后声称它是一张照片,你可能会认为他是一个瞎子或者骗子。

同时也应该注意到,在真实世界里,我们仍然能看到不被直接照亮的物体。阴影永远都不是全黑的。直接照明的渲染器试图通过加入环境光来解决这样的问题。这样一来所有的物体都接收到一个最小的普遍直接照明值。