当前位置:文档之家› vr初学者须走出小光子渲大图中的一个误区(速度质量平衡的关键)

vr初学者须走出小光子渲大图中的一个误区(速度质量平衡的关键)

vr初学者须走出小光子渲大图中的一个误区(速度质量平衡的关键)私人空间2007-09-29 16:35:14 阅读626 评论0 字号:大中小订阅声明:本贴写给和我一样陷入一个利用小光子贴图渲染大图误区的初学者朋友。

天天泡在网上看教程,天天练模型,回首一看,才发现自己陷入了一个利用小光子贴图渲染大图的误区,在这里写出来,望和我有着一样经历的朋友尽早走出这个误区。

你是否和我同样有这样的经历呢?就是在网上看过很多的教程之后,利用教程中的参数(或是使用下载下来的模型中自带的参数)渲染了一如400*300的小图,然后保存光子贴图,然后去渲染1600*1200的大图?为什么相同的参数渲染出来的图就是不一样呢?如果和我有相同的经历,那么接着往下看吧!其实我们对一个概念理解的不是很清楚,那就是小光子贴图,什么才是一个400*300的小光子贴图呢?而非是渲染出一个尺寸仅仅为400*300的图出来,然后保存的光子贴图。

(这段话很重要,认真理解。

因为400*300可以渲染200*150的光子图,也可以渲染出800*600的光子图)我们需要搞明白渲染尺寸与光子贴图设置的问题。

先用一个例子说明这一点。

(注意:例子是用来说明渲染尺寸与光子贴图设置的问题,并不是教大家增大渲染尺寸的解决方案)注:很多朋友看完了还是没明白,我在这想说的是你在看的时候要弄明白两个概念:1。

出图的分辨率大小(也就是出图设置的渲染尺寸的大小)2。

光子贴图的分辨率大小(它与出图分辨率和“最大比率值”有关)只要掌握了它们的关系,速度质量平衡的关键基本上也就掌握了。

补充一点我的看法:在做图的时候,不要首先不在去考虑你最终要出多大的图,而是去考虑这张图你需要设置为多大的光子图才能满足(也就是不出现漏光等错误现象),至于原因看贴。

第9页。

如果看了还是不懂,请多看两遍,最好从第1页看到第9页。

水平有限,表达上有问题,见谅。

可以参考/post/view?bid=3&id=9431442&sty=1#9431442贴子,里面是更科学的说法。

认真看完这两个贴子,我相信。

重新整理的贴子去/post/view?bid=3&id=9461815&sty=1&tpg=1&age=30注意:有网友说:“你这里有一个巨大的错误,那就是,光子图根本不存在分辨率一说,不论是irmap photon map 还是light cache map 都是没有分辨率一说的, min max决定的pass过程只不过是告诉VR用什么样的图像解析度密度来采样分析场景以判断并放下采样点, 生成的那些图,都是三维数据结构,没有分辨率,不是图片! ”因此我所以使用了光子图与分辨率这一说,主要是让大家用一种很老土的办法去掌握它,学会用它,虽然说法是错误的,但用法是不会有错的。

就如你想安装一个灯,我只说你将两根线分别接在灯头的两个接口上,不要让两根线相碰着就行了,结果灯亮了,我也没有精力花了几个小时甚至几天的时间给你讲什么是交流电,什么是正负极,什么是。

,他们为什么会让灯泡亮等等一大堆的道理来,我也不懂,说多了也许你也不懂。

至于你非得想知道交流电的原理,这方面的教程多的是,可以自己去看。

也可以请老师教。

道理都一样。

因为在写“(讨论)vr初学者须走出小光子渲大图中的一个误区(速度质量平衡的关键)”这个贴子时,有很多地方表述的不是很完整,加之帖子长,前后也不联贯,所以很多网友看了好几遍也没整明白。

今天我重新整理一下,总结原来贴子中的一些东西。

谢谢网友们的关注与支持,理不辨不明,在众人的力量下,才有这个贴子的出现。

原贴在/post/view?bid=3&id=9429927&sty=1&tpg=1&age=30如果这个贴没看明白,可以去看看,里面的解决方案很多。

关于光子图详细的解释去看/post/view?bid=3&id=9431442&sty=1&tpg=2&age=30如果看了3遍还是不懂的话,QQ89531706真无聊花钱聊(真无聊花钱聊不想聊也要聊聊来聊去尽闲聊)注意:有网友说:“你这里有一个巨大的错误,那就是,光子图根本不存在分辨率一说,不论是irmap photon map 还是light cache map 都是没有分辨率一说的, min max决定的pass过程只不过是告诉VR用什么样的图像解析度密度来采样分析场景以判断并放下采样点, 生成的那些图,都是三维数据结构,没有分辨率,不是图片! ”因此我所以使用了光子图与分辨率这一说,主要是让大家用一种很老土的办法去掌握它,学会用它,虽然说法是错误的,但用法是不会有错的。

就如你想安装一个灯,我只说你将两根线分别接在灯头的两个接口上,不要让两根线相碰着就行了,结果灯亮了,我也没有精力花了几个小时甚至几天的时间给你讲什么是交流电,什么是正负极,什么是。

,他们为什么会让灯泡亮等等一大堆的道理来,我也不懂,说多了也许你也不懂。

至于你非得想知道交流电的原理,这方面的教程多的是,可以自己去看。

也可以请老师教。

道理都一样。

里面有涉及到发光贴图(irradiance map),而且大部分人还不太清楚它的具体是怎么计算。

