Unity3D渲染系列之标准着色器(Standard Shader)常用贴图

2024-03-16 18:20

本文主要是介绍Unity3D渲染系列之标准着色器(Standard Shader)常用贴图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在Unity3D中,新建一个材质球,默认使用的Shader就是官方的标准着色器(Standard Shader),里面可以指定9张贴图,各个贴图的作用不一样。下面我们一起看看这些贴图的作用。(ps:本文中所用到的素材都可在文末提供的GitHub项目地址中下载,可下载下去实际感受一下,另外我使用的Unity版本是Unity2017.4.25,版本不一样标准着色器的调节面板会有差别)。

1.Albedo-反照率贴图

反照率贴图和漫反射贴图类似,就是给模型表面添加基本的颜色。调节Albedo后面的颜色可与Albedo颜色贴图叠加。

实用技巧:有时写代码需要测试某些功能的时候,需要一眼看出控制的物体,可以按照上图第一个的方式生成不同颜色的物体。

2.Metallic-金属度贴图

金属度贴图就是来模拟表面的金属高光反射的。

金属度贴图实质是一张灰白图,越白的地方,金属度越强烈,它反射的环境信息就越多,同时它的反照率颜色(albedo colour,可以理解为底色)越不可见。越黑的地方,金属度越低,当材质表面越不金属,它的反照率颜色越清晰。

金属度贴图下面有个Smoothness 属性,其名为平滑度。

值越大,表面越光滑,反射光的能力越强;

值越小,表面越粗糙,反射光的能力越弱。

效果如下图。

 

 

3.Normal Map-法线贴图

法线贴图是一张蓝色的凹凸图,它用来改变模型顶点的法线方向,使物体表面看起来会有凸起凹陷的效果。(ps:这里有个问题,为什么法线贴图是蓝色的,因为它存储的是切线空间中的法线,至于什么是切线空间,一时半会儿也说不清楚。如果不用写shader知道法线贴图一般是蓝色的就够了,需要写shader的话,你自然会去弄懂的)。

看看效果。

4.自发光贴图

模拟局部发光的效果,如日光灯。看效果。

5.Height Map 高度图

高度图的作用与法线贴图的作用是一样的,都是用来使表面看起来有凹凸感。

高度图存储的是强度值,它用于表示模型表面局部的海拔高度。颜色越浅表示该位置的表明法线越向外凸起,颜色越深表明该位置越向里凹。

6.Occlusion贴图(AO贴图)

其实是一张灰白图,用于改善阴影,越灰阴影越深,用于提升细节。看效果。

7.其他贴图

剩下还有三张贴图Detail Mask 即Secondary Map下的Detail Albedo *2 \Normal Map。

Detail Mask贴图的作用就是让模型的一些指定区域可以指定Secondary Map下的Detail Albedo *2 \Normal Map,Detail Albedo *2 \Normal Map这两者和上面介绍的Albedo贴图、Normal Map贴图作用是一样的,只是这两者仅仅作用在Detail Mask贴图规定的局部区域。

由于我工作中也没有使用过,所以这里就不再多说啦。

项目上传到GitHub了,具体见05.Rendering-2-CommonTextures,贴图和材质在不同的文件夹,子目录都是05.Rendering-2-CommonTextures,下载回去试试吧,下次再会!

这篇关于Unity3D渲染系列之标准着色器(Standard Shader)常用贴图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/816310

相关文章

C#中读取XML文件的四种常用方法

《C#中读取XML文件的四种常用方法》Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具,下面我们就来看看C#中读取XML文件的方法都有哪些吧... 目录XML简介格式C#读取XML文件方法使用XmlDocument使用XmlTextReader/XmlTextWr

CSS弹性布局常用设置方式

《CSS弹性布局常用设置方式》文章总结了CSS布局与样式的常用属性和技巧,包括视口单位、弹性盒子布局、浮动元素、背景和边框样式、文本和阴影效果、溢出隐藏、定位以及背景渐变等,通过这些技巧,可以实现复杂... 一、单位元素vm 1vm 为视口的1%vh 视口高的1%vmin 参照长边vmax 参照长边re

Python中操作Redis的常用方法小结

《Python中操作Redis的常用方法小结》这篇文章主要为大家详细介绍了Python中操作Redis的常用方法,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解一下... 目录安装Redis开启、关闭Redisredis数据结构redis-cli操作安装redis-py数据库连接和释放增

一文详解Python中数据清洗与处理的常用方法

《一文详解Python中数据清洗与处理的常用方法》在数据处理与分析过程中,缺失值、重复值、异常值等问题是常见的挑战,本文总结了多种数据清洗与处理方法,文中的示例代码简洁易懂,有需要的小伙伴可以参考下... 目录缺失值处理重复值处理异常值处理数据类型转换文本清洗数据分组统计数据分箱数据标准化在数据处理与分析过

Java中Object类的常用方法小结

《Java中Object类的常用方法小结》JavaObject类是所有类的父类,位于java.lang包中,本文为大家整理了一些Object类的常用方法,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. public boolean equals(Object obj)2. public int ha

详解如何在React中执行条件渲染

《详解如何在React中执行条件渲染》在现代Web开发中,React作为一种流行的JavaScript库,为开发者提供了一种高效构建用户界面的方式,条件渲染是React中的一个关键概念,本文将深入探讨... 目录引言什么是条件渲染?基础示例使用逻辑与运算符(&&)使用条件语句列表中的条件渲染总结引言在现代

Java 字符数组转字符串的常用方法

《Java字符数组转字符串的常用方法》文章总结了在Java中将字符数组转换为字符串的几种常用方法,包括使用String构造函数、String.valueOf()方法、StringBuilder以及A... 目录1. 使用String构造函数1.1 基本转换方法1.2 注意事项2. 使用String.valu

VUE动态绑定class类的三种常用方式及适用场景详解

《VUE动态绑定class类的三种常用方式及适用场景详解》文章介绍了在实际开发中动态绑定class的三种常见情况及其解决方案,包括根据不同的返回值渲染不同的class样式、给模块添加基础样式以及根据设... 目录前言1.动态选择class样式(对象添加:情景一)2.动态添加一个class样式(字符串添加:情

Python 标准库time时间的访问和转换问题小结

《Python标准库time时间的访问和转换问题小结》time模块为Python提供了处理时间和日期的多种功能,适用于多种与时间相关的场景,包括获取当前时间、格式化时间、暂停程序执行、计算程序运行时... 目录模块介绍使用场景主要类主要函数 - time()- sleep()- localtime()- g

Java 枚举的常用技巧汇总

《Java枚举的常用技巧汇总》在Java中,枚举类型是一种特殊的数据类型,允许定义一组固定的常量,默认情况下,toString方法返回枚举常量的名称,本文提供了一个完整的代码示例,展示了如何在Jav... 目录一、枚举的基本概念1. 什么是枚举?2. 基本枚举示例3. 枚举的优势二、枚举的高级用法1. 枚举