【案例】距离限制模型透明

开发平台:Unity 2023
开发工具:Unity ShaderGraph

一、效果展示


在这里插入图片描述

二、路线图


在这里插入图片描述

三、案例分析


核心思路:计算算式:透明值 = 实际距离 / 最大距离 (实际距离 ≤ 最大距离)

3.1 说明 | 改变 Alpha 值

在 Shader 中,RGB颜色范围表现有 (0-1)/(0-255)两种值形式。在 ShaderGraph 中为(0-1)。

3.2 说明 | 获取模型与相机距离

在这里插入图片描述
ShaderGraph 提供

  • Postion(位置节点)标记材质应用的模型对象。
  • Camera(相机节点)映射所有相机类信息(包含 CameraURP CameraCinemachine.Camera


目标是计算相机与模型的世界距离。因此 Position.Space 项限定 World (世界空间)。
Distance (距离计算节点)计算 Vector 类型值。如图传入相机 Postion 与 模型 Positon。与程序中 Vector3.Distance() 一致。

效果表现中,实际不需要一直要求模型保持一定程度的透明化表现。增加了 MaxDistance / MinDistance 变量限制效果表现的距离。因此引入 Clamp(值域节点),表现与程序 Math.Clamp() 一致。

3.3 说明 | 计算 alpha 值

在这里插入图片描述
参考 核心思路 计算算式。ShaderGraph 提供常规计算节点,如

  • Subtract(减法计算节点)
  • Divide(除法计算节点)

同理,为控制透明度表现力,增加 MaxAlpha / MinAlpha 变量管理。当然增加 Color 变量管理材质颜色也是可以。

关于限制上使用 Lerp(插值节点)
  Lerp 本质上具有 Clamp 的性质,仅在结果上做出线性插值的补充,但最大范围值不会超越其透明表现。仍可以使用 Clamp(值域节点)作为最终输出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值