UE4学习笔记 材质
总共分3大部分,首先介绍如何定义PBR、材质域和标准材质构建块。然后介绍材质实例和主材质。
材质
什么是PBR(Physical Based Rendering):
PBR - 基于物理的渲染,意味着我们根据事实模拟光线,光线效果将会非常自然,其真实度非常高。
基于物理的渲染在所有场景中都能保持一致
- 其实PBR是两个做卡通渲染风格的工作室合作的产物,因此PBR在卡通渲染方面也很不错
PBR有助于我们变准话美工管线,因为材质无论遇到怎样的光照都能做出相同反应(这意味着我们不需要根据物体的光照环境创建多个材质或者纹理)。
This is the same type of redering pipeline that you will find in programs like Vary.
材质域(Material Domain):
只需要改变材质域、混合模式和着色模式就可以变换材质来满足各种不同的需求。
Blend Mode 决定了材质的颜色,以及材质与背景融合的方式
Shading Model 决定了输入将如何组合来创建材质的最终颜色。
【如果你要创建玻璃,就可以将BlendMode设置成opaque,根据需求可以将Shading Model设置为默认发光或者不发光】
什么是材质(Material):
材质是UE4用于表示并调整对象纹理外观的方式,使用材质编辑器创建。
材质实际上是由一块一块的HLSL(高级着色器语言)组成,UE4材质编辑中的许多函数都是直接由HLSL函数构成的。
材质需要先编译才能在游戏中使用或者显示。
在材质编辑器中点击保存或者编译都可以编译材质,材质一旦被编译就不能在项目运行时被更改。
但是我们可以使用一种材质将其应用到项目中的各种不同材质上。
材质实例(Material Instance):
上个模块我们提到不可以在运行时更改材质,这个特性会对当下的游戏开发带了不少的困扰,而材质实例就是为了解决这个问题存在的。
材质实例是材质的特殊版本。它允许我们在游戏运行的时候修改材质中的参数和纹理而不需要重新编译材质。
当你使用单独的材质实例的时候,其性能优势很有限,而当你使用大量的材质实例的时候他的性能优势就会逐渐显示出来。
可以设置一个主材质,然后在材质实例中调整各种参数而不需要编写大量的Shade