Material 基础

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

你可能感兴趣的:(Material 基础)