vray渲染器中可以关闭场景中所有物体的反射和折色效果是对的吗

模型灯光都调好了但是无论什麼物体反射调到纯白都不能反射周围物体,重新新建一个简单模型同样的参数,效果可以出的来参数绝对没问题,怀疑是灯光或者渲染参数设置哪里出了问题... 模型灯光都调好了但是无论什么物体反射调到纯白都不能反射周围物体,重新新建一个简单模型同样的参数,效果可以出的来参数绝对没问题,怀疑是灯光或者渲染参数设置哪里出了问题忘高人指点。
所用灯光:VR太阳广域网,面光球体咣
材质没问题:默认VR标准材质,漫反射 纯黑反射 纯白。其他的没动

泽度(反射模糊)是否勾选,如果勾选把它点掉再渲染试试

如果渲染出反射效果的话就是你的材质设置出了问题(衰减设置和反射模糊设置不对)

另外检查是否已经关闭默认灯光!

这个问题确实有些诡2113異,想来想去只5261到一种可能4102且试试:


检查全局面1653中的光泽度(反射模糊)是否勾选,如果勾选把它点掉再渲染试试


如果渲染出反射效果的话就是你的材质设置出了问题(衰减设置和反射模糊设置不对)


另外检查是否已经关闭默认灯光!

如果你没有给顶部白墙一个反射的话 这并不是顶部的的墙体的反射 而是受到了侧面墙的漫射影响 你只需要给白色的顶部一个材质包裹器 把接受GI值给调低就可以了。


顺便 你也可以做个小实验 一个白色材质的地面上面放一个红色(或是别的彩色)方块 渲染后 你会发现 白色地面上受到了方块颜色漫射的影响 吔被污染了一些方块上的色彩 当你给白色地面材质添加一个材质包裹器后分别调一下产生GI和接受GI 分别渲染看看效果你就懂了~!

小心或者建模的时候失误了啥的

这样看起来的确没有反射效果但是这个反转的面却仍然可以被照亮,而反射的效果在背面始终背对着你

给模型加一个法线编辑器,注意是法线编辑器不是在它上面的那个“法线”。点击编辑器选择法线ctrl加A全选,在点击编辑器里的重置选项应該就解决了。

不知道你解决了没但起码可以留给别人看。这种情况确实少

不是,你的材质有没有区别命名啊不区别的,会被覆盖掉叻还有个问题就是,你灯光没打好详细我也没看到具体怎么样,最好你放几张图片出来呵呵

材质调过很多次,也重新换过材质球来調都不行。
图弄出来没什么意义啊就是一个只有漫反射的球体,只有自己的本色没有高光没有反射
那表示你灯光没打在你的目标上,你应该删掉灯光重新打

点击F10——全局开关下的——反射/折射 看看打勾了吗?

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验伱的手机镜头里或许有别人想知道的答案。

(1) 打开本教程所1653提供的max场景文件本场景模型来自网上论坛CMckinley,表示感谢!渲染器使用Vray渲染器如下图所示:

(2) 材质为VRAY材质,这样渲染速度相对会快一些因原场景用叻HDR照明,在这里取消了HDR照明所以灯光做了调整,加上了阴影选项这样会使物体产生阴影。如下图所示:

解决Vray渲染器烘焙后黑面问题:

洇为Vray在计算光的特点是只计算相机看得到的面其它面的光不做计算,所以只有相机照得到的地方是亮的照不到的地方是黑的,这也是恏多用户在烘焙后导入到VRP中有的面是亮的有的面是黑的或者花边的错误原因。如下图所示:

解决方法:是在max中多打一些相机(相机个数甴场景而定)使所有面的光都在计算之内,然后在Vray参数面板中把所有光子累加起来再进行烘焙,这样物体导入到VRP中就不会出现黑面或婲边了具体操作方法如下:

(1) 首先,将模型、灯光、材质、相机都设置并调整好后然后再设置Vray面板参数。

(2) 按F10键进入渲染控制媔板,将图的输出大小改为20×14这样可以加快累加光子的速度。如下图所示:

(2) 进入到render面板下将image sampler 设置为Fixed rate,这样加快渲染速度如下图所示如下图所示:

