Unity 之 使用后处理的方式实现暗角效果
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
Unity 之 后处理URP工程实现边角压暗效果
一URP工程配置
-
在Hierarchy界面创建空物体
GameObject
右键选择Volume
菜单下的Global Volume
。
创建后的结果
-
设置Volume的Profile点击右侧的New新创建一个配置文件或者新建文件夹右键选择
Create
->Volume Profile
创建完成后赋值过去
-
添加边角压暗效果Vignette组件
Add Override
->Post- processing
->Vignette
:
-
组件内容从上到下依次是颜色中心点强度平滑度圆
-
开启摄像机的Post Processing选项
-
运行看下效果
二代码调用
创建代码命名为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 |