Unity-Post Processing

1. 基础使用
  1. 在Package Manager 中安装 Post Processing
  2. 在 Project 中创建 Profile 配置文件
  3. 创建空物体,并添加 Post Process Volume 组件
  4. 将配置文件拖拽到 Volume 组件上,勾选 isGlobal 全局响应
  5. 将创建的空物体右上角定义为 Post Process Layer
  6. 选中主摄像机,添加 Post Process Layer 组件,并在组件中选择刚创建的 layer 层
2. 基础使用
  1. Ambient Occlusion 环境光遮蔽
    用于增强3D游戏中的暗部效果,使画面更真实更有层次感。
  2. Bloom 辉光效果
    给一个强光源一个外发的光晕
名称 效果
Intensity 强度
Threshold 阈值
Dirtiness 光照的效果材质
  1. Chromatic Aberration 色差效果(边缘动态模糊)

  2. Vignette 边角压暗

  3. Grading Curves 色阶 (需点击overriding方可更改)

  4. Auto Exposure :自动曝光,根据图像包含的亮度级别范围动态调整图像的曝光

    名称 描述
    Filtering 过滤器,设置直方图的上下百分比,找到稳定的平均亮度。超出此范围的值将被丢弃,不会影响平均亮度。
    Minimum 设置环境光当中最小平均亮度
    Maximum 设置环境光当中最大平均亮度
    Exposure Compensation 曝光补偿,设置中灰色值来补偿场景的全局曝光。

    Adaptation settings:

    名称 描述
    Type 选择适应类型。progressive的自动曝光。fix的自动曝光。
    Speed Up 设置从黑暗环境到光明环境的适应速度.
    Speed Down 设置从光亮环境到黑暗环境的适应速度。
3. 代码操作
  1. 常规使用
using UnityEngine;
using UnityEngine.Rendering.PostProcessing;

public class UnityEffects : MonoBehaviour
{
    
    
    void Start()
    {
    
    
        // 获取
        var volume = GetComponent<PostProcessVolume>();
        Vignette vignette;
        volume.profile.TryGetSettings(out vignette);
        // 修改(某一属性)值
        vignette.intensity.value = 1;
        vignette.intensity.Override(1);
    }
}
  1. 纯代码创建
using UnityEngine;
using UnityEngine.Rendering.PostProcessing;

public class UnityEffects : MonoBehaviour
{
    
    
    PostProcessVolume volume;
    Vignette vignette;

    void Start()
    {
    
    
        // 创建到内存中
        vignette = ScriptableObject.CreateInstance<Vignette>();
        vignette.enabled.Override(true);
        vignette.intensity.Override(1);
    }

    void OnDestroy()
    {
    
    
        // 释放
        RuntimeUtilities.DestroyVolume(volume, true, true);
    }
}

4. post-process layer 设置
  1. Anti-aliasing 反锯齿
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_50682713/article/details/124656980