Bloom(輝光)是游戲開發(fā)中最常用的后處理效果之一。它模擬了攝像機鏡頭或人類眼睛在直視強光時的光學(xué)散射現(xiàn)象,讓原本只是“亮白色”的像素點看起來真的在向外“發(fā)光”。
1. Bloom 的核心原理
Bloom 的實現(xiàn)過程可以簡單理解為“提取—模糊—疊加”三個步驟:
1.1 亮度提取 (Thresholding)
程序會檢查屏幕上所有像素的亮度。只有超過特定閾值(Threshold)的像素才會被提取出來。
- 非 HDR 模式: 亮度范圍是 0 到 1。
- HDR 模式(推薦): 亮度可以遠(yuǎn)超 1。這能更精準(zhǔn)地識別太陽、激光或爆炸等真實高亮區(qū)域,而不至于讓白色的墻壁也跟著發(fā)光。
1.2 降采樣與模糊 (Downsampling & Blurring)
為了讓光暈看起來柔和且覆蓋范圍廣,我們需要對提取出的高亮部分進行模糊。 - 降采樣: 為了性能和模糊范圍,通常會將圖片縮小幾倍。
- 多級模糊: 現(xiàn)代做法(如 Unity URP)通常采用 高斯模糊 (Gaussian Blur) 或 雙重濾波 (Dual Filtering)。它會生成一系列不同分辨率的模糊層(金字塔結(jié)構(gòu)),從小到大層層疊加,從而產(chǎn)生從核心到邊緣平滑過渡的光暈。
1.3 混合 (Composition)
將處理后的模糊光暈圖片,以“加色(Additive)”或“屏幕(Screen)”的方式疊加回原始的場景畫面上。
2. 在 Unity URP 中實現(xiàn) Bloom
在 URP 中,Bloom 已經(jīng)集成在 Volume 系統(tǒng)中,不需要自己寫 Shader,只需幾個配置步驟:
第一步:開啟后處理功能
-
在 URP Asset 中: 找到你正在使用的 Universal Render Pipeline Asset,確保 HDR 已勾選(非常重要,否則效果很死板)。
HDR -
在 Camera 上: 選中主攝像機,在 Inspector 面板中勾選 Post Processing 開關(guān)。
Post Processing
第二步:創(chuàng)建 Volume
- 在 Hierarchy 窗口右鍵:Volume > Global Volume。
- 在 Volume 組件中,點擊 New 創(chuàng)建一個新的 Profile。
-
點擊 Add Override > Post-processing > Bloom。
Bloom
夸張效果
第三步:參數(shù)調(diào)優(yōu)
開啟 Bloom 后,你會看到以下核心參數(shù):
| 參數(shù) | 說明 | 建議 |
|---|---|---|
| Threshold | 閾值。亮度超過多少才開始發(fā)光。 | 若開啟了 HDR,建議設(shè)為 1.0 左右。 |
| Intensity | 強度。光暈的整體亮度。 | 建議根據(jù)氛圍微調(diào),不宜過高。 |
| Scatter | 擴散??刂乒鈺炏蛲獍l(fā)散的距離。 | 值越高,光暈越朦朧。 |
| Tint | 色調(diào)。給光暈染上一層顏色。 | 可用于營造夕陽(橙色)或科技感(藍(lán)色)。 |
| Dirt Mask | 污漬貼圖。模擬鏡頭上的灰塵。 | 增加真實感的神器。 |
3. 進階技巧:如何讓太陽效果更自然?
- 配合 HDR 材質(zhì): 不要單純通過提高 Bloom 的 Intensity 來增加亮度。你應(yīng)該在材質(zhì)的 Base Map 顏色拾取器中,將 Intensity 調(diào)高(例如 +2.0),這樣只有這個物體會爆亮,而其他物體保持正常。
- 使用 Lens Flares(鏡頭光暈): Bloom 解決的是“暈”,而太陽通常還需要“芒”。URP 現(xiàn)在有專門的 Lens Flare (SRP) 組件,可以模擬光線進入鏡頭的折射。
- 抗鋸齒 (Anti-aliasing): 開啟 TAA(時域抗鋸齒)可以有效減少高亮像素在移動時的閃爍(Fireflies)。
避坑指南: > 如果你發(fā)現(xiàn)屏幕變得霧蒙蒙的,通常是因為 Threshold 設(shè)得太低,導(dǎo)致中等亮度的區(qū)域也參與了發(fā)光。嘗試調(diào)高 Threshold,只讓最亮的點閃耀。



