提高VR渲染速度的关键.docx
《提高VR渲染速度的关键.docx》由会员分享,可在线阅读,更多相关《提高VR渲染速度的关键.docx(12页珍藏版)》请在冰豆网上搜索。
![提高VR渲染速度的关键.docx](https://file1.bdocx.com/fileroot1/2022-11/27/8e9bea3f-a12a-4cc6-9af4-58f8fa10c01f/8e9bea3f-a12a-4cc6-9af4-58f8fa10c01f1.gif)
提高VR渲染速度的关键
提高VR渲染速度的关键
1.关于大家对发光贴图的疑问的解释(附VR常见问题的解答)VR渲染器教程VR发光贴图VRay渲染速度关键vray采样
围绕在min和max数值及图像解晰度的关系,其实十分简单的,VRay使用手册已经讲得好清楚的了。
首先我想讲的是,关于光子图的正确概念,光子图也叫光子贴图(photonmap),在之前使用的irmap+photonmap组合中,一般先设置为pm+pm,保存计算好的photonmap,这个就是所谓的光子图,然后再设置为irmap+pm模式,pm设置为读取保存的光子图,加快irmap的计算。
现在常用的组合就是irmap+lc,其相应能保存下来的就是发光贴图文件和灯光缓存文件。
所以以后在没有使用photonmap这个引擎的话就不要再出现光子图这个词了。
首先假定图像尺寸为640*480,将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使用手册里已经说明了,发光贴图是以min设置的采样精度开始计算,以max设置的采样精度结束计算。
以-3/0设置为例,irmap以-3的精度开始进行采样;接着再以-2的精度进行采样,这次是在-3采样的基础上,来决定哪些地方需要增加采样,哪些地方不需要增加采样;之后再继续-2、-1、0的采样。
这里进行了-3、-2、-1、0共4个pass,所以这个pass数的确定可以按这个公式来计算:
max-min+1。
这里可以知道,其实max值就是控制发光贴图最大精度的一个重要数值。
所以,在理想情况下,当然是每个像素取一个样本甚至几个样本就最好了,可是时间会以平方级增加的,没有足够的时间和强劲的机器是撑不下来的。
所以一般情况下,max取-2或-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精度的要求吗?
细节能保证吗?
有人说,用320*240,-3/-2来计算小图,再在1600*1200,-3/0来进行渲染。
这是不正确的,可能也是造成大家的图质量不好的原因。
保存计算好的信息,在读取模式下,再怎么调节min/max数值都已经不起作用了。
其实很容易就知道,在读取模式下,就算调高了min/max的数值,发光贴图都不会再计算了的。
还有,不需要在测试中随时保存发光贴图文件的,在一切都调节好后再用高参数计算后保存,再读取进行渲染就可以了。
呵呵,大概就这么样的了,更多的大家可以参考VRay的使用手册,很多地方都可以找到的。
关于使用VRay的部分FAQ。
Q:
学习VRay需要什么基础?
A:
软件上,要有一定3dsmax基础及相应的软件知识。
其他的还需要对照明,真实材质等相关知识有个了解和掌握。
Q:
场景里有VRay色溢如何解决?
A:
可以使用材质包裹器或GI卷展栏下的全局色彩饱和度来控制。
VRay是一个很真实的渲染器,饱和度高的颜色和贴图都会反弹出较多的光线,所以在颜色和贴图的设置和选择上还要注意设计是否合理。
Q:
某个场景的VRay光怎么打?
为什么怎么打都不亮?
A:
这里的话,首先场景的照明设计要合理,根据照明设计所选用的灯具来选择合适的max灯光或VR灯光来模拟,设置合理的灯光强度,基本就可以有效果的了,再配合适当的暴光参数处理就可以了。
需要时可以加上补光,补光可以参考摄影的灯光。
Q:
VRay材质怎么设置?
A:
一般材质就是那么几个属性:
漫反射、反射、折射、光泽等。
首先要对VRay材质球的参数有个了解,然后将各种真实材料或材质的物理表现属性转化为参数,基本就可以了。
Q:
VRay材质里的环境通道的作用是?
A:
环境通道的作用跟VRay渲染面板下的环境卷展栏下的反射/折射环境的作用是一样的,只不过区别是一个是单体,一个是全局的。
在没有反射或者折射到任何环境的情况下,它是没有什么作用的。
Q:
VR摄相机如何设置和使用?
A:
首先要对真实相机有个了解。
VR相机可以按真实相机的使用来调节合适的光圈,快门,ISO等,可能这个方法需要的灯光亮要较大。
也可以按真实相机的原理来调节光圈,快门和ISO等,参数可能与真实的使用不一样,但是能得到想要的效果,也没什么的。
VRay是一个很真实的渲染器,光玩软件是不行的,尽量把时间放在设计等工作上吧,只要相应的知识掌握了,软件这个工具的使用其实是轻而易举的。
2.提高VR渲染速度的关键
VR的基本渲染方法已经掌握,虽然材质和灯光方面还有许多不足,但是当前最迫切需要解决的问题是VR的出图速度问题。
动则需要数小时的渲染时间真的是很难以接受,不管是练习还是真正的做方案都是漫长的等待,这样修改起来也不方便。
因此当务之急是要弄清楚影响VR速度的根本原因,优化参数。
最近的几个例子来看,GI的时间都不长,就是抗锯齿出图的时间太长了。
可能我做的都小场景,等大场景灯光比较多的时候跑光子图也是很慢的。
我们来总结一下:
图形抗锯齿方面Imagesampler(Antialiasing)
1、无反射模糊,图像质量相似的情况下,adaptivesubdivision最快
比较参数Fixrand=4;two-levelsubdivis1/4;adaptivesubdivisionrate-1/2
2、大量粗糙表面多bump贴图,simpletwo-level最快
比较参数Fixrand=4;two-levelsubdivis1/4;adaptivesubdivision
rate0/2,threshold=0.05
3、如果场景中有大量模糊效果,包括运动模糊,模糊反射,高光模糊,景深等,Fixed是最快的
如果场景中有大量凹凸效果,包括bump贴图,置换,noise等,adaptiveQMC或者adaptivetwo-level是最快的。
其他情况用
adaptivesubdivison会比较快。
根据不同的情况选择不同的抗锯齿这个很重要!
!
另外几个关键的参数:
(一)
threshold这个值对速度的影响非常大。
在adaptivesubdivisonClrthresh默认为0.1,测试改为1,速度提升很多质量也可以接受
在adaptiveQMC,在rQMC面板的Noise
threshold默认为0.005测试改为0.1,速度很快质量还可以。
如果在adaptiverQMCimagesampler里勾选UseQMCsampler
thresh的话,那么这里的域值采样直接由rQMC面板的Noisethreshold决定。
如果没有勾选则有Clrthresh来决定,默认0.01测试改为0.1,速度快质量也可以接受
Objectoutline:
当场景有大量细小物体,抗锯齿方式是adaptivesubdivison时,如果勾选Object
outline,那么渲染会非常慢。
这个时候我们不要勾选objectoutline而用Clrthreshold来控制图象质量
Nrmthresh:
这个是特定的法线区域采样,如果对阴影要求不高的情况把Clrthreshold
设置一个较大的值5,勾上objectoutline和Nrmthreshold这样速度也有不小的提升。
与渲染速度有关的还有发光贴图里的二个参数:
Interpolationtype插值类型和Samplelookup采样查寻
一般只要将Interpolationtype设为Leastsquaresfit(最小平方适配法),
而Samplelookup设置为Precalculated
overlapping(预先计算的重叠),就可以满足我们的大多数要,且速度也很快。
如果质量达不到要求就再试一试其它参数设置(记住Nearest只适合用于草图预览)
Checksamplevisibility检查样本可见性,可以减少漏光现象,但速度会减慢
关于coolmoon的帖子:
提高速度的方法:
把所有面积较小的物体选中,把它们的全局GI关闭,只让面积比较大的几个物体来计算全局GI
他提及的抗锯齿提速前面已经分析过了就不再总结了。
关于暴牙龙的贴子:
1。
不要用太多的灯光反弹
2。
不要用太高的发光贴图设置渲染大分辨率的图
3。
经常保存发光贴图
4。
弄个大点的内存
5。
抗拒齿不要太高
6。
不要用太高的反射折射级别
7。
用透明贴图的采样不要太高
8。
把不重要的物体的GI采样强制降低
9。
不要用凹凸贴图和模糊一起用
10。
不要渲染太高分辨率的图,够用就行
11。
能用PS的就PS,比你用3天MAX渲染快多了
这是他的原话!
!
下面是经验参数:
1、木地板模糊反射0.85和3,反射次数调为1
2、最终光子图的IM参数rate-3/0,Clrthreshold=0.2,Nrmthreshold=0.2,HS=50,IS=20
3、用vr灯模拟天光是勾上sotrewithirradiancemap速度会快点
4、算好光子图以后再加对场景影响不大的灯
5、关了辅助灯计算光子图,要正式渲染时再打开,若想效果更好点可以打个低亮度的vr灯模拟光子反弹效果
这个图跑光子36分钟,渲染24分钟,机器配制Atholn2200+/1024Ram,图大小600x366。
场景没有打一个灯,由天光和colormap提的亮度。
参数:
AA(Fixed=3);IM(rate=-3/0,Ct=0.2,Nt=0.2,DT=0.3,Hs=50,Is=20)
提高VR渲染速度的关键
(二)
在上一篇文章中结合论坛里的暴牙龙、coolmoon、henry0421他们的帖子分析了一下提高vr速度的一些经验和参数,这次我们对照Aparkey
的学习笔记来研究一下。
其中他提及的大部分参数都经本人亲自验证过,并总结出了一些经验参数可以供自己以后出图参考。
上次对于抗锯齿对vr速度影响讲得比较多,那么这次我就GI对速度影响来分析一下。
主要是针对光照贴图和灯光缓存。
一、Irradiancemap(发光贴图)
大家都知道,rate中对速度影响最大的是min值,那么我们就在max固定的情况先来测试一下改变min值所需要花费的时间对比
渲染时间都是4次的平均值,因为是测试所以选了比较小的场景会快一点。
max=-1,min=-10/9.9;-9/9.75s;-8/
9.73s;-7/10s;-6/10.3s;-5/10.0s,-4/9.8s;-3/9.85s;-2/10.45s;-1/12.55s
max=0,min=-10/17.3s;-9/17.3s;-8/
17.5s;-7/17.8s;-6/18.1s;-5/17.7s,-4/17.3;-3/17.4s;-2/18.3s;-1/22.5s.
虽然只测试了两组数据,不过我们不难得出结论,在图象品质过得去的情况下min=-4是最快的。
所以测试用min=-4,而出图时也可以考虑用min=-3。
min值是对大面积平坦区域的采样,而max是对拐角细节处的采样,而max的增减和时间是成线性递增的关系,所以我们在这里不再重复测试。
在草渲的时候可以用-4
(细节不多时可以用-3),而最终出图可以用0(-1)。
HSphsubdivs:
值越大速度越慢!
测试20,出图用50,不要超过80
Interpsamples:
值越大速度越慢!
这个值是控制漏光的,越小漏光越少。
一般用20。
Clrthresh:
系统默认波动范围0.1-0.3。
值越小速度越慢,值越大越容易漏光。
Nrmthresh:
控制弧面和多拐角面精度,波动范围0.1-0.3,值越小速度越慢
Distthresh:
值越小速度越快漏光越明显,默认0.1,粗测0.001-1对速度影响都不大
Options里的选项一般都不勾选,勾上的话都会减慢渲染速度的。
二、Lightcahe(灯光缓存)
灯光缓存一般作为二次反弹,其实vr对二次反弹的吸收并不是太好。
所以在基本质量的前提下保证速度是最重要的。
Subdivs:
影响速度的主要因素,测试用100,出图300-500(比较暗的时候500-800)。
不要超过1000。
SampleSize:
这个值对速度影响不大,不过值越小容易出现黑斑,越大漏光就更明显。
一般默认即可。
Pre-filter:
对速度影响不大。
值越大细节越模糊,值越小细节越清晰,容易产生黑斑。
一般10-15
Filter下的Interpsamples:
对速度影响不大,值越大细节越模糊,值越小细节越清晰,容易产生黑斑。
一般5
很多人问怎么提高速度,可这个问题是很大的,VR控制速度的参数有很多,你要了速度必然会失去质量,要很好的控制速度就必须把VR的各项参数都能了解到,都是综合应用的,材质、灯光、GI参数、渲染设置、模型大小等。
这是个漫长的过程,不能急啊,有时看到的好图,其实都是作者花了时间的,不可能不花时间就能出好图,至少作者是之前花了时间去学习的,别羡慕别人画的好图,先想想自己花时间没有?
至少也要有个经验积累的过程,就是对软件很了解也不一定做出好图来,这个是多方面的问题,有时别太在意速度。
别指望什么低GI能出好图,低采样能出图。
一分付出,一分回报!
vray材质参数
Basicparameters(基本参数)
Diffuse(漫反射)-材质的漫反射颜色。
你能够在纹理贴图部分(texturemaps)
的漫反射贴图通道凹槽里使用一个贴图替换这个倍增器的值。
Reflect(反射)-一个反射倍增器(通过颜色来控制反射,折射的值)。
你能够在纹理贴图部分(texturemaps)的反射贴图通道凹槽里使用一个贴图替换这个倍增器的值。
Glossiness(光泽度、平滑度)-这个值表示材质的光泽度大小。
值为0.0意味着得到非常模糊的反射效果。
值为1.0,将关掉光泽度(VRay将产生非常明显的完全反射)。
注意:
打开光泽度(glossiness)将增加渲染时间。
Subdivs(细分)-控制光线的数量,作出有光泽的反射估算。
当光泽度(Glossiness)值为1.0时,这个细分值会失去作用(VRay不会发射光线去估算光泽度)。
Fresnelreflection(菲涅尔反射)-当这个选项给打开时,反射将具有真实世界的玻璃反射。
这意味着当角度在光线和表面法线之间角度值接近0度时,反射将衰减(当光线几乎平行于表面时,反射可见性最大。
当光线垂直于表面时几乎没反射发生。
Maxdepth(最大深度)-光线跟踪贴图的最大深度。
光线跟踪更大的深度时贴图将返回黑色(左边的黑块)。
Refract(折射)-一个折射倍增器。
你能够在纹理贴图部分(texturemaps)的折射贴图通道凹槽里使用一个贴图替换这个倍增器的值。
Glossiness(光泽度、平滑度)-这个值表示材质的光泽度大小。
值为0.0意味着得到非常模糊的折射效果。
值为1.0,将关掉光泽度(VRay将产生非常明显的完全折射)。
Subdivs(细分)-控制光线的数量,作出有光泽的折射估算。
当光泽度(Glossiness)值为1.0时,这个细分值会失去作用(VRay不会发射光线去估算光泽度)。
IOR(折射率)-这个值确定材质的折射率。
设置适当的值你能做出很好的折射效果象水、钻石、玻璃等等。
Translucent(半透明)-打开半透明性。
注意:
你的灯光必需有VRayshadows设置,并且它下面的translucency要勾选。
Glossy也必须打开。
VRay将使用雾的颜色(Fogcolor)来判定光的数量经过一个框架(passes)穿过材质下的面。
Thickness(厚度)-这个值确定半透明层的厚度。
当光线跟踪深度达到这个值时,VRay不会跟踪光线更下面的面。
Lightmultiplier(灯光倍增器)-灯光分摊用的倍增器。
用它来描述穿过材质下的面被反、折射的光的数量。
Scattercoeff(散射效果控制)–这个值控制在半透明物体的表面下散射光线的方向。
值为0.0时意味着在表面下的光线将向各个方向上散射;值为1.0时,光线跟初始光线的方向一至,同向来散射穿过物体。
Fwd/bckcoeff(向前/向后控制)-这个值控制在半透明物体表面下的散射光线多少将相对于初始光线,向前或向后传播穿过这个物体。
值为1.0意味着所有的光线将向前传播;值为0.0时,所有的光线将向后传播;值为0.5时,光线在向前/向后方向上等向分配。
Fogcolor(雾的颜色)-VRay允许你用雾来填充折射的物体。
这是雾的颜色。
Fogmultiplier(雾的倍增器)-雾的颜色倍增器。
较小的值产生更透明的雾。
BRDF(毕奥定向反射分配函数)
一种最通常的方法。
通过毕奥定向反射分配函数(BRDF)的使用来表示一表面的反射属性。
一个函数定义一个表面的光谱和空间反射属性。
VRay支持以下BRDF类型:
Phong,BLinn,Ward.
Options(选项)
Tracereflections(跟踪反射)-反射开关。
Tracerefractions(跟踪折射)-折射开关。
UseirradiancemapifOn(使用光子图是否打开)–当你在使用GI时使用(光子图)irradiancemap你可以为物体的这个材质应用仍然使用强力GI。
为了完成这些要求关掉UseirradiancemapifOn选项。
否则GI为了物体使用这个材质将使用(光子图)theirradiancemap.注意:
除非GI被打开并且设置了Irradiancemap,不然这个选项不起作用。
Tracediffuse&glossytogether(漫射&光泽一起跟踪)-当反射/折射的光泽度打开时,VRay使用许多的光线来跟踪光泽度同时另外的光线用来计算漫射的颜色。
打开这个选项,强制VRay跟踪光泽度或漫射两种材质成分单独的光线。
在种情况下VRay将执行其中某个估算并且挑选一些光线跟踪漫射成分,其余光线跟踪跟踪光泽度(glossiness)。
Double-sided(双面)-这个选项VRay是否假定所有的几何体的表面作为双面。
Reflectonbackside(背面反射)-这个选项强制VRay总是跟踪反射(甚至表面的背面)。
注意:
只有打开它(theReflectonbackside),背面反射才会起作用。
Cutoff(截频剪切)-这是反射/折射的阀值。
当反射/折射对于一个图象采样最终值的作用很小时,反射/折射将不被跟踪。
当Cutoff设置为最小值时,反射/折射被跟踪。
Texturemaps(纹理贴图)
在这部分里你能够设置不同的纹理贴图。
可用的纹理贴图通道凹槽有Diffuse,Reflect,Refract,Glossiness,BumpandDisplace。
在每个纹理贴图通道凹槽都有一个倍增器,状态勾选框和一个长按钮。
这个倍增器控制纹理贴图的强度。
状态勾选框是贴图开关。
长按钮让你选择自己想要的贴图或是选择当前贴图。
Diffuse(漫射)-这个通道凹槽里控制着材质的漫反射颜色。
如果你仅仅需要一个简单的颜色倍增器那么你可以不使用这个通道凹槽并且使用基本参数栏里的漫反射设置来替代它。
Reflect(反射)-这个纹理贴图在这个通道凹槽里控制着材质的反射颜色倍增器。
如果你仅仅需要一个简单的颜色倍增器那么你可以不使用这个通道凹槽并且使用基本参数栏里的反射设置来替代它。
Glossiness(光泽度)-这个纹理贴图在这个通道凹槽里作为有光泽、平滑的反射的一个倍增器。
Refract(折射)-这个纹理贴图在这个通道凹槽里控制着材质的折射颜色倍增器。
如果你仅仅需要一个简单的颜色倍增器那么你可以不使用这个通道凹槽并且使用基本参数栏里的折射设置来替代它。
Glossiness(光泽度)-这个纹理贴图在这个通道凹槽里作为有光泽、平滑的折射的一个倍增器。
Bump(凹凸贴图)-这是凹凸贴图通道凹槽。
这凹凸贴图被用来模拟表面的凹凸不平(roughness粗糙度)不用在场景中真的添加更多的几何体来模拟表面的粗糙感。
Displace(位移贴图)-这是位移贴图通道凹槽。
位移贴图被应用到表面造型中所以它显得更凹凸不平。
不象凹凸贴图那样位移贴图实际上执行的是表面的细分和节点位移(改变几何体)。
它相对于凹凸贴图渲染减慢。
VRay灯光参数
On-VRay灯光开关。
Double-sided(双面)-当VRay灯光是面光源时这个选项将控制光是否在这个光源面的两面产生梁。
(当Sphere光源被选择时这个选项将失去作用)。
Transparent(透明)-这个设置控制VRay灯光光源是否在渲染结果中显示它的形状。
(默认是显示的)
Ignorelightnormals(忽略光源法线)-一个被跟踪光线撞击光源时这个选项让你控制VRay处理计算的方法。
根据真实世界的光这个选项应该被关掉,无论如何当这个选项打开时渲染结果可能会smoother.
Normalizeintensity(标准亮度)-当亮度标准化被打开时,光源的尺寸大小将不会影响它的亮度。
这个亮度将被同样的作为光源的尺寸,为1.注意:
打开亮度标准化以前它是有用的对于设置尺寸大小为1和Mult.的值以致获得想要的亮度。
然后打开Normalizeintensity并且改变光源的尺寸大小作为想要的。
这个亮度将同样地保留。
(打开后就全黑了L,不大理解所以付上原文Note:
beforeenablingintensitynormalizationitisusefultosetthesizeto1andtheMult.valueaccordinglysothattoachievethedesiredintensity.ThenturnNormalizeintens