材质和着色器

材质和着色器
最新回答
云风未归

2023-10-07 00:23:28

在Unity中,渲染状态本质是通过材质呈现给开发者的

那么材质是啥呢?
材质是着色器的容器

着色器又是啥呢?
着色器是一种用于定义GPU应该如何渲染输入顶点和纹理数据的简短程序
本身没有必要的状态信息来完成任何有价值的工作
需要诸如漫反射纹理、法线映射和光照信息之类的输入,并有效地规定了为了呈现传入的数据需要设置哪些渲染状态变量

PS:
着色器最初仅实现为处理对象的光照和着色
现在已经有额外的功能了,但是还用这个名字

其关系:
每个着色器都需要一个材质,每个材质必须有一个着色器

导入新场景中的网格,如果没有赋予材质,就会被自动赋予默认材质
如果需要对一个网格使用多个着色器,需要将多个材质赋予该网格的不同部位

如果想最小化渲染状态修改的频率,可以减少场景中使用的材质数量

Game窗口中的Stats弹出的 Batches 值共有8个批处理,该值严格等于渲染场景使用的Draw Call数量
(需要关闭影子显示以及静态动态批处理)