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

相关文章

golang中reflect包的常用方法

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

C# 比较两个list 之间元素差异的常用方法

《C#比较两个list之间元素差异的常用方法》:本文主要介绍C#比较两个list之间元素差异,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 使用Except方法2. 使用Except的逆操作3. 使用LINQ的Join,GroupJoin

python常用的正则表达式及作用

《python常用的正则表达式及作用》正则表达式是处理字符串的强大工具,Python通过re模块提供正则表达式支持,本文给大家介绍python常用的正则表达式及作用详解,感兴趣的朋友跟随小编一起看看吧... 目录python常用正则表达式及作用基本匹配模式常用正则表达式示例常用量词边界匹配分组和捕获常用re

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

Python常用命令提示符使用方法详解

《Python常用命令提示符使用方法详解》在学习python的过程中,我们需要用到命令提示符(CMD)进行环境的配置,:本文主要介绍Python常用命令提示符使用方法的相关资料,文中通过代码介绍的... 目录一、python环境基础命令【Windows】1、检查Python是否安装2、 查看Python的安

python判断文件是否存在常用的几种方式

《python判断文件是否存在常用的几种方式》在Python中我们在读写文件之前,首先要做的事情就是判断文件是否存在,否则很容易发生错误的情况,:本文主要介绍python判断文件是否存在常用的几种... 目录1. 使用 os.path.exists()2. 使用 os.path.isfile()3. 使用

Java实现本地缓存的常用方案介绍

《Java实现本地缓存的常用方案介绍》本地缓存的代表技术主要有HashMap,GuavaCache,Caffeine和Encahche,这篇文章主要来和大家聊聊java利用这些技术分别实现本地缓存的方... 目录本地缓存实现方式HashMapConcurrentHashMapGuava CacheCaffe

go rate 原生标准限速库的使用

《gorate原生标准限速库的使用》本文主要介绍了Go标准库golang.org/x/time/rate实现限流,采用令牌桶算法控制请求速率,提供Allow/Reserve/Wait方法,具有一定... 目录介绍安装API介绍rate.NewLimiter:创建限流器limiter.Allow():请求是否

Python将字符串转换为小写字母的几种常用方法

《Python将字符串转换为小写字母的几种常用方法》:本文主要介绍Python中将字符串大写字母转小写的四种方法:lower()方法简洁高效,手动ASCII转换灵活可控,str.translate... 目录一、使用内置方法 lower()(最简单)二、手动遍历 + ASCII 码转换三、使用 str.tr

Spring Boot 常用注解整理(最全收藏版)

《SpringBoot常用注解整理(最全收藏版)》本文系统整理了常用的Spring/SpringBoot注解,按照功能分类进行介绍,每个注解都会涵盖其含义、提供来源、应用场景以及代码示例,帮助开发... 目录Spring & Spring Boot 常用注解整理一、Spring Boot 核心注解二、Spr