(3) 打开GI(全局光照)。如下图所示:

(4) 设置累加光子参数将光子保存到一个地方并进行命名,然后打开环境光設置环境光值为0.7。如下图所示:

(5) 分别选择Camera01---Camera09进行渲染这样光子就都累加保存在事先存储的光子文件中。当所有相机都渲染完后按F10键進入到渲染控制面板,将图的输出大小再设置为720×486如下图所示:

(7) 调用刚才保存的光子文件。如下图所示:

(8) 点击Render按钮进行渲染朂终渲染效果。如下图所示:

Vray两种烘焙方式:

(1) 按物体大小进行选择分批执行烘焙操作如下图所示:

(2) 烘焙完成之后需要进行存盘操作,然后再将烘焙后的物体导入到VRP编辑器里贴图分别用photoshop锐化一下,给茶杯制作反射、高光效果加入天空盒(详细操作步骤见相关教程)朂终效果。如下图所示:

(注:如果希望通过调节【动态光照】来实现物体的高光效果前提是物体在max里的材质设置时都必须设置了高光屬性,最后的高光效果细腻程度也跟模型的网格密度有关)

根据上面烘焙方式,当然也可以选择Lightingmap方式进行烘焙它的光照没有Completemap方式强烈,但贴图量会比Completemap方式小更换材质也比Completemap方式方便。由于选择Lightingmap方式进行烘焙场景中材质使用了多重材质(Multi/sub-object),所以必须将所有模型打散重新赋材质Vray材质全部改为标准材质(standard)。打开max场景文件ywj002.max模型、材质、灯光、相机都已经设置好,Vray参数设置同上面设置具体的烘焙操作如下:

(1) 按F10键,进入渲染控制面板将maps选项去掉,这样烘焙是二层贴图第一层为纹理;第二层为光照。如下图所示:

(2) 按物体大小分批選择执行烘焙操作如下图所示:

(3) 将烘焙完场景导入VRP中,因Lightingmap烘焙完贴图相对比较暗所以必须用Photoshop提高亮度、对比度。给茶杯等制作反射、高光效果加入天空盒、更改地面材质(详细操作步骤参见其它相关教程)。最终效果如下图所示:

当然也可以在VRP中制作更多的效果例洳在Lightingmap方式下制作倒影以及更换地面材质。如下图所示:

至此应用Vray渲染,然后进行烘焙Completemap和Lightingmap的两种操作方法就介绍完了根据以上的操作方法,让熟悉Vray渲染器的用户继续使用自己熟悉的渲染器

(注:因为Vray 1.0903版本带的烘焙功能有BUG,所以建议用户少用该版本尽量改用 Vray 1.4以上的版本,借助MAX自身的烘焙工具来完成烘焙操作)

游戏场景中灯光照明的构成

现实苼活中的光线是有反射、折射、衍射等特性的对这些基本特性的模拟一直以来都是计算机图形图像学的重要研究方向。

在CG中默认的照奣方式都是不考虑这些光线特性的,因此出来的效果与现实生活区别很大最早期的时候,人们利用各种方式来模拟真实光照的效果比洳手动在贴图上画上柔和阴影,或者用一盏微弱的面积光源去照明物体的暗部以模拟漫反射现象等等

然后出现了所谓的高级渲染器,用計算机的计算来代替我们的手工劳动来进行这个“模拟”的工作在漫长的发展过程中,出现过很多很多计算方案总体上分为这样几类:

  1. 直接模拟光线从被光源发出到最终被物体完全吸收的正向过程,也就是常说的GI(Global Illumination);
  2. 不直接模拟光线而是反向搜集物体表面特定点的受光照强度来模拟现实照明效果,也就是常说的FG(Final Gathering);
  3. 完全不考虑光线的行为单纯基于“物体上与其他物体越接近的区域,受到反射光线嘚照明越弱”这一现象来模拟模拟现实照明(的一部分)效果也就是常说的AO(Ambient Occlusion);
  4. 将场景光照结果完全烘焙到模型贴图上,从而完完全铨的假冒现实光照效果也就是我们所说的Lightmap。

不论是GI还是FG计算量都是非常大的,一帧图片需要几十分钟甚至几十小时来渲染所以很难被应用在游戏设计领域。

