Unity Shader - Content and Context 内容与上下文

目录:Unity Shader - 知识点目录(先占位,后续持续更新)
原文:Content and Context
版本:2019.1

Content and Context

内容与上下文

一想到Unity的照明效果,就想到它很容易区分出一些概念:

  • 内容:被光照到且需要渲染的对象(重点是对象)
  • 上下文:已在场景中且作用到对象上的灯光(重点是灯光)

The Context

上下文

照亮一个对象中,要首先了解哪些光源作用到了该对象上是很重要的一步。在场景中有直接作用光:在场景中放置好的灯光对象。也有间接作用光,如:从其他对象上的反射光。这些都会涉及到对象的材质,都影响最终在相机下物体表面的结果。

这有点不太容易理解,通常我们认为的"Content"内容,也可能是其他对象上下文的一部分。

一个比较好的例子:坐落在沙漠中的建筑物。该建筑物接收到的光效有来自skybox(天空盒)的,也可能来自大地反射回弹过来的光。

再如:站在建筑物墙外附近的角色情况。对角色而言,建筑物可以是灯光上下文的一部分,因为它可能会投影,可能会将其他光反弹到角色上,也有可能角色又反弹从建筑物反弹过来的光。

The Default Lighting Contex

在Unity启动时会显示一个空场景。该场景已默认添加了一些光源,环境光,天空盒的反光,和一个方向光。任意添加一个Unity内置对象(GameObject->3D Object中的对象),看起来都会接收到所有刚提到的那些光源。

在场景天添加一个Sphere球体,看看默认的灯照上下文效果。
在这里插入图片描述
添加进来的Sphere球体,(材质的Shader)将默认使用Standard Shader。在相机下Sphere看起来是这样的:
在这里插入图片描述
注意球体边缘反射的光正如周围的微少的环境光颜色,从棕色(底下)到天空蓝色(上面)。这就是默认空场景中的光源都来自天空盒和方向光。

当然这些都是默认场景灯光,单一个方向光与天空反射光可能在其他情况就不够用了。你可以添加更多的光源和反射光探测器:

进一步查看反射光与与光探测器如如何工作的,请查阅light probesreflection probes

Skyboxes

天空盒

天空盒,可以baked(烘焙成供以采样数据)或是procedural(实时程序处理),它也是光照设置的一部分内容。它除了可以渲染天空外,也可用于控制环境光和物体反射内容。Procedural Skybox(实时处理的天空盒)允许你直接设置颜色和在天空中创建出一个像太阳的圆形图像而不想额外的位图,了解更多内容查阅Skybox Documentation

反射天空盒对于场景中许多对象都很有用,特别是户外场景,大多情况要实现黑暗区域的对象反射不一样内容,如:小巷子里或是浓密的森林里,或是需要在每个室内需要反射效果的。

为了满足这些不同的反射需求,Unity提供了reflection probes(反射探测器),允许你在场景中对空间中某一点的环境进行采样,作为该点附近任何物体的环境光和反射源,而不是反射默认的天空盒。在天空盒不适合的地方你可以将Reflection probes放置在场景中任何的地方。

Global Illumination

Global Illumination(全局光照),简称:GI

GI是Unity中重要的概念。Unity设计中Standard Shader与GI系统能够很好的配合使用。GI系统负责创建和光源反弹跟踪,光源来自材质的自发光和环境中发出的光。你可在这查看详情Global Illumination

上下文(光源)是决定图像整体外观关键部分。在这例子你可以看到在不改变内容(被渲染对象)和相机保持不变时,改变上下文(光源,这里的光源是skybox)后场景的反射的变化。
在这里插入图片描述

The Content

内容

内容术语上指定是再场景中被渲染的对象。他们的外观是由应用于该对象上的材质中的灯光(材质中的灯光有无作用由Shader中决定有无应用)作用决定的。

The Material Editor

材质编辑器

Inspector中查看一个使用Standard Shader的材质,编辑器中显示所有的参数有:纹理,混合模式,蒙版(遮罩)贴图和其他的贴图。看一眼就大概知道哪些是正使用着。Standard Shader是数据驱动的:Unity只使用材质中用户可配置的相关代码。另外如果材质中的功能或纹理没使用到,Unity将优化后而不会有消耗。
Tip: You can Ctrl+click on the texture thumbnails for a large preview, which will also let you check the contents of the color and alpha channels separately!
提示:你可以Ctrl+左键点击材质编辑器中的纹理缩略图来查看比较大的预览图,也可以点击颜色,alpha通道设置对应的参数。

How to create a material

如何创建材质

Standard shader允许许多的参数设置,为了实现多种材质类型而需。参数的设置可以是纹理贴图或是颜色拾取器和滑动器。通常UV映射需要与纹理结合使用,来描述网格的哪部分引用纹理贴图的哪部分。

材质中的纹理你可以从2D软件绘画,或是合成,也可以从3D软件中渲染或烘焙出来,你也可以种高模中,除了可以生成反射率、高光、和其他贴图,也可以生成法线贴图和遮挡贴图。这些流程因你需求使用而不同。

通常Standard shader没有纹理有会有光效效果(阴影,高光,等等)。PBS的优点之一就是光照效果如你想的逼真一样,如果想用纹理中带光照信息的方式来实现是不可能的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值