【光照】UnityURP[泛光Bloom]原理与实现

news/2025/10/16 9:55:22/文章来源:https://www.cnblogs.com/SmalBox/p/19144872

【从UnityURP开始探索游戏渲染】专栏-直达

泛光效果概述与发展历史

泛光(Bloom)是一种后处理效果,用于模拟真实世界中明亮光源或高反射表面产生的光晕现象。在Unity中,泛光效果经历了以下发展历程:

内置渲染管线时期‌:

  • 早期Unity版本中,泛光作为标准图像效果(Image Effects)的一部分,通过屏幕空间处理实现。

LWRP时期‌:

  • Unity推出轻量级渲染管线(Lightweight Render Pipeline)后,泛光效果被重新设计以适应移动*台,性能得到优化。

URP时期‌:

  • 2019.3版本后,LWRP更名为URP(Universal Render Pipeline),泛光效果成为URP后处理堆栈的核心组件之一,支持更广泛的*台和更高质量的渲染。

泛光实现原理

泛光效果的技术实现主要分为以下几个步骤:

亮度提取→模糊处理→最终合成→(色调映射 Tonemapping)

亮度提取

  • 首先从渲染图像中提取出高于特定亮度阈值的区域。这通常通过阈值比较和高通滤波实现。

模糊处理

  • 对提取的亮区进行多次降采样和模糊处理(通常使用高斯模糊或Kawase模糊),创建光晕扩散效果。

合成阶段

  • 将模糊后的亮区与原图像按特定强度混合,产生最终的泛光效果。

色调映射

  • 在HDR渲染管线中,泛光通常与色调映射(Tonemapping)协同工作,确保在高动态范围下效果自然。

URP中的泛光实现优化了传统方法,采用更高效的模糊算法和GPU加速处理,使其在移动设备上也能良好运行。

URP中泛光的具体实现

URP通过可编程渲染管线(SRP)架构实现泛光效果,主要特点包括:

  • 单Pass前向渲染‌:URP使用单Pass处理所有光源,相比内置管线的多Pass更高效。
  • SRP Batcher支持‌:通过批处理优化减少Draw Call,提高泛光等后处理效果的渲染效率。
  • 模块化设计‌:泛光作为后处理堆栈中的一个独立模块,可以灵活启用或禁用。
  • 跨*台兼容‌:URP泛光针对不同硬件*台进行了优化,确保在各种设备上都能获得良好效果。

亮度提取 URP具体实现

亮度提取是泛光效果的第一步,目的是从渲染图像中分离出需要产生光晕的高亮区域。URP采用以下技术实现:

  • 亮度计算‌:通过公式 0.2125 * color.r + 0.7154 * color.g + 0.0721 * color.b 计算像素亮度,其中绿色通道权重最高,符合人眼对绿色更敏感的特性。

  • 阈值处理‌:使用_BloomThreshold参数控制哪些像素参与泛光效果,只有亮度超过此阈值的像素才会被保。

  • 软过渡处理‌:为避免硬边缘,URP采用软过渡公式:

    hlsl
    half softness = clamp(brightness - _BloomThreshold + ThresholdKnee, 0.0, 2.0 * ThresholdKnee);
    softness = (softness * softness) / (4.0 * ThresholdKnee + 1e-4);
    half multiplier = max(brightness - _BloomThreshold, softness) / max(brightness, 1e-4);
    color *= multiplier;
    
    • 这种处理方式使得亮度在阈值附*有*滑过渡,避免出现明显分界线

模糊处理 URP具体实现

