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 String字符串的常用使用方法

《JavaString字符串的常用使用方法》String是JDK提供的一个类,是引用类型,并不是基本的数据类型,String用于字符串操作,在之前学习c语言的时候,对于一些字符串,会初始化字符数组表... 目录一、什么是String二、如何定义一个String1. 用双引号定义2. 通过构造函数定义三、St

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在

Java常用注解扩展对比举例详解

《Java常用注解扩展对比举例详解》:本文主要介绍Java常用注解扩展对比的相关资料,提供了丰富的代码示例,并总结了最佳实践建议,帮助开发者更好地理解和应用这些注解,需要的朋友可以参考下... 目录一、@Controller 与 @RestController 对比二、使用 @Data 与 不使用 @Dat

Mysql中深分页的五种常用方法整理

《Mysql中深分页的五种常用方法整理》在数据量非常大的情况下,深分页查询则变得很常见,这篇文章为大家整理了5个常用的方法,文中的示例代码讲解详细,大家可以根据自己的需求进行选择... 目录方案一:延迟关联 (Deferred Join)方案二:有序唯一键分页 (Cursor-based Paginatio

Python实现常用文本内容提取

《Python实现常用文本内容提取》在日常工作和学习中,我们经常需要从PDF、Word文档中提取文本,本文将介绍如何使用Python编写一个文本内容提取工具,有需要的小伙伴可以参考下... 目录一、引言二、文本内容提取的原理三、文本内容提取的设计四、文本内容提取的实现五、完整代码示例一、引言在日常工作和学

Redis中的常用的五种数据类型详解

《Redis中的常用的五种数据类型详解》:本文主要介绍Redis中的常用的五种数据类型详解,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Redis常用的五种数据类型一、字符串(String)简介常用命令应用场景二、哈希(Hash)简介常用命令应用场景三、列表(L

python中time模块的常用方法及应用详解

《python中time模块的常用方法及应用详解》在Python开发中,时间处理是绕不开的刚需场景,从性能计时到定时任务,从日志记录到数据同步,时间模块始终是开发者最得力的工具之一,本文将通过真实案例... 目录一、时间基石:time.time()典型场景:程序性能分析进阶技巧:结合上下文管理器实现自动计时

C++ Primer 标准库vector示例详解

《C++Primer标准库vector示例详解》该文章主要介绍了C++标准库中的vector类型,包括其定义、初始化、成员函数以及常见操作,文章详细解释了如何使用vector来存储和操作对象集合,... 目录3.3标准库Vector定义和初始化vector对象通列表初始化vector对象创建指定数量的元素值

C#中的 Dictionary常用操作

《C#中的Dictionary常用操作》C#中的DictionaryTKey,TValue是用于存储键值对集合的泛型类,允许通过键快速检索值,并且具有唯一键、动态大小和无序集合的特性,常用操作包括添... 目录基本概念Dictionary的基本结构Dictionary的主要特性Dictionary的常用操作