因此在游戏设计领域光照贴图技术依然是目前的主流方式。

由于光照贴图需要事先烘焙(baking)出来且仅支持静態物体(Static Object),而我们的游戏场景中几乎不可能全都是静态物体所以通常游戏场景中的灯光照明是多种照明方式的混合作用。

  1. 对于静态物體来说大多使用光照贴图来模拟间接光的照明效果,然后加上直接光源的动态照明效果;
  2. 对于运动物体来说则仅用直接光源的动态照奣效果,或者使用光照探针来模拟间接光的照明效果

随着技术的发展以及计算机计算能力的提高,也许在未来我们能够直接在游戏场景中进行动态的全局光照模拟也说不定呢。新版Unity3D中就已经出现了Realtime Global Illumination虽然这个技术还处于雏形阶段,所需要的计算量依然庞大但确实为我們展示了一个令人激动的前景。

当然技术是技术,产品是产品技术是为产品服务的,再先进的实时全局光照系统对于像素风格的游戲场景的提升也是几近于0。

选择合适的技术来完善我们的产品和制作流程”以及“根据现有技术来设计产品和制作流程”,说的其实昰同一个意思


Unity3D中的直接照明主要来源于各种灯光物体,而灯光物体本质上是空物体加上灯光组件直接照明可以产生阴影,但光线不会反射、也不会折射但可以穿透半透明材质物体。

Unity3D中默认可以创建这么几种灯光:聚光灯、点光源、平行光、面积光另外还可以创建两種探针(Probe):反射探针(Reflection Probe)和光照探针组(Light Probe Group)。

Unity中可以创建的灯光类型物体

平行光通常用来做阳光Unity3D新建场景后会默认在场景中放置一盏岼行光。平行光不会衰减

  • Type:灯光类型,所有类型的灯光都其实共用一个组件本质上是一样的。
  • Mode:灯光照明模式每种模式对应Lighting面板中┅组设定

Realtime Lighting是新出现的一种烘焙光照技术,它并不像传统的烘焙技术一样直接烘焙间接光照颜色和亮度信息到光照贴图上而是烘焙物体和粅体之间的关系信息,比如A面对B面有漫反射效果B面对C面有漫反射效果等等。这样一来只要物体之间的关系不变(也就是所有的静态物體都不移动位置),就不需要重新烘焙从而使得我们可以在场景中随意运用动态光源(dynamic lights)。而传统的Lightmapping光照贴图方式则不支持动态光源效果(改变光源不会改变场景光照)Realtime Lighting比Lightmapping要更耗费系统资源,所以手游上就不要考虑了

  • Indirect Multiplier:在计算该灯光所产生的间接光照时的强度倍乘
    • Soft Shadows:咣滑阴影边缘(也就是阴影模糊效果)
  • Bias:阴影偏移,通常适当增加这个值来修正一些阴影的artifact
  • Normal Bias:法线偏移通常适当减少这个值来修正一些陰影的artifact(不同于Bias的使用场合)
  • Near Plane:阴影剪切平面,对于与摄影机距离小于这个距离的场景物体不产生阴影
  • Cookie:Cookie相当于在灯光上贴黑白图用来模拟一些阴影效果,比如贴上网格图模拟窗户栅格效果
  • Draw Halo:灯光是否显示辉光不显示辉光的灯本身是看不见的
  • Flare:Flare可以使用一张黑白贴图来模拟灯光在镜头中的“星状辉光”效果

点光源模拟一个小灯泡向四周发出光线的效果,点光源在其照亮范围内随距离增加而亮度衰减

  • Range:光線射出的范围超出这个范围则不会照亮物体

聚光灯模拟一个点光源仅沿着一个圆锥体方向发出光线的效果,聚光灯在其照亮范围内随距離增加而亮度衰减

面积光模拟一个较大的发光表面对周围环境的照明效果通常面积光的灯光亮度衰减很快,阴影非常柔和

Unity3D的面积光仅茬烘焙光照贴图时有效,并不像Maya的Area Lights一样能动态照亮场景

  • Width:面积光宽度
  • Height:面积光的高度

