unity 默认渲染管线材质球的材质通道,材质球的材质通道

发布于:2024-10-09 ⋅ 阅读:(55) ⋅ 点赞:(0)

标准渲染管线——材质球的材质通道

文档,与内容无关,是介绍材质球的属性的。
https://docs.unity3d.com/2022.1/Documentation/Manual/StandardShaderMaterialParameters.html

游戏资源中常见的贴图类型
https://zhuanlan.zhihu.com/p/260973533
十大贴图常用贴图介绍 Shader的诞生 
https://www.bilibili.com/read/cv7860546/
『材质贴图』正确打开方式 ,只需要听听得懂的地方就行了
https://www.bilibili.com/video/BV1j4411x7PG/

可能用的,如何制作贴图
https://blog.csdn.net/GoodCooking/article/details/142669974

在Unity的标准渲染管线中,使用默认材质(Standard Material)和默认的Shader(Standard Shader)时,贴图的命名和对应关系如下:

贴图类型 命名后缀 对应Shader属性 文件后缀
漫反射贴图(Albedo Map) _MainTex _MainTex *_diffuse.png*_color.png 或者*_albedo.png
金属度贴图(Metallic Map) _MetallicGlossMap _MetallicGlossMap *_metallic.png*_Gloss.png*_metalness.png
粗糙度贴图(Roughness Map) _MetallicGlossMap _MetallicGlossMap *_roughness.pngsmoothness.png
法线贴图(Normal Map) _BumpMap _BumpMap *_normal.png
高度贴图(Height Map) _ParallaxMap _ParallaxMap *_height.png*_disp.png
环境光遮蔽贴图(Ambient Occlusion Map) _OcclusionMap _OcclusionMap *_ao.png*_ambientocclusion.png
细节遮罩贴图(Detail Mask) _DetailMask _DetailMask *_detail_mask.png
自发光贴图(Emissive Map) _EmissionMap _EmissionMap *_emissive.png
细节漫反射贴图(Detail Albedo x2) _DetailAlbedoMap _DetailAlbedoMap *_detail_albedo.png

其他

贴图类型 命名后缀 对应Shader属性 文件后缀
高光贴图(Specular Map) _SpecGlossMap _SpecGlossMap *_specular.png
透明度贴图(Opacity Map) _MainTex _MainTex (Alpha通道) *_opacity.png
置换贴图(Displacement Map) _ParallaxMap _ParallaxMap *_displacement.png*_height.png
凹凸贴图(Bump Map) _BumpMap _BumpMap *_bump.png
边缘贴图(Edge Map) 不适用 不适用 不适用
环境贴图(Environment Map) 不适用 不适用 不适用
折射贴图(Refraction Map) 不适用 不适用 不适用

不适用意思的意思是:Unity的标准Shader不直接支持

形变通道:
凹凸:会改变光线在模型表面的凹凸的感觉,但是不会改变物体的结构
法线:会改变光线在模型表面的凹凸的感觉,不会改变物体的结构,
区别:凹凸是通过灰度图片去描述凹凸的程度,法线是通过法线贴图描述物体的凹凸程度
置换:可以使物体表面产生凹凸的通道,不同于凹凸和法线,置换会改变模型的网格,但是不会修改原来的网格。
置换会占很多内存,且拖慢渲染速度!
有法线先用法线。

颜色信息:漫反射
反射信息:反射,光泽度
高度信息:法线,凹凸,置换

如何使用代码修改材质球的某个属性

在这里插入图片描述

在这里插入图片描述

使用代码方式访问的方式:
找到要修改的属性,比如颜色,找到之后确定属性的类型,然后Set 类型,
比如设置金属度,找到:Metallic,类型是range,就设置float ,参数中的strng 就是:_metallc 数值就是0-1.

在这里插入图片描述

// 设置金属度

     mat.SetFloat("_Metallic", 1.0f);