提高VR渲染速度的关键,这个教程比以往的教程都要重要很多,如果你是刚刚步入学习和上升阶段那么这将是你必须要看的东西,他会让你迅速提升技能达到比你死看书本好很多的效果,不多说上教程

 

VR的基本渲染方法已经掌握,虽然材质和灯光方面还有许多不足,但是当前最迫切需要解决的问题是VR的出图速度问题。动则需要数小时的渲染时间真的是很难以接受,不管是练习还是真正的做方案都是漫长的等待,这样修改起来也不方便。因此当务之急是要弄清楚影响VR速度的根本原因,优化参数。

最近的几个例子来看,GI的时间都不长,就是抗锯齿出图的时间太长了。可能我做的都小场景,等大场景灯光比较多的时候跑光子图也是很慢的。

我们来总结一下:

图形抗锯齿方面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灯模拟光子反弹效果

这个图跑光子36分钟,渲染24分钟,机器配制Atholn 2200+/1024Ram,图大小600x366。

场景没有打一个灯,由天光和color map 提的亮度。

参数: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对速度影响来分析一下。主要是针对光照贴图和灯光缓存。

一、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

就打了一个天光,没优化参数,蜗牛机器渲染的,放上来提个醒

【转】http://www.zf3d.com/News.asp?id=2331

【转】提高VR渲染速度的关键的更多相关文章

  1. 【转】怎样提高VR渲染速度

    怎样提高VR渲染速度分析!<经验之谈>!!!VR的基本渲染方法掌握起来并不难,但是最迫切需要解决的问题是VR的出图速度问题.动则需要数小时的渲染时间真的是很难以接受,我们从三个影响速度的参 ...

  2. 【转】提高VR渲染速度的最好方法(经典转载)

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

  3. 浏览器渲染引擎,提高css渲染速度。

    一.渲染引擎渲染引擎的职责是……渲染,也就是把请求的内容显示到浏览器屏幕上.默认情况下渲染引擎可以显示HTML,XML文档以及图片. 通过插件(浏览器扩展)它可以显示其它类型文档. 二.各种渲染引擎我 ...

  4. CSS提高渲染速度的写法

    写CSS的习惯,决定页面渲染速度的快慢,这一点在脑残的IE里更加明显.养成良好的习惯,乃至形成规范,会让你的页面更快速的加载,用户体验度更高,下面是零度逍遥总结的一些提高CSS渲染速度的写法,供大家参 ...

  5. 使用Qt 3D Studio 2.4显着提升性能(渲染速度提高了565%)

    发布于2019年6月18日星期二11评论Qt 3D Studio 2.4显着改善性能 发表于Biz Circuit&Dev Loop,设计,图形,性能,Qt 3D Studio 除了有效使用系 ...

  6. 3DS MAX玩家必看!70个提高渲染速度的小技巧

    3DS MAX玩家必看!70个提高渲染速度的小技巧 (注:节省RAM不一定会加快渲染速度.请同学们根据实际情况加以利用.) 1. 尽量限制Ploygon数量,越少渲染速度越快 2. 如果使用Vray, ...

  7. Web前段优化,提高加载速度 css

    前言:  在同样的网络环境下,两个同样能满足你的需求的网站,一个"Duang"的一下就加载出来了,一个纠结了半天才出来,你会选择哪个?研究表明:用户最满意的打开网页时间是2-5秒, ...

  8. cocos2dx-3.0(13)------SpriteBatchNode与SpriteFrameCache渲染速度

    大家都知道一个游戏里面会有大量的图片,每一个图片渲染是须要时间的,以下分析两个类来加快渲染速度,加快游戏执行速度          一.SpriteBatchNode          1.先说下渲染 ...

  9. COCOS2DX 3.0 优化提升渲染速度 Auto-batching

    COCOS2DX 3.0 优化提升渲染速度 Auto-batching 近期在看COCOS2DX 3.0的Auto-batching合批与Auto Culling动态缩减功能以下就来细致看看吧:整合好 ...

随机推荐

  1. SQL中case when then用法

    sql语句判断方式之一Case.具有两种格式:简单的Case函数.Case搜索函数. 1.简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' E ...

  2. 用meta-data配置参数

    在接入第三方渠道SDK的时候,经常会看到其配置文件AndroidManifest.xml有类似如下的定义: <!-- appid --> <meta-data android:nam ...

  3. Ubuntu安装gfortran

    命令行运行 sudo apt-get install gfortran

  4. python执行linux的shell命令

    python执行shell脚本常用的方法 import os val=os.system("shell语句")  >>> val=os.system(" ...

  5. 最短JS判断是否为IE6(IE的写法)

    常用的 JavaScript 检测浏览器为 IE 是哪个版本的代码,包括是否是最人极端厌恶的 ie6 识别与检测.代码如下: var isIE=!!window.ActiveXObject; var ...

  6. UICollectionView 图片横向滑动居中偏移量的解决

    1.在使用UICollectionView 来显示横向滑动图片的时候,cell与cell之间有间隙,每次滑动后cell都会向左偏移,在使用过这两个方法才解决每次向左偏移的部分. 2.使用方法前不要开启 ...

  7. 惩罚因子(penalty term)与损失函数(loss function)

    penalty term 和 loss function 看起来很相似,但其实二者完全不同. 惩罚因子: penalty term的作用是把受限优化问题转化为非受限优化问题. 比如我们要优化: min ...

  8. linux下压缩与解压(zip、unzip、tar)详解

    linux下压缩与解压(zip.unzip.tar)详解 2012-05-09 13:58:39| 分类: linux | 标签:linux zip unzip tar linux命令详解 |举报|字 ...

  9. 我的STL之旅 MyList

    #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> // ...

  10. My Code Snippet

    加载菜单(js) function mkmenu(menus,name,id,parentid,url) { $.each(menus,function(i){ menus[i].children=n ...