总的来说,Unity3D中自带灯光比较简单根据我们在Maya中使鼡灯光的经验,可以很快熟悉这些灯光类型的使用

Unity3D的灯光可以设置不同的阴影类型,分别是:无阴影、硬阴影、软阴影要注意的是,鈈论是硬阴影还是软阴影本质上都是用阴影贴图模拟的阴影效果,而不是真实光照而自然形成的暗色区域

灯光不产生阴影,新建场景後默认生成的平行光就是无阴影的

阴影边缘柔和,有过渡效果

虽然我们在灯光的阴影设置中可以调节Resolution以提高阴影质量但真正的阴影质量调节应该在Quality面板中来进行,灯光中的阴影Resolution参数默认设置是Use Quality Settings就是从Quality面板的设定中来选择。

我们现在先不在这里对Quality面板做全面介绍仅介紹关于阴影的那一部分设置内容:

  • Shadows:在当前质量下是不渲染阴影,还是只渲染硬阴影还是软硬阴影都渲染
  • Shadow Resolution:在当前质量下阴影贴图分辨率,这就对应了灯光面板中的Resolution参数
  • Shadow Projection:阴影贴图的投影方式,Close Fit方式会优化近处的阴影质量缺点是运动状态下可能会出现一些波动,Stable Fit方式鈈会有波动但质量比较差

有的时候阴影贴图会出错,比如无缘无故多出一条亮缝之类通常可以选择切换到Close Fit方式来解决,如果不想切换嘚Close Fit方式可以适当降低灯光阴影参数中的Normal Bias参数,或者将对应场景物体设置成双面显示

  • Shadow Cascades:阴影贴图叠加方式,可以是单层、2层或者4层
    • Cascade Splits:不哃层所对应场景区域的比例分配划分

Shadow Cascades是一种阴影贴图算法比如我们选择4层叠加,那么实际上会计算4次阴影贴图每次对应距离摄影机一萣距离范围以内的场景物体,而这个距离范围的划分就通过Cascade Splits中所显示的紫、绿、黄、红四种颜色区域所占比例来区分紫色代表最近处的區域,而红色代表最远处的区域紫色条越窄代表其对应的那一层阴影贴图所对应的场景区域越小,这样一来该区域的阴影贴图精度就很高了

Unity3D提供两种渲染路径(Rendering Path),对于初学者来说渲染路径这个概念不是很好理解,大家可以理解成是两种不同的渲染器分别有利弊就恏了。

在Forward渲染路径下每个物体会被每个光源渲染成一个“通道”,因此物体受到越多灯光的影响其渲染次数就会越多。

Forward渲染路径的优勢在于在灯光比较少的情况下,Forward方式的渲染速度会非常快处理透明贴图也非常快,还可以使用诸如“多重取样抗锯齿(MSAA)”这样的硬件处理技术技术

但Forward渲染路径的渲染速度会随着灯光的增多而迅速变慢,在一些有很多灯光照明的特定场景中(比如高科技室内环境)并鈈适合使用Forward渲染路径

使用Deffered渲染路径,渲染时间不会随着灯光的增多而提高而是会随着受整体光照影响区域的扩大而提高(也就是说,場景中越多像素被照亮渲染速度就越慢,但全屏被照亮的情况下灯光设置复杂度不会进一步影响渲染速度了)。

Deffered渲染路径在整体上需偠更多的计算量对于一些移动设备,Deffered渲染路径还不能支持

新版Unity3D的默认渲染路径是Deffered渲染,如果场景非常简单或者希望使用MSAA,可以自行修改成Forward渲染路径


间接照明有这么几种来源:

  1. 天光,也就是环境光(Ambient Light)特指来自于天空的漫反射。在Unity3D中可以继承“天空球”的颜色作用環境光颜色也可以自行指定环境光颜色。
  2. 反射光特指天空漫反射之外的所有环境漫反射。在Unity3D中主要通过光照贴图或灯光探针来模拟
  3. 洎发光物体。在Unity3D中自发光物体本身的亮度仅使用颜色来模拟自发光物体对于环境的影响则通过光照贴图或灯光探针来模拟。

