Material 基础
2020-03-22 本文已影响0人
托尼章
Texture
- 导入的Texture的大小是有要求的,宽高必须是2的整数次幂例如:
1x1,2x2,4x4,8x8....1024x1024,4096x4096,8192x8192 或者是 512x1024 之类的.否则不会生成多级渐变纹理. - 纹理在导入时会被压缩
- 不同平台压缩方式不同,PC平台下的DirectX使用BC(DXTC旧称)压缩
- BC : Block Compression 块压缩
- DXTC : DirectX Texture Compression
- 压缩有不同的类型:BC1,BC3,BC7,DXTC1,DXTC3,DXTC5等
- BC1 ,DXT1 : 不带透明通道
- BC3,DXT5:带透明通道,
- 法线贴图使用特殊的BC5压缩,
普通方式无法正确处理法线贴图中的颜色组合
纹理流送 - MinMap - LOD
- 纹理流送池:UE4在内存中为纹理预留空间的空间,其大小可用r.Streaming.PoolSize属性来设置.此容量如果太低会导致引擎使用质量很低的MinMap,导致纹理变得很模糊.
- 纹理流送 : 引擎确定在何种情况下需要使用何种纹理MinMap等级的过程.
- 不使用MinMap会产生很多噪点,镜头远处的纹理相当于被模糊了.
- 离镜头越远,使用越小的MinMap
- 使用MinMap与纹理流送可以提升引擎加载运行速度.
- UI纹理是个特例,其分辨率不需要是2的整数次幂,不需要MinMap,因为UI纹理永远不会出现在距离镜头很远的地方.
- 每个材质最多有16个纹理采样器,因为材质内部会使用几个采样器,所以大约有13个纹理采样器可供添加.
基于物理的渲染(PBR)
- PBR : Physical Based Rendering 基于物理的渲染.
Metallic - Specular - Roughness
金属度 - 高光度 - 粗糙度
0 - 0.5 - 0.5
模拟光照和着色的真实模型,可以在所有光照环境下产生出色的效果.
PBR工作原理:现实中的一切都多多少少存在一定的反射现象
材质输入
- BaseColor
- Metallic
- Specular
- Roughness
- Normal
- Emissive
- WorldPositionOffset:本质上使用顶点着色器来偏移材质所在的模型.植被的摆动,窗帘的摆动,等仅仅视觉上的摆动,它不支持碰撞.
- 等等...
哪些材质输入被启用或禁用由材质域(Material Domain) 混合模式(Blend Mode) 着色模型(Shading Model)等材质属性共同决定.
材质属性
着色模型(Shading Mode)
- Default Lit : 默认光照
- UnLit : 不使用光照
- Subsurface
混合模式
- Opaque 不透明模式
- Mask 遮罩模式:要么0要么1,没有渐变,算是透明模式的一种简化,比
透明模式
要高效的多.非常适合栅栏,草地,树叶等类似物体的渲染. - Translucent 透明模式:开销非常大,小心使用,不要大量滥用.
Two Sided
勾选后,材质不会被背面剔除,背面的法线应该翻转.
常用材质表达式
-
纹理采样: 快捷键 T
TextureSample.png -
常量:快捷键 1 2 3 4
constant.png -
纹理坐标: 快捷键 U
TexCoord.png -
平移: 快捷键 P
Panner.png -
乘法: 快捷键 M
multiply.png -
插值 快捷键 L
lerp.png
不常用材质表达式
-
BlendAngleCorrectedNormals:两个法线相乘?
BlendAngleCorrectedNormals.png -
顶点颜色
vertexcolor.png -
世界坐标顶点法线
微信图片_20200317122732.png