模糊处理是泛光效果的核心,URP采用优化的多级高斯模糊实现:

  • 降采样链‌:首先创建一系列降采样纹理,每级分辨率减半,形成图像金字塔。例如从全分辨率开始,依次生成1/2、1/4、1/8等分辨率的纹理。

  • 双Pass模糊‌:对每级纹理执行水*和垂直两个方向的模糊处理:

    • 水*模糊Pass:采样当前像素左右相邻像素,按高斯权重混合
    • 垂直模糊Pass:采样当前像素上下相邻像素,按高斯权重混合这种分离式模糊大幅减少了采样次数,从O(n²)降到O(2n)。
  • 模糊权重‌:URP使用优化的5-tap高斯核,权重分配如下:

    hlsl
    color += 0.4026 * tex2D(_MainTex, i.uv);// 中心像素
    color += 0.2442 * tex2D(_MainTex, i.uv01.xy);// 相邻像素
    color += 0.2442 * tex2D(_MainTex, i.uv01.zw);// 相邻像素
    color += 0.0545 * tex2D(_MainTex, i.uv23.xy);// 远距离像素
    color += 0.0545 * tex2D(_MainTex, i.uv23.zw);// 远距离像素
    
    • 这种权重分配在保证质量的同时最大化性能

合成阶段 URP具体实现

模糊后的亮区需要与原图像混合产生最终效果:

  • 上采样混合‌:从最低分辨率纹理开始,逐级上采样并与上一级结果混合,形成*滑的光晕渐变。

  • 最终合成‌:使用公式:

    hlsl
    fixed4 resColor = mainColor + _BloomIntensity * blurColor * _BloomColor;
    

    其中_BloomIntensity控制泛光强度,_BloomColor可为泛光添加色调。

  • 散射控制‌:通过_Scatter参数调节光晕的扩散范围,值越大光晕范围越广

如何与色调映射协同工作

在HDR渲染中,泛光效果需要与色调映射(Tonemapping)协同工作才能产生最佳效果:

  • HDR处理流程‌:URP首先在HDR空间完成泛光计算,最后应用色调映射将结果转换到显示器的LDR范围。
  • ACES色调映射‌:URP默认使用ACES(学院色彩编码系统)色调映射,它能:
    • 保留高光细节,避免过曝
    • 提供电影级的色彩响应
    • 与泛光效果自然融合。
  • 中性模式‌:对于需要精确色彩控制的项目,可使用中性色调映射模式,它对色相和饱和度影响最小,适合作为复杂色彩处理的起点。
  • 动态范围压缩‌:色调映射将HDR场景的宽动态范围压缩到显示设备能表现的范围内,同时保持泛光效果的自然过渡

Unity URP中使用泛光的完整示例

以下是在Unity URP项目中设置和使用泛光效果的完整步骤:

确保项目使用URP‌:

  • 通过Package Manager安装Universal RP包
  • 创建URP Asset并分配给Graphics和Quality设置

启用后处理效果‌:

  • 在URP Asset中勾选"Post-processing"选项
  • 为摄像机添加"Volume"组件

配置泛光效果‌:

  • 创建新的Volume Profile或在现有Profile中添加"Bloom"效果
  • 调整泛光参数(阈值、强度、散射等)

