Unity3D 5 官方教程:标准着色器

2024-05-25 17:08

本文主要是介绍Unity3D 5 官方教程:标准着色器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Unity5 引入了名为标准着色器的一种新型内建着色器。此着色器被设计用于代替大量在以前的Unity版本里被使用的旧着色器——它代替了用于渲染“真实世界”物体如石头石块、木头、玻璃、塑料、金属等等的所有着色器。
当使用这个在创建一个新材质时总是被选为默认的着色器时,不再需要从一个长长的着色器类型列表中决定,因为它支持大量特性的结合(反射,bump?,透明,等等)。标准着色器支持所有这些,并且通过简单地使用或不使用在材质编辑器中各种各样的纹理槽和参数,它的特征可以被启用或不启用。
标准着色器也包含了明显比以前更多的,基于物理着色的高阶光照模型。
基于物理渲染(简称为PBS)模拟在某种程度上仿照现实的,材质和光照之间的交互。PBS近期才在实时图形领域中称为可能。光照和材质都按直觉和现实那样存在时,PBS会在最佳状态工作。
我们PBS背后的想法是,创建一个用户友好的方式在不同的光照环境下实现连续的、看起来真实的景象。它建模了光在现实中如何表现,没有使用不确定是否有效的点对点模型。
为了如此,它遵循了物理规则,包括能量守恒(意思是物体不会反射多于它们所接受的光),菲涅尔反射(入射角越小,反射越明显),以及表面如何阻隔自身(这被称为几何术语),除了别的以外。
标准着色器设计时默认是有坚硬表面(被称为“结构”材质),可以处理大多数真实世界材质,像石头,玻璃,陶瓷制品,黄铜制品,银器,或者橡胶制品。它甚至在像皮肤、头发或衣物这样不坚硬的材质上也完成得不错。
一个对所有模型都使用标准着色器的场景
Unity使用PBS创造了一个用户友好的方式来完成在所有光照条件下都连续的、看起来真实的景象。为了达成这一目的,它建模了光在真实世界里遵循物理规则时是如何行为的。
这里对比了在Unity先前版本中使用的旧的着色方法,有大范围不同类型的着色器可供选择。在这旧的办法里,每种着色器有它自己的专用目的——例如漫射、镜面、凸起的镜面、反射等等。
有了标准着色器,所有这些不同的要求被结合到被希望在所有材质类型上使用的单个着色器。好处是相同的光照计算在场景中的所有区域被使用,这给出了真实的、连续的、可信的光照分布和使用了此着色器的所有模型的阴影。

术语

有一些在Unity里讨论PBS时非常有用的概念,你应当尽量对它们熟悉。这些包括了:
能量守恒——这表明如下事实:物体从不反射多于它们所接收到的光。材质越光滑,漫射越少;表面更平滑,会更强、更小地得到高光,等等。

表面上每个点的光照渲染被计算为等于它从环境中接收到的光照。粗糙表面的小侧面被来自更宽区域的光所影响。更平滑的表面产生更强、更小的高光。点A向摄像机反射来自光源的光。点B呈现了来自天空环境光的蓝色;点C反射来自了周围地面颜色的光照。
HDR——高动态范围(High Dynamic Range),指的是在常见的0~1范围之外的颜色。例如,太阳可以轻易地十倍于蓝天的光亮。更深入的讨论参见HDR手册页面。

一个使用了HDR的场景。轿车窗上反射的阳光比场景里其它物体更明亮,因为它用HDR处理了。
以下是标准着色器的子部分,原教程分为11块内容,这里分为?个部分。
子部分:内容和环境,金属和镜面工作流
子部分:材质参数(一)
子部分:材质参数(二)
子部分:材质参数(三)

这篇关于Unity3D 5 官方教程:标准着色器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

Python虚拟环境终极(含PyCharm的使用教程)

《Python虚拟环境终极(含PyCharm的使用教程)》:本文主要介绍Python虚拟环境终极(含PyCharm的使用教程),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录一、为什么需要虚拟环境?二、虚拟环境创建方式对比三、命令行创建虚拟环境(venv)3.1 基础命令3

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

python连接本地SQL server详细图文教程

《python连接本地SQLserver详细图文教程》在数据分析领域,经常需要从数据库中获取数据进行分析和处理,下面:本文主要介绍python连接本地SQLserver的相关资料,文中通过代码... 目录一.设置本地账号1.新建用户2.开启双重验证3,开启TCP/IP本地服务二js.python连接实例1.

Python 安装和配置flask, flask_cors的图文教程

《Python安装和配置flask,flask_cors的图文教程》:本文主要介绍Python安装和配置flask,flask_cors的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,... 目录一.python安装:二,配置环境变量,三:检查Python安装和环境变量,四:安装flask和flas

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

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

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