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

相关文章

MyBatis常用XML语法详解

《MyBatis常用XML语法详解》文章介绍了MyBatis常用XML语法,包括结果映射、查询语句、插入语句、更新语句、删除语句、动态SQL标签以及ehcache.xml文件的使用,感兴趣的朋友跟随小... 目录1、定义结果映射2、查询语句3、插入语句4、更新语句5、删除语句6、动态 SQL 标签7、ehc

Python打包成exe常用的四种方法小结

《Python打包成exe常用的四种方法小结》本文主要介绍了Python打包成exe常用的四种方法,包括PyInstaller、cx_Freeze、Py2exe、Nuitka,文中通过示例代码介绍的非... 目录一.PyInstaller11.安装:2. PyInstaller常用参数下面是pyinstal

Python 常用数据类型详解之字符串、列表、字典操作方法

《Python常用数据类型详解之字符串、列表、字典操作方法》在Python中,字符串、列表和字典是最常用的数据类型,它们在数据处理、程序设计和算法实现中扮演着重要角色,接下来通过本文给大家介绍这三种... 目录一、字符串(String)(一)创建字符串(二)字符串操作1. 字符串连接2. 字符串重复3. 字

python语言中的常用容器(集合)示例详解

《python语言中的常用容器(集合)示例详解》Python集合是一种无序且不重复的数据容器,它可以存储任意类型的对象,包括数字、字符串、元组等,下面:本文主要介绍python语言中常用容器(集合... 目录1.核心内置容器1. 列表2. 元组3. 集合4. 冻结集合5. 字典2.collections模块

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

Java Stream流以及常用方法操作实例

《JavaStream流以及常用方法操作实例》Stream是对Java中集合的一种增强方式,使用它可以将集合的处理过程变得更加简洁、高效和易读,:本文主要介绍JavaStream流以及常用方法... 目录一、Stream流是什么?二、stream的操作2.1、stream流创建2.2、stream的使用2.

Python标准库datetime模块日期和时间数据类型解读

《Python标准库datetime模块日期和时间数据类型解读》文章介绍Python中datetime模块的date、time、datetime类,用于处理日期、时间及日期时间结合体,通过属性获取时间... 目录Datetime常用类日期date类型使用时间 time 类型使用日期和时间的结合体–日期时间(

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

Python标准库之数据压缩和存档的应用详解

《Python标准库之数据压缩和存档的应用详解》在数据处理与存储领域,压缩和存档是提升效率的关键技术,Python标准库提供了一套完整的工具链,下面小编就来和大家简单介绍一下吧... 目录一、核心模块架构与设计哲学二、关键模块深度解析1.tarfile:专业级归档工具2.zipfile:跨平台归档首选3.