Unity 之 使用后处理的方式实现暗角效果

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

Unity 之 后处理URP工程实现边角压暗效果

一URP工程配置

  1. 在Hierarchy界面创建空物体 GameObject右键选择Volume菜单下的Global Volume

    创建后的结果

  2. 设置Volume的Profile点击右侧的New新创建一个配置文件或者新建文件夹右键选择Create -> Volume Profile

    创建完成后赋值过去

  3. 添加边角压暗效果Vignette组件Add Override -> Post- processing -> Vignette:

  4. 组件内容从上到下依次是颜色中心点强度平滑度圆

  5. 开启摄像机的Post Processing选项

  6. 运行看下效果


二代码调用

创建代码命名为PostProcessingProfile并挂载到Global Volume 物体上如下图

代码内容如下:
测试用例按下A设置强度为1显示效果按下S设置强度为0关闭效果

using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.Rendering.Universal;

public class PostProcessingProfile : MonoBehaviour
{    
    // 后处理的配置容器
    private Volume _volume;
    // 根据Inspector面板上的组件创建对应类型变量
    private Vignette _vignette;
    
    void Start()
    {
        // 获取容器
        _volume = GetComponent<Volume>();
        // 获取此容器下添加的组件
        _volume.profile.TryGet(out _vignette);
    }

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.A))
        {
            SetIntensity(1);
        }
        if (Input.GetKeyDown(KeyCode.S))
        {
            SetIntensity(0);
        }
    }

    // 设置颜色
    void SetIntensity(Color color)
    {  
        _vignette.color.Override(color);
    }
    
    // 设置中心点
    void SetIntensity(Vector2 vector2)
    {  
        _vignette.center.Override(vector2);
    }
    
    // 设置强度 x:0~1
    void SetIntensity(float x)
    {  
        _vignette.intensity.Override(x);
    }
    
    // 设置平滑度 x:0~1
    void SetSmoothness(float x)
    {  
        _vignette.smoothness.Override(x);
    }
    
    // 是否是正圆
    void SetRounded(bool isRound)
    {  
        _vignette.rounded.Override(isRound);
    }
}

三实现原理

相关推荐Unity 之 Post Processing后处理不同项目配置URP项目配置

Post Processing
后期处理是指在摄影机绘制场景之后但在屏幕上渲染场景之前出现的全屏图像处理效果的通用术语。后期处理可以大大提高产品的视觉效果只需很少的设置时间。

Post Processing 官方文档: https://docs.unity3d.com/Packages/com.unity.postprocessing@3.2/manual/index.html

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

“Unity 之 使用后处理的方式实现暗角效果” 的相关文章