zoukankan      html  css  js  c++  java
  • 【转】提高VR渲染速度的最好方法(经典转载)

    VR的基本渲染方法掌握起来并不难,但是最迫切需要解决的问题是VR的出图速度问题。动则需要数小时的渲染时间真的是很难以接受,我们从三个影响速度的参数结合网上一些高手的教程来分析一下。

    一、Irradiance map(发光贴图)
    二、Light cahe(灯光缓存)
    三、图形抗锯齿方面Image sampler (Antialiasing)

    一、Irradiance map(发光贴图)

    大家都知道,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)。

    HSph subdivs:值越大速度越慢!测试20,出图用50,不要超过80

    Interp samples:值越大速度越慢!这个值是控制漏光的,越小漏光越少。一般用20。

    Clr thresh:系统默认波动范围0.1-0.3。值越小速度越慢,值越大越容易漏光。

    Nrm thresh:控制弧面和多拐角面精度,波动范围0.1-0.3,值越小速度越慢

    Dist thresh:值越小速度越快漏光越明显,默认0.1,粗测0.001-1对速度影响都不大

    Options里的选项一般都不勾选,勾上的话都会减慢渲染速度的。


    二、Light cahe(灯光缓存)

    灯光缓存一般作为二次反弹,其实vr对二次反弹的吸收并不是太好。所以在基本质量的前提下保证速度是最重要的。

    Subdivs:影响速度的主要因素,测试用100,出图300-500(比较暗的时候500-800)。不要超过1000。

    Sample Size:这个值对速度影响不大,不过值越小容易出现黑斑,越大漏光就更明显。一般默认即可。

    Pre-filter:对速度影响不大。值越大细节越模糊,值越小细节越清晰,容易产生黑斑。一般10-15

    Filter下的Interp samples:对速度影响不大,值越大细节越模糊,值越小细节越清晰,容易产生黑斑。一般5


    图形抗锯齿方面Image sampler (Antialiasing)

    1、无反射模糊,图像质量相似的情况下,adaptive subdivision最快

    比较参数Fix rand=4; two-level subdivis 1/4;adaptive subdivision rate-1/2

    2、大量粗糙表面多bump贴图,simple two-level 最快

    比较参数Fix rand=4; two-level subdivis 1/4;adaptive subdivision rate0/2,threshold=0.05

    3、如果场景中有大量模糊效果,包括运动模糊,模糊反射,高光模糊,景深等,Fixed是最快的
    如果场景中有大量凹凸效果,包括bump贴图,置换,noise等,adaptive  QMC或者adaptive two-level是最快的。其他情况用adaptive subdivison会比较快。

    根据不同的情况选择不同的抗锯齿这个很重要!!



    另外几个关键的参数:

    threshold这个值对速度的影响非常大。

    在adaptive subdivison Clr thresh默认为0.1,测试改为1,速度提升很多质量也可以接受

    在adaptive QMC ,在rQMC面板的Noise threshold默认为0.005测试改为0.1,速度很快质量还可以。

    如果在adaptive rQMC image sampler 里勾选Use QMC sampler thresh的话,那么这里的域值采样直接由rQMC面板的Noise threshold决定。

    如果没有勾选则有Clr thresh来决定,默认0.01测试改为0.1,速度快质量也可以接受

    Object outline:

    当场景有大量细小物体,抗锯齿方式是adaptive subdivison时,如果勾选Object outline,那么渲染会非常慢。这个时候我们不要勾选object outline而用Clr threshold来控制图象质量

    Nrm thresh:这个是特定的法线区域采样,如果对阴影要求不高的情况把Clr threshold设置一个较大的值5,勾上object outline和Nrm threshold这样速度也有不小的提升。

    与渲染速度有关的还有发光贴图里的二个参数:

    Interpolation type插值类型和Sample lookup采样查寻

    一般只要将Interpolation type设为Least squares fit(最小平方适配法),

    而Sample lookup设置为Precalculated overlapping(预先计算的重叠),就可以满足我们的大多数要,且速度也很快。

    如果质量达不到要求就再试一试其它参数设置(记住Nearest只适合用于草图预览) 

    Check sample visibility检查样本可见性,可以减少漏光现象,但速度会减慢

    关于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,Clr threshold=0.2,Nrm threshold=0.2,HS=50,IS=20

    3、用vr灯模拟天光是勾上sotre with irradiance map速度会快点

    4、算好光子图以后再加对场景影响不大的灯

    5、关了辅助灯计算光子图,要正式渲染时再打开,若想效果更好点可以打个低亮度的vr灯模拟光子反弹效果

    【转】http://www.tuozhe8.com/thread-2505-1-1.html

  • 相关阅读:
    最小二乘拟合(scipy实现)
    接口实例
    类的继承:员工和老板
    设计模式(Design Patterns)
    创建类
    面向对象1
    java随机数:彩票抽奖 + 验证码
    判断字符串中字符出现的次数+去除空格
    输出二维数组所有元素的和
    输出 一维数组中最大的数+数组遍历
  • 原文地址:https://www.cnblogs.com/lged/p/4206316.html
Copyright © 2011-2022 走看看