帖子里围绕在min和max数值及图像解晰度的关系,其实十分简单的,VRay使用手册已经讲得好清楚的了。

首先我想讲的是,关于光子图的正确概念,光子图也叫光子贴图(photon map),在之前使用的ir map+photon map组合中,一般先设置为pm + pm,保存计算好的photon map,这个就是所谓的光子图,然后再设置为ir map + pm模式,pm设置为读取保存的光子图,加快ir map的计算。

现在常用的组合就是ir map + lc,其相应能保存下来的就是发光贴图文件和灯光缓存文件。

所以以后在没有使用photon map 这个引擎的话就不要再出现光子图这个词了。

所以,在阅读以下文字之前,请先抛弃光子图这三个字以及以往关于光子图的所有概念。

首先假定图像尺寸为640*480,默认情况下,system卷展栏下的render region division是64*64的。

将min和max参数都设置为0,那么此时的发光贴图的采样解晰度为640*480,即与图像大小一样。

而当min和max都为-1时,发光贴图的采样解晰度为320*240,即是图像解晰度的1/2。

又当min和max都为-2时,发光贴图的采样解晰度就变成了160*120,即是图像解晰度的1/4。

这里需要了解的就是,VRay是以像素为单位来进行GI采样,抗锯齿采样,噪波处理,色溢处理等工作的。

其实min与max参数的含义十分简单的,它的数值就是确定要多少个像素取一个采样。

当值为0时,就是每一个像素取一个采样;-1时,每4个像素取一个采样;-2时,每16个像素取一个采样;……之后的就类推就可以了。

换算很简单,假设它为n,就是4的-n次方个像素取一个采样。

所以当设置为1时,就是1/4个像素也就是1个像素取4个采样,这是超采样(oversampling)了。

在前面,都是将min和max设为相同的数值。

将这两个参数设置为相同的数值的话,就没有让VRay 去适应环境来计算,也就是没有利用好发光贴图计算GI的强大能力。

如果将这两个参数分开设置,就可以让VRay在需要大量采样的地方应用较大解晰度的发光贴图,在较少的采样都可以接受的地方就应用较小的发光贴图。

下面来看看发光贴图是怎么进行自适应采样的。

在下面的左图可以看到场景里大量的采样(显示为点),采样没有关心实际的需要,到处都给上同样的感情。

这是因为min和max都设置为-3,仅一次采样pass。

结果就是用去较多的时间(7.5sec)。

来看这两个图,可以看出用更少的时间(5.7sec)得到了同样的质量。

注意在特定区域采样比较多。

min和max的关系在VRay使用手册里已经说明了,发光贴图是以min设置的采样精度开始计算,以max设置的采样精度结束计算。

以-3/0设置为例,ir map以-3的精度开始进行采样;接着再以-2的精度进行采样,这次是在-3采样的基础上,来决定哪些地方需要增加采样,哪些地方不需要增加采样;之后再继续-2、-1、0的采样。

这里进行了-3、-2、-1、0共4个pass,所以这个pass数的确定可以按这个公式来计算:max-min+1。

在理想情况下,当然是每个像素取一个样本甚至几个样本就最好了,可是时间会以平方级增加的,没有足够的时间和强劲的机器是撑不下来的。

所以一般情况下,max取-3~-1的精度都可以满足高质量的需要了。

这里还需要min的配合,因为需要的足够的pass数才能进行准确的采样,一般有3~4个pass都可以是高质量的了,太多的话也没什么必要了。

因为min太小,也就是初始采样精度太小,基本是可以忽略的。

对于640*480,-3/0是一个高的设置,如果你要在1280*960下要得到同样的质量的话,-4/-1的设置就可以了;-5/-2就可以满足2560*1920的高质量需要了。

又再比如用320*240,-3/-2设置来计算,再用来渲染3200*2400的图的话,那么相对于3200*2400来说的设置就大概是-6/-5左右,试想下这样的发光贴图能满足GI精度的要求吗?细节能保证吗?那么什么样的设置是最优的设置呢?这就需要对其了解并掌握了经验并根据自己的工作流来确定,当然针对每一个场景的设置都是不同的。

我个人比较喜欢用low来进行小场景的测试,very low来进行大场景的测试;出图的话,一般medium都可以满足的了,如果质量还不行就用high,不过我还是喜欢用high 的多。

当然光看这两个参数还是不够的,还需要与其他参数如hsph.subdivs、inter.samples、DE等参数配合来出速度质量比最优的设置。

有人说,用320*240,-3/-2来计算小图,再在1600*1200,-3/0来进行渲染。

这是不正确的,可能也是造成大家的图质量不好的原因。

保存计算好的信息,在读取模式下,再怎么调节min/max数值都已经不起作用了。

其实很容易就知道,在读取模式下,就算调高了min/max的数值,发光贴图都不会再计算了的。

还有,不需要在测试中随时保存发光贴图文件的,在一切都调节好后再用高参数计算后保存,再读取进行渲染就可以了。

最后补充,min和max所决定的并不是ir map的解析度,ir map并不是一张图,不存在解析度一说,它决定的是用何种像素解析度来采样场景, 生成的ir map并不是图片,而是一种特殊的数据结构,是一些点和色值信息, 并不是说max为0就生成了原图一样分辨率的图片,而是用与原图同分辨率的解析度来采样生成采样点, 最后得到一个三维空间点阵信息图, 不管min max的取值如何,ir map都不是一张图片,也没有所谓的分辨率。

相关主题