3Dmax中 VR材质 啥时候开启菲涅耳反射
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3Dmax中 VR材质 啥时候开启菲涅耳反射相关的知识,希望对你有一定的参考价值。
这篇基础的材质教程几乎将所有与VR材质相关的参数都分析到了。如果你是一个VR的初学者,建议你先找一些关于VR渲染面板的基础教程了解一下,那么你将会有一个正确的思路来学习这篇教程!当然你也得有一定的3D基础,因为VR是3DMAX的一个插件!(原文连接) 这篇教程里原作者使用的VR版本为1.47.03,由于怕篇幅过长而引起的网页打开过慢,我将作者的教程分成了VR材质反射参数详解,VR材质折射参数详解及VR材质扩展参数详解这3个部分。1、设置渲染参数(Render settings)设置参数如下:输出分辨率为480*360
Global switches(全局开关)
- Default lights(默认灯光):关闭
Image sampler(图像采样)
- Image sampler:Adaptive QMC
- Antialising filter(抗锯齿):mitchell-netravali
Indirect illumination(间接照明)
- Second bounces (二次反弹):0.85
Irradiance map(发光贴图)
- Current preset(当前预置):Low
- Hsph subdivs (模型细分):30
Environment(环境)
- GI Environment(全局光环境):纯白
- 反射/折射:纯白 倍增值:1.22、建立一个测试场景(Test sence)
尽量简单,茶壶是材质测试的好东西,因为它有很好的曲面来反应材质的特性,这也是它成为最早的3D模型的原因。如果你的测试场景想和这篇教程尽量相近的话那就拉出2个茶壶放在一个大的平面上,如下图:
3、打开材质编辑器(Open the material editor)你可以按“M”键来打开
4、建立一个VR材质(Load a VRayMtl)点击材质面板上的 Standard 按钮,从列表中选中 VRayMtl,然后双击
5、给材质命名和改颜色(Rename and color)将材质的名称改为 teapot1。在面板的基本参数里第一个是漫射通道(diffuse),这是材质里的主要颜色。颜色旁边的方块是一个贴图通道,你可以在这里加载位图或是其他格式的图片来附到材质上。这里我们把颜色调成一种明快的桔黄色,然后附给大的茶壶~
6、另一个材质(Second mat)重复上面的步骤调出一个颜色非常浅的灰色材质。将其命名为 groundplan,然后将其附给地面和小的茶壶。
7、首次渲染(First render)点击渲染,如果你的渲染参数和上面步骤1相同的话,并且把默认灯光关闭,那么你的图应该和我的差不多。
8、反射(Reflections)在材质面板中选择橙黄色的材质,在漫射通道的下面是反射通道,反射旁边的那个颜色框是主要的控制方式。纯黑色代表一点反射都没有,纯白色代表100%反射,就像镜子一样,如果你将颜色调成红色,那么反射的颜色也将变成红色。我们先把颜色调到中间看看吧:
9、渲染(render)点击渲染,你可以看到茶壶的反射很强。这时你可以调一个深灰色和一个浅灰色来对比下它们之间的区别
10、最大深度(Max depth)将反射颜色调到白色,并把Max depth调到1。点击渲染
这是你会注意到很多地方的阴影变黑了,最大深度可以控制光线射到物体上的反射次数。值为1表示只接受光的一次反射,值为2表示接受光的一次反射以后还可以把光再反射出去。。再看看下面这个小场景,里面前后2个黄色的BOX是2个镜子,我们依次调整它们的Max depth值来看看有什么区别:
Max depth值:1 渲染时间:1分12秒
Max depth值:2 渲染时间:1分24秒
Max depth值:3 渲染时间:1分40秒
Max depth值:4 渲染时间:2分03秒
所以在场景中如果物体不是像镜子这种反射非常强的东西,最大深度给个2~3就足够了,只有镜子和那种非常光滑的不锈钢可以给到5以上,一般最大深度不要超过10,否则的话只会在那浪费渲染时间得到的效果反而一般。11、逝色(Exit color)将Max depth设为1,然后将Exit color调成红色,同时附给小一点的茶壶然后再渲染一次看看
现在你会发现所有的反射颜色都变成红色了。这是因为光线只被追踪一次。当光第一次照射到物体上时带去了环境的颜色,而当光线从物体上反弹回来时形成了第二次反射,由于这里材质的最大深度设定为1,所以第二次反射就没有被追踪。这时Exit color的颜色就会在光线没有被追踪到的地方显示出来。下面把Exit color调成原来的黑色,提高Max depth值让黑色的反射区域消失。(至于将Exit color翻译成逝色我也不知道对不对,我的理解它是在光线追踪消失后才出现的颜色。我看了中文版的VR,感觉上面翻译成退出颜色意思表达的也不是很明确。所以就暂时这样翻译吧!在上一步那2个镜子来回反射的场景中如果将镜子材质的Exit color也改成红色的话那么正中间没有反射的黑色的镜子也就会变成红色的了。)12、菲涅耳反射(Fresnel reflections)菲涅耳反射是一种几乎所有反射物体上都存在的现象。它的特性就是在物体与物体相接(或是相邻)面上的反射要比其他面上的反射要弱一些。菲涅耳反射的这种现象主要是通过材质面板上的Fresnel IOR值来控制的,你可以在反射面板里找到它。在现实生活中,菲涅耳现象和这里的IOR值很接近。然而在VRay里,你可以设定不同的值来表现出不同的反射,如果你想更改这个数值的话只需将菲涅耳反射复选框旁边的那个L点一下就可以了。
我们保持IOR为1.6不变,单击渲染。注意下2个茶壶相邻的地方反射要比茶壶2边的要弱。
降低Fresnel IOR的值可以加强这种效果。IOR的值越低,中间的反射效果就越弱,但当你把IOR的值提高到>25的话,效果就好比菲涅耳反射没打开一样。13、小茶壶的材质(Teapot 2 material)复制一个teapot1材质,然后将其名称改为teapot2,并将颜色改成深红色。
14、反射模糊(Reflection glossiness)选中桔黄色的材质,将反射颜色调到中间,关闭菲涅耳反射,将Reflection glossiness值从1.0降为0.8
点击渲染,现在可以看到反射效果变的非常模糊,如果你仔细观察具有这种效果的真实物体,那么你会发现在它的表面上有很多细小的凹凸。如果在3D里要做出这种效果的话,必须在bump通道里贴一张非常漂亮的bump贴图。用VR的反射模糊来代替3D的bump贴图,渲染的时间也要快很多。
现在你可以调调不同的Reflection glossiness值所渲出来的效果。glossiness即光泽的意思,glossiness=1.0即表示100%的光滑,值越低所反射的效果就越模糊,很多人容易将光泽度这个术语与模糊的意思搞混,这就造成了很多的困惑。15、光滑的模糊反射(Smoother blurry reflections)如果你仔细观察上面那幅图的话,你会发现反射的表面有很多的小颗粒,这是因为材质的采样过低。Reflection glossiness下面的Subdivs(采样)是用来控制反射模糊的平滑度的,我们把Subdivs值从默认的8提高到20在渲染一遍,结果会发现图像的模糊效果要平滑的多了。
注意Subdivs为8表示8*8=64个采样点,Subdivs为20表示20*20=400个采样点。但如果你把Subdivs值提高一倍的话,渲染的时间可能会增加很多。如果用高采样的材质那么你的图像采样必须得用Adaptive QMC这种模式,如果你想使用Adaptive subdivision 这种模式,那么你的材质采样只能控制在3~10之间。假如你的场景有很多模糊反射的物体,那么Adaptive QMC永远都是首选!16、QMC设置:更加平滑的模糊反射(QMC settings: smooth the blurry reflections even more)如果你想使反射模糊变的更平滑,用增加Subdivs采样值的方法也不是一直都有效。用不着将采样值提高到40以上来减少噪点,在QMC设置里可以找到另一种比较好的方法。
来到渲染面板将QMC Sampler展开,将Noise threshold值降到0.001,这时渲染你会发现噪点完全消失了,但渲染时间会长一点。在做像这种测试渲染的时候通过更改QMC的设置渲染速度会加快很多,比方说你把Noise threshold的值调到0.5感受一下速度~~注意QMC的设置同样会影响到光子图,阴影以及特效等等。。。所以降低Noise threshold的值影响的不仅仅是模糊反射的效果,对于GI的质量也一样起作用。(光子图的质量好坏直接影响到你效果图的质量,这就是为什么有的人出图的时候参数给的非常高但图渲出来后看上去依然很飘,因为他出光子图的时候参数给的很低!这就导致在计算阴影的时候会有偏差!)17、高光模糊(Highlight glossiness)从3D默认材质中你也许知道一种叫做高光的东西,但实际上这是一种虚假的反射。其在物体上的具体表现就是能反射出一个很亮的光点。
在以前的VR版本中是没有高光模糊这个参数的。但后来需求逐渐增多,开发人员才将这个参数加入到VR中去。值得注意的是高光模糊这种效果只会在有灯光的场景里出现,对于天光来说是不会产生高光模糊这种效果的。18、打一盏聚光灯(Create a spotlight)为了观察这种效果我们在茶壶的上方打了一盏聚光灯。在聚光灯的参数里,开启阴影并选择VRay shadows
关闭天光,在这里我们不需要任何的天光。然后点击渲染看看
茶壶上白色的地方就是高光模糊了,但这是一种虚假的反射,因为3D的聚光灯是不可能出现在摄像机和反射中的。但是高光模糊可以将灯光给反射出来。19、高光关联(Highlight glossiness linked)默认情况下高光模糊是和反射模糊关联在一起的。这就意味着在一个有灯光的场景里如果你用了反射模糊的话那么高光模糊也会一起跟着出现。
我们可以通过按起高光模糊参数右边的L来将它们给分离开来。这时高光模糊的参数应该是1.0,点击渲染看看效果
这时你会发现茶壶上的高光不见了,那是因为1.0表示一点高光模糊都没有,就像反射模糊为1.0时一点模糊效果都没有的道理一样。20、只要高光?(Highlight glossiness only?)如果你只希望高光模糊出现而不需要反射模糊的话,那么你就得动点脑子了。我们通常的逻辑首先是要将反射模糊提高到1.0,这样就不会出现模糊效果了。这样想是对的~~但是这样只会调出一个反射非常清晰高光却很模糊的不存在的材质!不信的话我们就来试试,将反射模糊提高到1.0,高光模糊0.75来渲渲看看
虽然你渲出来的材质像这个样子,但它却是不真实的!它将灯光反射的非常模糊,但是环境却反射的很清晰,然而这在真实世界中是不存在的!因为反射不会将灯光和其他物体反射成2种截然不同的效果!21、关闭反射(Turn off reflections)所以如果想只要高光模糊,你必须要将这个材质的反射给关闭。这在VR中是能办到的,只是参数被隐藏到VR材质的Options卷栏里去了。
将Trace reflections前面的勾去掉,再次渲染
这时你就会得到一个只有高光模糊而没有反射的材质了,看上去就像是给了点高光的3D材质一样。同样这也是一个不真实的材质,因为它将灯光给反射出来了但是环境却一点也没有反射出来。22、贴图通道(Map slots)在所有的反射参数旁边有一个贴图通道。这就意味着你可以通过一张贴图来控制物体的反射颜色,反射模糊,高光模糊以及菲涅耳反射参数。比方说我们在反射的贴图通道里给它加一个“checker(棋盘格)”,你可在viewport中观察贴图是否显示正确。
将其他的反射都调到默认的值,反射颜色调到中间的灰色,所有反射模糊效果调到1.0,关闭菲涅耳反射,开启材质追踪反射。删除聚光灯,并把天光亮度调回到原来的1.0。渲染下看看效果先
这时你会得到这样的效果。材质中所有黑色的区域一点反射都没有,而白色的区域则是100%的反射。你可以在其他的通道中也试试这个贴图。但是需要注意的是白色对于反射模糊来说相当于值1.0的时候,即一点模糊效果都没有,但是黑色却相当于值0.0的时候,所以会变得非常模糊!23、使用插值(Use interpolation)在subdivs下面有个Use interpolation参数,其作用就是加快计算模糊效果的速度,对于Irradiance map的GI计算也有同样的效果。当你把方框勾上的时候你会在另外一个材质卷栏里找到相关的参数。我将不会介绍这些参数,因为我不推荐为模糊反射效果使用这个功能。它们很少有看起来不错的效果。而当你需要高质量的时候,它们会花费掉相当长的渲染时间。所以如果你想具体的了解Use interpolation这个参数的话请参考用户手册。完! 参考技术A 别的模型材质对本材质影响大的时候。
比如说不锈钢材质,边上有个红色的模型,因为不锈钢反射比较高,渲染后不锈钢反射了太多红色,使材质不能完美表现。这时候就勾选菲涅尔反射。
其实就是柔化和减少高光的作用。 参考技术B 当反射背景特别大,比如说是一整块木板,你想让他在反射变化上更加生动,不会太死板。采用菲涅耳反射,就会达到反射有虚有实,但是渲染速度会变慢。所以小的还是不要用了。
另外这个主要还是观察一个物体,对周围的物体去理解。在渲染时候仔细看看你要渲染的材料在真实世界中的样式,如果在真实世界中,他的远近、横竖的反射各有不同,就用,要是真实中不存在反射的不同,就不要用。
Unity Shader菲涅耳反射(Fresnel)
菲涅尔反射经常用于汽车表面的材质,普通的反射看上去比较粗略,菲涅尔的效果和镜面效果会让汽车表面看的更有质感,并且创建一种边缘光照的效果。
不是所有的表面都要相同数量的菲涅尔光照,想汽车表面的话需要高强度的菲涅尔反射,但是塑料材质的只需要迟钝点的强度就可以了。
下面我们看下效果:
我调出来的效果:
不知道是版本原因还是其他原因,书上的那种效果我没有调处来,我们看下书上调出来的效果:
感觉书上的这种更有质感,有知道方法的告知。
下面我们看下shader脚本:
Shader "MyShaders/FresnelReflections"
Properties
_MainTint("Diffuse Tint", Color) = (1,1,1,1)
_MainTex("Base (RGB)", 2D) = "white"
_Cubemap("Cubemap", CUBE) = ""
_ReflectionAmount("Reflection Amount", Range(0,1)) = 1
_RimPower("Fresnel Falloff", Range(0.1, 8)) = 2
_SpecColor("Specular Color", Color) = (1,1,1,1)
_SpecPower("Specular Power", Range(0,1)) = 0.5
SubShader
Tags "RenderType" = "Opaque"
LOD 200
CGPROGRAM
#pragma surface surf BlinnPhong
#pragma target 3.0
samplerCUBE _Cubemap;
sampler2D _MainTex;
float4 _MainTint;
float _ReflectionAmount;
float _RimPower;
float _SpecPower;
struct Input
float2 uv_MainTex;
float3 worldRefl;
float3 viewDir;
;
void surf(Input IN, inout SurfaceOutput o)
half4 c = tex2D(_MainTex, IN.uv_MainTex);
float rim = 1 - saturate(dot(o.Normal, normalize(IN.viewDir)));
rim = pow(rim, _RimPower);
o.Albedo = c.rgb * _MainTint.rgb;
o.Emission = (texCUBE(_Cubemap, IN.worldRefl).rgb * _ReflectionAmount) * rim;
o.Specular = _SpecPower;
o.Gloss = 1.0;
o.Alpha = c.a;
ENDCG
FallBack "Diffuse"
以上是关于3Dmax中 VR材质 啥时候开启菲涅耳反射的主要内容,如果未能解决你的问题,请参考以下文章