【Unity】Post-process后处理之Auto Exposure

博客介绍了Auto Exposure(自动曝光)效果,它能根据图像明亮范围动态调整曝光,在帧上生成直方图计算平均亮度。还说明了其开关、曝光、适应等参数,以及使用范围滑条剔除极端亮度像素、限定平均亮度范围等注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装组件
Ambient Occlusion—环境光遮蔽
Anti-aliasing–抗锯齿
Auto Exposure–自动曝光
Bloom–柔光
Chromatic Aberration–色差
Color Grading–颜色分级
Depth of Field–景深
Grain–颗粒
Lens Distortion–镜头扭曲
Motion Blur–运动模糊
Screen Space Reflections–屏幕空间反射
Vignette–渐晕

Auto Exposure

这个效果可以根据图像所包含的明亮范围动态的调整图像的曝光。这个调整是在一段时间内是逐步发生的,当玩家刚从黑暗的隧道中走出来时,可以短暂的被室外明亮的光线照的目眩。同样的,当从一个明亮的场景走进一个黑暗的场景时,“眼睛”也要花点时间适应。
在内部计算时,这个效果会在每个帧上生成一个直方图,并对其进行过滤,然后找到平均亮度值。

在这里插入图片描述

1. All None : 可以看作是效果开关
2. Exposure:曝光
属性说明
Filtering直方图使用这些值中的较低和较高百分比来计算平均亮度,超出这个范围的值会被舍弃,不用参与平均亮度计算。主要是为了排除过亮和过暗的部分。
Minimum自动曝光会采用的最小平均亮度
Maximum自动曝光会采用的最大平均亮度
Exposure Compensation曝光补偿值,用这个值来调整场景的整体曝光。
3. Adaptation :适应
属性说明
TypeProgressive 动态自动曝光;Fixed 静态的自动曝光。
Speed Up从暗到亮的适应速度。
Speed Down从亮到暗的适应速度。

注意事项

  1. 使用Filtering范围滑条可以剔除画面中最黑暗和最亮的部分。计算平均亮度的时候,通常你不会想让很黑或很亮的像素参与到计算中,值是百分比。

  2. MinimunMaximum可以将计算出来的平均亮度限定在给定的范围内。

  3. 如果你不想要一种眼睛适应的效果,也可以将Type设置为Fixed的,这个过程将像一个自动曝光的设置。

  4. 当调整这个效果的时候,建议使用Light Meter monitor

要求支持

  • Compute shader
  • Shader Model 5
