Unity3D 5 官方教程:标准着色器之材质参数(二)
金属模式:金属参数
当在金属工作流(不同于镜面工作流)下工作时,表面的反射成都和光照反应由金属性级别和平滑度级别来修改。
当使用这个工作流时,镜面反射仍然被生成;但依赖于给予Metallic和Smoothness级别的设置而自然出现,不是被指定的。
金属模式并非仅仅用于看起来应该是金属的材质!此模式名为金属,是因为用户控制表面如何成为金属或非金属的方式。
金属性参数
材质的金属参数决定了表面如何“像金属那样”。当一个表面更加金属化,它更多地反射环境,albedo色变得更难看到。在完全金属级别下,表面颜色完全由环境的反射而驱动。当表面更不金属化,他的albedo色更清晰,并且在表面颜色上,任何表面反射是可见的,而不是隐藏掉。
金属值从0到1范围(平滑值保持为常数0.8)。
默认情况下,没有纹理被分配,金属性和平滑度参数各用一个滑块条控制。这对于某些材质已然够用了。然而如果模型的表面在albedo纹理中有表面类型的混合,可以使用纹理贴图来控制金属性和平滑度级别如何在通过材质表面时改变。例如,如果纹理包含了一个角色的衣服,包括一些金属纽扣与编码。用户将希望纽扣和编码比衣服的布料有更高的金属值。为了达成此目的,不使用单一一个滑块值,可以分配一个在纽扣和编码区域包含了更高像素颜色的纹理贴图,以及在布料处为更暗的值。
随着一个纹理分配给金属性参数,金属性和平滑度滑块会消失。取代的是:被通过纹理的红色通道所控制的材质金属级别。并且材质的平滑级别会被纹理的alpha通道控制。(这意味着绿色和蓝色通道被忽略了)。这意味着你有单个可以定义区域是粗糙或平滑、金属或非金属的纹理,当工作于覆盖了一个对于很多区域有不同要求的模型的纹理贴图时很有用——例如一个角色的纹理贴图经常巴夯多种表面要求:皮鞋,布料衣物,手与脸的皮肤,以及金属纽扣。
这幅图展示了模型没有金属贴图的情形。
在上面的例子中,有一个albedo贴图,但没有对金属的纹理。这意味着整个物体只有单个金属性数值和平滑度数值,并不合理。Leather straps,金属纽扣,sticker和handle应当都出现不同的表面性质。
这幅图展示了模型应用了金属贴图的情况。
在这个例子中,一个金属/平滑的纹理贴图已被分配。纽扣现在拥有高的金属值,由此对光照有反应。盒子的Leather straps比leather body更闪亮,然而它们金属值低,所以显出闪亮的非金属表面。在右端远处的黑色、白色贴图展示了对金属更光亮的区域,以及对leather中等到低的灰度。
平滑度
平滑参数,在金属和镜面着色器模式的平滑参数都展示了。
平滑度的概念在镜面工作流和金属工作流下均可应用,并且在两种工作流下工作的方式大部分都一样。默认下,没有一个金属或者镜面纹理贴图被分配时,材质的平滑度由一个滑块控制。此滑块允许你控制“微小表面细节”或者纵贯表面的平滑度。
两个着色器模式在上面展示了;因为如果选择使用一个纹理贴图用户金属或锦棉参数,平滑度的值也从相同的贴图中采用。这在下一页中进行更细节地解释。
平滑度范围从0到1。
“微表面细节”在Unity里是无法直接看到的东西——但近在眼前。它是在光照计算中使用的概念。用户可以看到被光照数量所表现的微表面细节的效果被漫射,像是从物体上弹开。对于平滑的表面,所有光线趋向于在一个可预测及一致的角度弹开。极端情况下,一个完美平滑的表面像镜子一样反射光照。不那么平滑的表面,在更宽的角度范围内反射光照(由于光照碰到微小表面的隆起),因此反射的细节更少,被表面以更散漫的方式所传播。
一个材质的微表面细节理论在平滑度低、中、高时对比的示意图。黄色的线表示:在平滑程度变化情况下,光线接触到表面并反射的角度。
平滑的表面有非常低的微表面细节,或者根本没有,所以光线以统一的方式反弹,形成清晰的反射。粗糙的表面在它微表面细节存在高峰和低谷,所以光线在宽的角度范围反弹——均匀后的输出形成了漫射的颜色,没有清晰的反射。
使用平滑度纹理贴图
类似于其它很多参数,可以用分配纹理贴图来代替使用单个滑块数值。这允许了更好的控制:用户可以改变在材质表面上镜面光照反射的强度和颜色。
由于表面上每个点的平滑度是单独的值,图片纹理只有一个通道被当做数据使用。因此平滑度数据被设定为储存在用于金属性或者镜面纹理贴图相同的图片纹理的alpha通道中(依赖于用户使用的模式)。
当在镜面工作流中工作时,如果分配了一个镜面纹理,平滑度滑块不再可用,因为镜面纹理的alpha通道将会被用户作为材质表面的平滑度数值。
类似地,在金属工作流工作时,如果分配了一个金属性纹理,平滑度数据采用金属性纹理的alpha通道。
使用贴图取代滑块,意味着可以创建在表面上有不同平滑度级别的材质(通常被设计来匹配在albedo纹理中显示的)。
左边:没有为镜面分配贴图,所以对平滑度有一个滑块。右边:分配给镜面一个贴图,所以图片的灰度alpha通道值用于平滑贴图。
更平滑的表面更能反射,有更小更紧密集中的镜面高光。不平滑的表面不会反射这么多,并且镜面高光不那么显眼,在表面上散开得更宽。通过将镜面和平滑度贴图匹配到在albedo贴图中的内容,可以开始创建看起来非常真实的纹理。
Unity3D 5 官方教程:标准着色器之材质参数(二)相关推荐
- Unity3D 5 官方教程:标准着色器之材质参数(一)
材质参数 标准着色器展示了材质参数的列表.取决于你是否已经选择在金属工作流模式或者镜面工作流模式,这些参数会有轻微地变化.大部分参数在两种模式下是一样的,材质参数系列将覆盖两种模式的所有参数. 这些参 ...
- Unity3D Shader官方教程翻译(三)
Unity3D Shader官方教程翻译(三) 1.Shader语法:Pass 1个Pass块可以使一个几何物体被一次渲染. Pass { [Name and Tags] [RenderSetup] ...
- Unity3D 5 官方教程:标准着色器
Unity5 引入了名为标准着色器的一种新型内建着色器.此着色器被设计用于代替大量在以前的Unity版本里被使用的旧着色器--它代替了用于渲染"真实世界"物体如石头石块.木头.玻璃 ...
- Unity3D 5 官方教程:标准着色器:内容和环境;金属与镜面工作流
内容和环境 当在Unity中考虑光照,很方便将概念区分.被称为"内容"的是被光照和被渲染的物品:而环境,是场景中存在的,影响了被照射物体的光. 环境 当光照一个物体时,搞清楚影响此 ...
- Unity3D 5 官方教程:地形设置
地形工具栏的最后一个工具是设置: 设置检视器 设置被提供用于如下描述的一些全局使用和渲染选项: 基本地形 属性 功能 Draw 切换地形渲染开关 Pixel Error 在地形贴图(高度图,纹理等等) ...
- Unity3D 5 官方教程:粒子系统 How-Tos
这部分解释了如何实现粒子系统的普遍类型.文档中所有的代码,你都可以免费使用于任何目的. 一个简单的爆炸 你可以用一个粒子系统来创造出一个逼真的爆炸,但动态效果在一开始可能看起来会更混乱.精髓之处在于, ...
- Unity3D 5 官方教程:地形引擎
创建和编辑地形 通过菜单中的GameObject->3D Object ->Terrain,你可以为你的场景创建一个地形对象(这也将在项目视图中增加一个对应的地形资源).然而,初始的地表除 ...
- Java8 官方jvm 标准参考 -XX 配置参数详细信息
原文地址 https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html 概要 java [ 选项 ] 类名 [ args ] ...
- 福利,PyTorch中文版官方教程来啦(附下载)
PyTorch 中文版官方教程来了. PyTorch 是近期最为火爆的深度学习框架之一,然而其中文版官方教程久久不来.近日,一款完整的 PyTorch 中文版官方教程出炉,读者朋友从中可以更好的学习了 ...
最新文章
- 深入理解神经网络之逻辑回归
- go get 获取被墙依赖包解决方法
- 2016 年 3 月 TIOBE 编程语言排行榜
- linux 卸载aria2,Linux Mint 19下安装aria2的过程完整总结
- CodeForces - 1332D Walk on Matrix(构造)
- ES6精华: 解构运算符 扩展运算符 剩余运算符
- 查看指定进程io状态的iotop命令
- 关于echarts的疑问
- 性能测试中的jvm监控
- 【概率论】标准正态分布及概率表
- Numpy中 tolist() 的用法
- 2021 知来者之可追
- 市场部商业计划PPT模板
- 不花钱,模拟登录古诗中文网
- C++学习(二六六)LINK_DIRECTORIES
- C#.NET程序设计教程实验指导(清华大学 江红,余青松)实验源码
- 《弃子长安》第八章 昨日黄花
- Matlab 读取 pcd 文件
- R语言稀疏主成分分析、因子分析、KMO检验和Bartlett球度检验分析上市公司财务指标数据...
- 项目延期,要制定有效的进度管理计划