zoukankan      html  css  js  c++  java
  • UE4_材质/纹理

    PBR材质基本上是以下几张纹理的“融合”

    1.基本颜色 

    2.Normal 法线信息,体现凹凸感

    3.AO 环境光遮蔽 表面光线的遮蔽效果

    4.Roughness 粗糙度

    5.Metal 金属度

     关于尺寸,一般都是1:1,且是2的n次幂。

    注意:可以不是1:1,但长宽一定要是2的n次幂。

    原因: 因为UE4使用Mipmap(多级渐进式纹理)进行优化,为纹理生成多张缩小两倍的纹理,优化性能和远距离视觉表现(如512*512、256*256、128*128).

    可以把下面这个调成NoMipmaps关掉这个功能

    纹理压缩格式

    导入贴图的时候,不管源文件什么格式,是否压缩,在UE4里都会被默认的压缩(或扩容)成同样的大小。

    压缩的设置如下:

     比较常用的,第一个默认

    第二个法线

    第三个Mask,只保留灰度图可用

    偶尔用到HDR

    其余的都不是很常用

    灰度调整与伽马矫正

    因为人眼对亮度的感知和物理功率不成正比,而是幂函数的关系,这个函数的指数通常为2.2,称为Gamma值。
    打个比方,功率为50%的灰色,人眼实际感知亮度为
    而人眼认为的50%中灰色,实际功率为
    所以RGB中的灰度值,为了考虑到较小的存储范围(0~255)和较平衡的亮暗部比例,所以需要进行Gamma校正,而不是直接对应功率值,因此RGB值RGB颜色值不能简单直接相加,而是必须用2.2次方换算成物理光功率后才能进行下一步计算。
     
    修正:

    第一种方法,把贴图的sRGB关掉,

     然后调整为线性

    第二种方法:

    直接改为masks

     

    前向渲染和延迟渲染

    前向渲染是先进行灯光和光栅化的计算,在进行深度检测   缺点:要求灯光不能太多

    延迟渲染是先进行深度检测,再进行灯光和光栅化的计算    缺点:因为需要额外分配一块G内存,所以会更加占用资源

    一般的渲染过滤:

    第一步,距离剔除  忽略掉与摄像机距离超过一定数值的物体

    第二步,视锥剔除  忽略掉视锥以外的物体

    第三步,遮蔽剔除  检测每个模型的可见性

    第四步,深度检测  检测处理部分被遮挡的物体

    因为延迟渲染是 先做了深度检测,再进行光栅化,所以如果材质半透明的话会出现问题。这也是延迟渲染中半透明实现起来困难的原因。

    可以在LightingMode里面单独设置前向渲染

    两个半透明物体的排序问题

    深度测试测试的是坐标,所以如果一个大球一个小球他们的位置相同,会随机挑一个当前面的。

    强制渲染排序

    手动调整渲染排序,找到Rendering,

     把外面的调到1,里面的默认是0,所以不论在哪个视角,都会优先渲染优先级更高的物体。只有当十分确定物体1一定要比物体2渲染的早才能使用该设置。

       

  • 相关阅读:
    Redis的主从复制
    JVM之jps命令
    ThreadLocal源码分析
    ThreadLocal初体验
    Redis的逐出算法
    Redis的删除策略
    DagScheduler 和 TaskScheduler
    数据挖掘的数据预处理
    日志实时收集和计算的简单方案
    spark ml 的例子
  • 原文地址:https://www.cnblogs.com/reluctante1/p/13193664.html
Copyright © 2011-2022 走看看