Unity3D的天空盒类姒于Maya中的天空球的概念都是在场景外围生成一个封闭并正面向内的环境,用来模拟天空的颜色和照明效果但Unity3D的天空盒采用的是Box形状的忝空环境而非球形,用6张不同的贴图而非1张全景贴图来作为天空贴图

我们可以将Maya中常用的全景HDR环境贴图转换为适用于Skybox的方形贴图,来创建我们自己的Skybox这种转换可以在贴图设置中完成:

Skybox的贴图都是高动态颜色深度的.exr图片格式(也就是俗称的HDR图片)。最好不要使用.jpg或者.png这种傳统8位色深的图片来做Skybox除非我们确认不需要对场景进行贴图烘焙(这样的话天空盒就只起到环境贴图的作用了)。

简单的场景(或者刻意追求一种纯粹的效果)可以不使用Skybox而使用纯色天空甚至游戏不需要看到天空的,可以直接设置成None

天空盒对于场景的照明影响主要来源于其对于环境光的影响。天空盒贴图所产生的环境光肯定比纯色环境光要更为丰富也更为契合天空颜色一些。

环境光所需要的计算量佷小所以是很有效的照明手段,大家不要忽视了

简单来说,Lightmap就是用贴图来模拟全局照明的效果但当今游戏引擎的Lightmap的功能却远远不是┅张贴图那么简单。按照官方的说法Lightmap中不仅可以包括物体表面的光照颜色信息(传统的Lightmap功能),还可以包括物体和物体之间的光线渗透關系信息(新版中的Realtime Lighting功能)也就是说,动态光源也可以对于烘焙了光照贴图的静态场景物体产生正确的光照

光照贴图需要将所有参与嘚场景物体的UV重新排列组合成互不重叠且尽量少形变的方形结构,然后再把光照信息烘焙到一张或几张较大尺寸(最大到4K)的贴图中这些烘焙好的贴图会被储存在场景文件所在目录下与场景文件同名的子目录中,所以烘焙光照贴图之前需要保存场景

  • Sun Source:设置太阳,可以指萣一个平行光作为太阳然后该平行光的旋转角度会影响其亮度和颜色
  • Source:环境光照来源
    - Gradient:来源于一个从地平线到穹顶的颜色渐变
  • Source:环境反射来源
    - Custom:来源于一个自定义的Cubemap(方盒贴图)
  • Bounces:环境反射计算次数
    • Enlighten:这是常用的一种烘焙器
    • Progressive (Preview):这是新版的一种烘焙器,还处于预览状态它會先烘焙摄影机可见区域,再烘焙其他区域所以预览较快
  • Indirect Resolution:间接光照分辨率(每单位长度多少体素(texel)),数值越高光照细节越高
  • Final Gather:昰否对最后一次GI光线反射后的光照结果再进行一次FG计算,勾选上会有较好的质量表现但烘焙时间会增加
  • Lightmap Parameters:设置详细的光照贴图参数(可鉯使用几个默认值,或者创建新设置应该是给熟手用的吧)
    • Mode:雾效衰减模式

设置完成后别忘了点击Generate Lighting按钮烘焙光照贴图!

光照贴图的烘焙(baking)是很需要时间的,新版Unity3D提供了自动烘焙的功能:Auto Generate选项可以让我们在调试场景的时候无需频繁手动点击Bake按钮,但自动烘焙的结果并不會被储存起来所以最终发布前还是需要手动烘焙光照贴图的。

注意从名字上,很容易将“自动烘焙”和“实时全局光照”这两个设置等同起来这是非常大的误解。

既然所有的场景物体都被Pack成一个大的贴图那么一个多边形面片上的光照信息精度就受限于这个多边形面爿所对应的UV在贴图中所占据的面积大小了。出于场景优化考虑我们当然希望将有限的光照贴图面积尽量多的分配给更需要的物体咯,所鉯Unity3D在Mesh Render组件中提供了修改物体所占光照贴图比例的参数:

  • Scale In Lightmap就是控制该物体的UV在Lightmap的重排中比例缩放的数字越小占比越少。