参数详解‌:

  • Threshold‌:控制哪些像素会参与泛光计算(亮度阈值)

  • Intensity‌:泛光效果的总体强度

  • Scatter‌:控制光晕的扩散程度

  • Tint‌:为泛光效果添加颜色色调

  • High Quality Filtering‌:启用更高质量的过滤模式

  • BloomExample.cs

    using UnityEngine;
    using UnityEngine.Rendering;
    using UnityEngine.Rendering.Universal;public class BloomController : MonoBehaviour
    {private Volume volume;private Bloom bloom;void Start(){// 获取Volume组件volume = GetComponent<Volume>();// 尝试获取Bloom效果if(volume.profile.TryGet(out bloom)){// 初始化泛光参数bloom.threshold.Override(1.0f);bloom.intensity.Override(1.5f);bloom.scatter.Override(0.7f);}}// 动态调整泛光强度public void SetBloomIntensity(float intensity){if(bloom != null){bloom.intensity.Override(intensity);}}
    }
    

性能优化建议

移动*台优化‌:

  • 降低泛光迭代次数
  • 使用较低的渲染分辨率
  • 限制泛光影响范围

质量与性能*衡‌:

  • 根据目标*台调整泛光质量设置
  • 在低端设备上考虑禁用或简化泛光效果

结合其他效果‌:

  • 泛光常与色调映射、色彩校正等效果配合使用
  • 注意效果叠加的性能消耗

【从UnityURP开始探索游戏渲染】专栏-直达
(欢迎点赞留言探讨,更多人加入进来能更加完善这个探索的过程,🙏)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/938041.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习Linux应该从哪里开始?

在工业控制、边缘计算、人工智能这些领域,有一句几乎约定俗成的话:“会不会 Linux,决定了你能走多远。”但对很多刚入门的工程师来说,Linux 看起来像个庞大又神秘的世界——命令行、驱动、内核、交叉编译、网络栈、…

P9403 [POI 2020/2021 R3] Les Bitrables

题意简明,不再阐述。 首先可以对当前两行(假设为第 \(i\),\(i+1\) 行)的情况分类。\(s_i\leq s_{i+1}\)。此时可以分为三种情况。 一种是从 0 处调 \(x\) 件物品(\(0\leq x\leq s_{i+1}\)),这 \(x\) 件物品显然对…

Cartesian MST

https://codeforces.com/gym/103098/problem/C 一开始以为对 \(u\) 相等的每组点都是直接用 \(H\) 的 mst 去连接,然后把 \(u\) 相等的每组点当成一个整体就是 \(G\) 的 mst 去连 \(n\) 组点。或是对 \(v\) 相等的每组…

P5609 [Ynoi2013] 对数据结构的爱

线段树维护 \(c_i\) 表示最小初值使根据题意经过节点表示区间 \([l,r]\) 过程中共减去 \(i\cdot p\),区间 \([l,r]\) 操作过程中最多减去 \((r-l+1)\cdot p\)。 区间合并就是 \[tr_{u,c_{x+y}}=\min\{\max\{tr_{ls,{c…

剪映高级感口播动态文字字幕排版预设标题入场出场动画素材850款

约220MB轻量合集,专为剪映专业版(Win/Mac)打造,集成850款高级感口播动态文字、字幕、标题、入场/出场动画,附带音效与动画效果,一键拖拽即可生成商业级字幕排版,大幅提升口播视频质感与剪辑效率。👉 👉 ↓载…

JavaScript 中的安全编码:10 个关键实践

JavaScript 中的安全编码:10 个关键实践 引言 JavaScript 作为现代 Web 开发的核心语言,几乎无处不在——从简单的前端交互到复杂的 Node.js 后端应用。然而,正是这种广泛的应用使 JavaScript 成为攻击者的主要目标…

2025 年最新推荐!国内优质球墨铸铁管厂家排行榜,涵盖市政 / 给水 / 水利工程适用产品

当前国内基础设施建设持续推进,球墨铸铁管作为供水、排水、燃气输送等工程的核心建材,市场需求日益增长。但市场中品牌繁杂,部分产品存在原材料劣质、工艺不达标等问题,导致管道抗压性差、易腐蚀,不仅增加工程返工…

STM32 代码

文章代码来自:B站:[江协科技]-STM32入门教程-2023版代码 了解STM32后对手机的一些理解: 智能手机作为2016年开始的移动端热潮的硬件载体。它和1970年后的微处理器和PC电脑,1990年后的互联网一样,是对硬件的一种标…

2025 年最新冷水机定制厂家排行榜:工业 / 防爆 / 低温 / 水冷 / 螺杆 / 超低温等多类型冷水机优质品牌推荐

在当前工业生产与商业运营中,冷水机作为控制工艺温度、保障设备稳定运行的核心设备,其品质与性能直接影响企业生产效率与成本控制。但冷水机市场品牌繁杂,部分产品存在质量不稳定、能效不达标、定制化能力弱等问题,…

2025 年飞机票预定公司最新推荐排行榜:聚焦专业诚信,覆盖特殊旅客与企业服务的口碑榜单

随着航空出行场景日益多元,从家庭出游的儿童机票预订到企业团队出行统筹,用户对预订服务的专业性、透明度与针对性需求不断升级。但当前市场仍存在痛点:部分平台航班信息滞后、隐形消费暗藏、特殊旅客服务缺失,售后…

2025 年水质测定仪厂家最新推荐排行榜:解析科技等优质企业实力领衔,助您精准选品多参数/便携式/cod快速/台式水质测定仪厂家推荐

随着环保意识提升与水质监测需求激增,水质测定仪市场规模持续扩大,但行业乱象也随之显现。部分厂商为抢占市场,推出检测精度不达标、功能简化的产品,导致用户难以获取准确监测数据,影响水质管理决策;同时,市场上…

2025 年电永磁吊具厂家最新推荐排行榜:涵盖多类型吊具优质厂家及专业选型参考大型电/全覆盖电/起重电永磁吊具厂家推荐

在当前工业物料搬运领域,电永磁吊具作为核心设备,其性能直接决定生产效率与作业安全。然而,市场现存诸多痛点:大量小型厂商缺乏核心技术,产品常出现吸力不足、能耗超标、故障频发等问题,不仅拖慢生产进度,更埋下…

Redis布隆过滤器 Redisson 汇总

一、Redis 布隆过滤器与 Redisson 简介 布隆过滤器(Bloom Filter)是一种概率型数据结构,用于快速判断一个元素 “是否存在于集合中”。它的特点是:优点:空间效率极高(远小于传统集合)、查询速度快(O (k),k 为…

2025 年电子散热器厂家推荐:镇江新区富利电子散热器厂,多领域适配与品质服务的可靠之选

行业背景2025 年,全球热管理元器件市场规模预计突破 300 亿美元,中国市场凭借电子产业的快速升级成为增长核心动力。随着 5G 通信、AI 算力提升及新能源技术普及,电子设备功率密度持续攀升,散热效率成为制约设备性…

高级 RAG 实战:Neo4j 与 LangChain 构建知识图谱驱动的 AI 系统

学习如何结合 Neo4j 知识图谱和 LangChain,打造精准、可解释、适合生产环境的 Retrieval-Augmented Generation (RAG) 系统。Retrieval-Augmented Generation (RAG) 已经迅速成为让 Large Language Models (LLMs) 在生…

朴诚乳业携手纷享销客CRM6周实现项目全国推广(附9大核心能力)

4周完成项目立项到4个分公司试点,6周实现项目全国推广!朴诚乳业携手纷享销客SFA-拜访管理,以渠道、拜访、促销的精细化管理,在巨头林立的食品饮料行业赛道,跑出了“新鲜加速度”。 朴诚乳业的低温乳品对产品新鲜度…

2025 年最新推荐 AI 健康管理公司榜单:覆盖多场景,为机构选品提供权威参考

当前 “AI + 健康管理” 领域飞速发展,各类厂商层出不穷,却也让医疗机构、健康管理公司、连锁药房等机构面临选品难题 —— 部分厂商技术适配性差,无法贴合细分场景需求;有些虽宣传效果亮眼,实际服务成效却缺乏数…

从playfield开源代码复制的opensl es初始化代码

从playfield开源代码复制的opensl es初始化代码/* -*- coding: utf-8; tab-width: 8; indent-tabs-mode: t; -*- *//** Copyright (c) 2025, Awe Morris. All rights reserved.*//** HAL for OpenSL ES on Android*//*…

2025 年螺带混合机优质厂家最新推荐排行榜:聚焦综合实力、产品性能与服务质量的权威筛选榜单

在化工、制药、食品、新能源等关键行业的生产流程中,螺带混合机作为保障物料混合均匀度、提升生产效率的核心设备,其品质与服务直接决定企业生产效益。当前市场上螺带混合机厂家数量众多,但产品质量参差不齐,部分厂…

P2151 HH 去散步

问题: 给定一个无向图,\(n\) 个点编号为 \([0,n-1]\),\(m\) 条边。从 \(s\) 出发,走 \(k\) 条边,其中相邻的两步不能走同一条边,求最后停在终点 \(t\) 的方案数。放在 noip 模拟赛 T2 还多测卡常 (?)。考场思路…