Loading
0

VRay穹顶灯光

大家好,我是逆水。今天为大家讲解VRay穹顶灯光。

我们再来看一下VR的穹顶灯类型里面还有一个穹顶,

在视图里建立一个穹顶灯,

可以看到它的形状是以个半球,这让我们想起来了天光是不是这样呢,比如我们都知道天光是太阳照射到大气层上反射的回来的但是我们在地球上的任意一点只能看到半个大气层,因为另外半个大气层在地球的另一端。

所以与其说这个天光事实上就是半球形状的反射媒介,而我们的穹顶灯它的形状也是以个半球那他和天光有什么区别呢,从这个照明来看和天光没有任何区别,所以基于这一点它的位置没有任何意义,当然如果你使用这个光子贴图指的是间接照明离的光子图引擎,

当你使用光子图引擎的时候它的位置才可能有意义为什么呢,因为你会发现它外面还有两个圈,

这两个圈分别是光子发射的目标半径和发射半径,那么如果你想使用这两个参数前提是必须使用光子图引擎,我们都知道光子图引擎是以个几乎被淘汰的一种引擎很少会用到它,因为它的缺点太多了,所以导致这个参数也没有什么意义了。

那么如果我们不使用光子图引擎的话它的位置就没有任何的意义了,放在哪里都可以但是它的方向是有意义的那么我们现在先看一下它的效果。我们将的亮度先调整一下调整为0.35吧,

我们观察一下渲染效果,

这是穹顶灯的照明效果与天光非常类似,甚至于如果你使用辐射率的话倍增值也跟天光的值差不多。穹顶灯的方向是有意义的比如我们先将这个穹顶转180度,

这表示它在另一个方向上,那么这样的话我们来看一下产生了什么样的照明效果呢,

你可以看到底下都是黑的了,但是高于我们这个棋盘盒边的部分仍然会受到照射。这里很好理解因为你可以画一条线来看一下,

当前的大气层它是这么大的,那么高出的部分让然可以获得穹顶灯的照射。但是别忘了这是接近于无限大的这么一个半球,所以产生这样的照明效果是正确的。在这里大家要留意它的方向。

位置这一点没有意义这一点大家一定要切记,这样的话给我们带来一个问题那么它有什么用呢我既然有天光了我们还要这个穹顶有什么作用呢,它的作用呢就在它这个参数里面,光子发射我们刚才说过了在这里就不再重述了,

球形也就是完整穹顶表示上下有两个,比如我们刚才把方向转过去了另外一边就变暗了如果你选择球形虽然它的形状没有什么变化但是它表示另外一边也有一个穹顶形成一个球形,所以即使它头朝下但是我们点击了球形所以这次依然可以照亮。

我们任然选择半球回到刚才的话题上,那么它的意义何在呢,它的意义就在于光驱,

这个光驱的作用是值阴影射线如何进行搜寻运算,这就是大家需要理解的一个概念给大家简单的演示一下什么叫阴影射线或者叫阴影光线都是以个意思。我们在这里放一盏灯这个灯的位置是确定的。

那么肯定会为这几个棋子产生阴影,那么这个阴影是如何算出来的呢。事实上棋盘上的每个点其实也包括每个棋子,在运算的时候棋盘上的每个点都会向光源发射一条光线,这条光线叫做阴影光线。然后判断一下在这个过程中是否会碰到物体,如果这个过程中碰到了物体它会因为这个点是阴影区应该变暗。

所以说棋盘上的每个点都会发出阴影射线指定向光源,可问题是在于我们这个穹顶灯它的位置没有意义因为它无论它放到哪都表现的是这么一个无线大半球。

这样的话阴影射线是如何运算的呢。因为这个灯没有具体位置,每一个点都会向外发射光线然后以便于确定它是不是来产生阴影。这样的话它运算肯定要稍微慢一些。

但是这样的话不会慢很多吗,其实这个不是为什么呢,因为即使你这个灯假设它又具体的位置但是一个点向外发射的阴影光线不是一条,因为这个灯是有体积的所以这个点也会再发射一条以此来判断这个影子是实还是虚应该处于一个什么样的状态。

因为我们都知道影子都是有软阴影的这就是阴影射线或者叫阴影光线的意义,穹顶灯的优势为什么有了天光它还要存在呢就是因为它可以调光区,光区用来决定阴影射线如何进行运算。

比如光区默认的是无这就表示不去进行运算,到处都能照亮还有一个从全局照明设置里来定义,

那么首先你得使用光子图引擎,在全局光子图里面有搜寻距离这个值由它来进行决定,

