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

相关文章

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.

MySQL 内存使用率常用分析语句

《MySQL内存使用率常用分析语句》用户整理了MySQL内存占用过高的分析方法,涵盖操作系统层确认及数据库层bufferpool、内存模块差值、线程状态、performance_schema性能数据... 目录一、 OS层二、 DB层1. 全局情况2. 内存占js用详情最近连续遇到mysql内存占用过高导致

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

MySQL字符串常用函数详解

《MySQL字符串常用函数详解》本文给大家介绍MySQL字符串常用函数,本文结合实例代码给大家介绍的非常详细,对大家学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql字符串常用函数一、获取二、大小写转换三、拼接四、截取五、比较、反转、替换六、去空白、填充MySQL字符串常用函数一、

Java中Arrays类和Collections类常用方法示例详解

《Java中Arrays类和Collections类常用方法示例详解》本文总结了Java中Arrays和Collections类的常用方法,涵盖数组填充、排序、搜索、复制、列表转换等操作,帮助开发者高... 目录Arrays.fill()相关用法Arrays.toString()Arrays.sort()A

Spring Boot中WebSocket常用使用方法详解

《SpringBoot中WebSocket常用使用方法详解》本文从WebSocket的基础概念出发,详细介绍了SpringBoot集成WebSocket的步骤,并重点讲解了常用的使用方法,包括简单消... 目录一、WebSocket基础概念1.1 什么是WebSocket1.2 WebSocket与HTTP

golang中reflect包的常用方法

《golang中reflect包的常用方法》Go反射reflect包提供类型和值方法,用于获取类型信息、访问字段、调用方法等,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录reflect包方法总结类型 (Type) 方法值 (Value) 方法reflect包方法总结