<think>嗯,用户这次问的是Unity引擎中的另一个参数,r.EyeAdaptation.BlackHistogramBucketInfluence。之前他们问了r.DiscardUnusedQuality,现在转到这个参数,可能是在进行图形渲染优化,尤其是自动曝光相关的调整。 首先,我需要确定这个参数的作用。根据名字来看,它应该与眼适应(Eye Adaptation)有关,具体涉及直方图中的黑色部分的影响。眼适应通常用于HDR渲染,模拟人眼在不同亮度环境下的适应过程,比如从暗处到亮处的调整。 接下来,我要回忆Unity中自动曝光的实现。自动曝光一般会分析屏幕的亮度直方图,分成不同的桶(buckets)。然后根据这些桶的分布来计算合适的曝光值。BlackHistogramBucketInfluence可能控制的是直方图中较暗区域对最终曝光计算的影响程度。 需要确认这个参数的具体功能。比如,当这个值调高时,暗部区域对曝光的影响更大,可能导致整体画面更暗,因为系统会认为场景中有更多暗区需要补偿。相反,调低这个值可能会让曝光更多考虑中间或亮部区域,使画面更亮。 然后,用户可能想知道如何调整这个参数以及实际应用中的例子。比如在什么样的场景下需要调整它?比如,如果游戏中有很多黑暗场景,但希望保持一定的可见度,可能需要调整这个参数,避免自动曝光使得画面过暗。 还要考虑用户可能的身份。他们可能是图形程序员或技术美术,正在优化游戏的视觉效果。需要解释清楚参数的技术细节,同时提供实际的应用建议,比如推荐的值范围,测试方法,以及与其他参数的互动,比如r.EyeAdaptation.HistogramMinPercent和HistogramMaxPercent。 需要注意,Unity的文档可能对此参数描述不够详细,可能需要结合社区的经验或实际测试结果来说明。例如,某些论坛或开发者分享的案例中提到调整BlackHistogramBucketInfluence可以解决特定情况下的曝光问题。 此外,用户可能在使用HDRP或URP时遇到这个参数,需要指出不同渲染管线中的使用情况。比如,在HDRP中,自动曝光的配置可能在Volume组件中,而这个参数可能是通过脚本或命令行调整的底层设置。 最后,确保回答结构清晰,分步骤说明功能、原理、调节方法和注意事项,帮助用户系统地理解和应用这个参数。同时提醒用户测试调整后的效果,因为不同的场景和光照条件可能需要不同的参数配置。</think>在Unity引擎中,`r.EyeAdaptation.BlackHistogramBucketInfluence` 是一个与**HDR自动曝光(Eye Adaptation)**相关的渲染参数,主要用于控制**亮度直方图中暗区(黑色区域)对自动曝光计算的影响权重**。以下是详细说明: --- ### 一、功能原理 1. **自动曝光基础机制** Unity的自动曝光通过分析屏幕亮度直方图(将亮度范围划分为多个“桶/Bucket”)动态调整曝光值。亮度直方图通常覆盖从纯黑(0)到纯白(1)的范围,例如: $$ \text{亮度直方图} = [\text{Bucket}_0, \text{Bucket}_1, ..., \text{Bucket}_{n-1}] $$ 其中 `Bucket_0` 代表最暗区域,`Bucket_{n-1}` 代表最亮区域。 2. **BlackHistogramBucketInfluence的作用** - 此参数定义**直方图中暗区桶(靠近0的Bucket)对最终曝光计算的贡献强度**。 - 值越大,暗区对曝光的“拉动”效果越强,可能导致整体画面变暗(因为系统认为场景中存在更多暗区需要补偿)。 - 值越小,暗区影响力降低,曝光更依赖中间/亮部区域的亮度分布。 --- ### 二、参数调节方法 1. **默认值** Unity默认值通常为 `0.5`(具体版本可能有差异,需实测验证)。 2. **典型调节范围** ```csharp // 通过C#代码动态修改(需在运行时) UnityEngine.Rendering.Universal.PostProcessManager.instance.settings. GetSetting<UnityEngine.Rendering.Universal.EyeAdaptation>().blackHistogramBucketInfluence = 0.3f; ``` - **低暗区影响**(明亮场景):`0.0 ~ 0.3` 适用于强调高光细节(如雪地、阳光场景)。 - **高暗区影响**(暗光场景):`0.7 ~ 1.0` 适用于洞穴、夜景等需要保留暗部层次感的场景。 3. **配合其他参数** - `r.EyeAdaptation.HistogramMinPercent`/`HistogramMaxPercent`:定义直方图统计的亮度范围。 - `r.EyeAdaptation.SpeedUp`/`SpeedDown`:控制曝光调整的响应速度。 --- ### 三、实际应用案例 | 场景类型 | 推荐值 | 效果说明 | |----------------|--------|-----------------------------------| | 强光室外场景 | 0.2 | 减少暗区干扰,避免曝光过度降低 | | 室内混合光照 | 0.5 | 平衡明暗区域,保持自然过渡 | | 恐怖游戏暗房 | 0.8 | 增强暗区权重,营造压抑氛围 | --- ### 四、注意事项 1. **性能影响** 频繁修改此参数可能导致曝光计算频繁更新(通常影响较小,但需在目标平台验证)。 2. **与后处理堆栈兼容性** - 在URP/HDRP中,自动曝光参数可能位于Volume组件中,而非直接通过命令行参数控制。 - 需确认当前渲染管线版本是否支持此参数。 3. **测试验证** 调整后需在不同光照条件下观察: - 是否出现曝光震荡(频繁明暗切换)。 - 暗部细节是否丢失或过曝。 --- 若需进一步优化自动曝光,建议结合`r.EyeAdaptation.HistogramLogMin`/`HistogramLogMax`调整直方图范围,或使用自定义后处理Shader覆盖默认逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值