UE4 材质学习笔记01(什么是着色器/PBR基础)

1.什么是shader

着色器是控制屏幕上每个像素颜色的代码,这些代码通常在图形处理器上运行。

现如今游戏引擎使用先进的基于物理的渲染和照明。而且照明模型模型大多数是被锁定的。

因此我们创建着色器可以控制颜色,法线,粗糙度,金属度,即物体的表面属性,然后游戏引擎自己会为物体照明,着色器控制的是材质属性,就像上面说的那些,而不是光线。

所以我们创建着色器时就专注于左栏的内容,让游戏引擎为我们照明。

1.1介绍UE4材质编辑器的使用。

下面这个时材质的预览界面,右下角可以切换不同的形状,另外左上角还可以切换透视视图和正交视图

然后左上角这个地方可以切换不同选项来查看模型,右面的显示可以隐藏或者显示网格,背景或者统计数据。

2.PBR基础

1.什么是PBR

PBR是基于物理的渲染,过去计算机图形只是试图模仿光线的外观,但是使用PBR是在模拟光线的实际行为。这样可以创建更逼真的图像。

PBR有两个主要组成部分,光照属性和表面属性。

光照属性主要由游戏引擎本身控制,表面属性则是由创建的着色器定义它们

2.光照属性

首先先来了解一下光照属性。

光可以来自两种类型的光源:直接光源和间接光源。

直接光源:光从单个方向射入,直接照射到物体表面

间接光源:光从各个方向射入,并在周围环境中反弹,才到达物体表面

在光线照射到表面后,还会发生漫反射和镜面反射以及其它的一些现象,但是我们先来研究这两个最常见的现象。

镜面反射:在一个主要聚焦方向上离开表面

漫反射:在所有方向上离开表面

如果我们将入射和出射的情况结合起来,就会得到四种主要的光表面相互作用

在现实中,这四个的区别几乎不存在,但在计算机图形学中,用这种方式来分解时很方便的,这样我们就可以开发出处理每一个情况的方法。

下面我们来看一下这四个的图像实例

3.表面属性

1.BaseColor

下面是一个基础颜色纹理的例子。

可以看到它是不包括任何光照或者阴影的,右下角是真实世界中一些物体的颜色的实际颜色

2.Normal

下面是一个法线贴图的示例

3.Specular

下面是一个Specular贴图的示例。

虽然反射贴图大部分都应该是0.5,但是很明显裂缝是不应该反射的,所以最好的反射贴图就是将一个裂缝的贴图*0.5.

4.Roughness

下面是粗糙度贴图示例

5.Metallic

当在材质编辑器的根节点给金属度赋值的时候,这本质上是两个材质或者两个着色器合一,会分别由一个着色器来定义金属物体和非金属物体,而你输入的值会决定你使用哪一个着色器

当金属度是0的时候,基础颜色会是物体的漫反射,输入到Specular的值会决定物体的反射率在0-8%之间。但是对于金属度为1的物体,输入的颜色会转变成反射率,并且无论向高光输入什么值都会被忽视掉,并且现在漫反射总是黑色。并且金属度是非黑即白的,因为世界上并没有介于金属与非金属之间的物体

如果一个物体的表面是金属的,那么它的SRGB 是要大于180的。下面这个是上面示例里鹅卵石的金属度贴图,很明显这并不是金属,所以它是黑色的。

另外还有一个AO贴图,虽然这个是光照属性里的,但是这里也说一下

这基本上是一个间接漫反射的乘数,这样物体就不会在不该有的地方得到漫反射。AO和法线贴图都是烘焙出来的

相关推荐
郝学胜-神的一滴1 天前
Three.js 材质系统深度解析
javascript·3d·游戏引擎·webgl·材质
渲吧-云渲染7 天前
破译真实感:渲染参数进阶指南——告别塑料感,唤醒材质生命力
材质
ue星空9 天前
UE材质World Position 和 Object Position
材质
zxc24460393411 天前
gpu instancer crowd 使用自定义材质并且只修改单个物体的材质参数
unity·材质
渲吧-云渲染19 天前
材质:3D渲染的隐形支柱
3d·材质
bug总结1 个月前
Three.js 实战:使用 PBR 贴图打造真实地面材质
材质·贴图
向宇it1 个月前
【unity游戏开发入门到精通——3D篇】3D光源之——unity使用Lens Flare (SRP) 组件实现太阳耀斑镜头光晕效果
游戏·3d·unity·游戏引擎·材质
向宇it1 个月前
【unity组件介绍】URP Decal Projector贴花投影器,将特定材质(贴花)投影到场景中的其他对象上。
游戏·3d·unity·c#·游戏引擎·材质
top_designer1 个月前
3D材质总监的“光影魔法”:用Substance Sampler AI,“擦除”照片中的光影
人工智能·3d·新媒体运营·aigc·游戏程序·材质·材质设计师
山海鲸可视化1 个月前
模型材质一键替换~轻松还原多种三维场景
webgl·数字孪生·材质·3d模型·三维渲染