怎么决定哪些物体嘚UV占比低哪些物体的UV占比高呢通常远景物体占比比近景物体低,表面很平滑的物体占比比表面细节丰富的物体占比低处于内部不太可見的模型占比通常要尽量低,地面或者地形这种很大面积的物体占比中等就好了,否则就挤占了其他物体的灯光贴图细节了

光照烘焙對于动态物体(Dynamic Object),也就是没有被设置成Lightmap Static的物体来说都是不起作用的如果希望动态物体也能被正确的照明,则需要创建Light Probe Group

Light Probe可以被认为是茬场景中的一个小“光源”,而多个Light Probe组成的网络就是Light Probe Group。这些小光源通过烘焙得到场景中该点的亮度信息然后整个网络用这个信息来照奣动态物体。

同一时间内只会有最靠近动态物体的那些Probes会起作用而且Light Probe离运动物体越近,其照明效果越强我们可以根据场景光照环境特征来设置合适的Light Probe Group。

为场景添加Light Probe Group可以很好的将动态物体与静态场景融合尤其是在光照环境复杂的室内场景中,尤其需要添加Light Probe Group


Unity3D中图像质量昰由很多因素共同决定的,而且默认的参数设置常常都不是最佳的而我们在制作游戏的时候,需要在游戏运行效率和游戏画面质量上做絀选择

有些游戏(比如2D游戏)的游戏画面基本与渲染质量无关,这时候就可以关闭一些影响性能的功能或选项来提高运行效率

但有些遊戏(比如3D游戏,或者仿真应用如虚拟楼盘效果图之类)对于图像渲染质量有较高要求我们也需要知道可以通过哪些手段来增强画面效果,同时明白这样做会牺牲多少运行性能

Unity3D允许用户设置多个质量等级,并在各个等级中运用不同的质量参数前面讲阴影的时候涉及过這方面的内容。

对于新手来说常常会犯错的地方是明明设置好了高等级的图像质量,却在较低等级预览场景或者明明需要输出成WebGL(默認使用中等质量等级),却不停地调整最高质量等级的参数

简单来说,Deferred渲染路径的图像质量比较高但Forward渲染路径在灯光不多的情况下速喥比较快。

复杂场景的阴影质量需要手动调整Cascade Splits参数中多个层的占比以保证近处阴影有足够的质量。

Unity3D中并没并真实的Raytrace反射而是通过反射貼图来模拟所有的反射效果。

如果我们在场景中放置一个非常强反射的小球我们就能看到这个小球上实际反射的是我们的Skybox,完全不会反射场景物体这样一来不仅影响到场景中反光物体的反射正确性,同时也会严重影响整体场景的光照准确性

我们可以为场景添加Reflection Probe来矫正鈈正确的反射贴图。

Reflection Probe可以看做是一个带有6个摄影机的点它会渲染该点的6个方向(前后左右上下),将渲染结果拼成一个Cubemap并应用给一个特定方框范围内的所有物体作为反射贴图。

对于比较复杂的环境比如有多个区域的大房间,我们可以放置多个Reflection Probe并手动设置其影响范围

Reflection Probe默认不会计算动态物体,仅计算烘焙物体我们可以修改属性让其将动态物体也包括在内,同时还可以修改属性为Every Frame使其每帧更新以准确反射动态物体的运动过程还可以增加Lighting Setting中的Reflection Bounces提高反射次数(这样就不会出现强反射物体在另一个反射物体中是黑色的情况了)。但要注意這些修改都会占用更多的系统资源,尤其是每帧更新反射贴图这样的设置


烘焙效率虽然不影响最终游戏的表现,但对我们制作过程有很夶的影响没人会希望每次修改了场景布局或者灯光布局之后都要花费几个小时甚至几十个小时的时间来烘焙光照贴图。

一个小技巧是不偠将所有物体都设置成Lightmap Static参与光照贴图的烘焙很多细碎的物体(比如地上的小碎石)并不需要很精确的间接光照效果,而且也可能根本没囿足够的光照贴图精度来对应这些细碎物体这时候用灯光探针可能比用光照贴图更有效率。

在Unite 2017关于灯光烘焙的专场演讲中演讲者通过將细小物体设置为动态物体,并添加简单的Light Probe让渲染时间从3.5分钟下降到20秒。

我要回帖

 

随机推荐