但是很显然我们很少回去使用光子图引擎,所以最常用的是第三个显示,

所谓的显示就是明确表示一下距离是多远,比如距离值是100那么我们看一下给大家举一下例子,我们明确的指出距离是100那么从棋盘发射出射线距离是100以后它就不在继续向上去进行搜寻了,

那么它会判断出一个什么结果呢,有一个障碍物所以这里会变暗。如果我们把搜寻距离设置为300那就是说阴影射线向外发射的距离为300得到的结论就是碰到了三个障碍物所以它会变得更暗。这呢就是这个参数的意义。

所以根据这个我们很容易的表现出一些我们想要的效果,这也是VR穹顶灯光的优势。在这里我们首先打开一个卫生间的场景。这个场景我们先看一下天光并没有打开,

GI也就是间接照明都是单帧的加入了灯光缓存,

然后我们加了一盏穹顶灯,注意我们场景中的窗口是唯一获得光线的地方而我们加了一盏穹顶灯。首席我们把穹顶灯关掉,

先看一下天光渲染的效果,在这里我们把天光打开设置亮度为5,

我们点击渲染看一下,

这个效果我们先把它保存起来接下来我们关闭天光,然后把我们的穹顶灯打开,

穹顶灯打开之后在这里我们调整一下它的参数,细分值是8光区选择无我们看一下是什么效果,

大家可以看到它把这个场景照的很亮,接下来我们选择显示,

提醒它搜寻距离为6米也就是说每个点向外的阴影搜寻距离为6米,在6米内如果碰到障碍物它就会判断此处应该变暗调整好这个值之后我们再进行渲染,

这次用了很长时间将近三分钟才渲染完成,

我们对比一下效果,

可以看到当我们使用显示的时候明确指定距离那么渲染的效果要更好一些,注意我们这里先不弹明暗可是它出现很多杂点那么接下来我们把这个值改成20米,

我们渲染看一下又是什么效果,

这是距离为20米的效果,我们对比一下6米的效果看一下。

你可以看到非常明显20米的话整个场景变暗了,我们不跟之前的无进行对比无只是为了看效果而明暗呢我们就看一下6米和20米的区别,20米变暗了6米比较亮为什么呢,因为每个点发射出的阴影射线如果向各个方向行走20米的话碰到的障碍会更多,那么很明显碰到的障碍物越多就会越暗。

一个障碍物和五个障碍物明暗度肯定是不一样的,所以通过这个值我们可以在穹顶灯亮度没有改变的情况下而改变屋子里面的照明效果。

并且它所产生的效果更具备层次感也更加真实,最重要的一点就是可控制能力强这一点是天光无论如何也做不到的。

那么现在我们看一下问题的处理,

这是距离为6米所产生的效果,6米产生的效果我们会发现出现了非常多的杂点,

我们通过区域渲染选择一小块将它的细分值调高比如调高到50然后再次进行渲染,

可以看到杂点有了一些改善但是并没有完全消失,所以我们需要把这个细分值调的非常高才会把这个杂点去除掉,但是这样带来的问题就是渲染时间特别的长。所以我想到了存储发光图的方法。

使用这个方法来消除杂点,选择储存发光图并且在渲染设置里面把当前预设选择非常低,然后采样插值我们改为50让它大一点,

这样我们再次进行渲染看一下杂点问题是否得到了消除,

我们可以看到杂点已经被完全的消除掉了,窗子外面为什么是白色的因为我们没有点击这个不可见,

而我们这个穹顶灯光是一个无限大的半球注意它的方向我们是这样扣过来的,

由于我们没有选择不可见所以它在渲染时候窗子这里可以看到这个穹顶灯,所以都是白的而我们点击不可见那么做一个区域渲染看一下,

大家可以看到外面就黑了不像刚才那样白了,这个背景定义的是蓝的如果背景定义的黑的那么它现在就黑了。

那么这个场景我要逐一表现这个卫生间的水龙头改怎么办呢,比如说场景中VR灯有十盏其中有两盏是专门照这个水龙头,那么我就可以把这十盏灯其中八盏都使用存储发光图,而你想逐一表现的水龙头照它的两个灯就不选择存储发光图。

也就是说仍然使用灯光的细分硬把它运算出来,这样的话整个场景就没有问题你想逐一表现的出题也没有问题渲染时间却大大的减少了,这也算是一个小小的技巧吧。从光区、距离这里我们可看出穹顶灯光的优势。

那么今天呢,就给大家分享到这里,如果你觉得文章对你有帮助,希望将网站分享给你的朋友。感谢大家支持!