AI生成的雨夜街区导入Unity、Unreal或Web 3D后,灯牌在静态预览里字迹清楚,一开Bloom或自动曝光却糊成彩色光团。先别重画贴图,也不要把所有灯光一起调暗。
更有效的顺序是:固定观察条件 → 关闭Bloom分流 → 拆开发光贴图与Emissive → 核对曝光和色调映射 → 检查时序与分辨率 → 到目标设备复测。每轮只改一个变量,才能判断细节究竟在哪一环丢失。
先按现象分流:
- 纯色灯块也大面积溢出,优先查Emissive强度、曝光和Bloom;
- 只有文字和细线发糊,优先查贴图、遮罩、Mip与纹理采样;
- 静止清楚、移动后拖尾,继续查TAA与运动模糊;
- 编辑器正常、真机异常,再查质量档、渲染比例和输出色彩链。
AI生成3D场景提供的是资产起点,不代表材质、灯光和后处理已经适配最终渲染环境。

图注:雨夜街区适合观察高亮灯牌、暗部建筑与湿地反射的关系;截图不能证明Emissive、Bloom、曝光或目标设备表现已经测试。
先理解问题:细节可能被亮度链路吃掉了
一块灯牌从贴图到屏幕,中间会经过多道处理:材质提供发光输入,曝光改变画面整体亮度,色调映射把高动态范围压进显示范围,Bloom再把高亮区域向周围扩散。最后还可能叠加TAA、动态分辨率和显示设备的色彩处理。
任何一环都可能让相邻笔画失去间隙。最终看到的"糊",不一定意味着原贴图坏了。
可以把它想成在暗房里拍一块发光招牌:相机为了看清周围环境提高曝光,招牌更容易过亮;镜头或后期再扩散高光,原本分开的笔画就可能连成一片。这里变化的是整条成像链,不是招牌突然多出了一圈真实几何。
排查目标也不是把所有高亮都消灭,而是在保留雨夜氛围的同时,让关键文字、边缘和层次在目标观看距离下仍然可辨。
第一步:锁定机位、曝光和输出条件
先复制测试场景,保留正式版本。固定以下条件:
- 相机位置、朝向和FOV;
- 输出分辨率与内部渲染比例;
- 灯光、色调映射和后处理配置;
- 抗锯齿方式与目标帧率;
- 引擎版本、构建版本和质量档。
如果项目启用了动态分辨率,定因阶段先关闭,并记录原设置。否则负载变化可能让内部画面一会儿清楚、一会儿变软,干扰Bloom判断。
正式定因时,把自动曝光改为固定曝光,并记录模式和数值。不同引擎对曝光的表达方式不同,数字不能直接互抄。若要先确认自动曝光是否参与问题,可以保留一份原版作为首轮分流,之后再进入固定曝光的定因测试。
建议选三个固定观察点:
- 近景文字灯牌:看笔画边缘和字内间隙;
- 远景窄灯带:看细线是否连成一片;
- 湿地反射区域:看亮斑是否吞掉路面纹理。
每次修改后都回到同一机位截图。先保存基线,再改一个变量,不要一边调Bloom,一边换贴图和曝光。
第二步:关闭Bloom,先判断扩散是否参与问题
保持其他设置不变,只关闭Bloom并重放相同镜头。
如果文字间隙明显恢复,可以确认高光扩散参与了问题,但还不能直接得出"Bloom参数错了"的结论。过强的发光输入或过高的曝光,也可能只是被Bloom进一步放大。
如果关闭Bloom后,灯牌仍是一整块白色,优先继续检查:
- Emissive输入是否过高;
- 自动或固定曝光是否把高光推到显示上限;
- 色调映射是否压平了笔画之间的亮度差;
- 发光遮罩是否让黑底和文字一起发光。
这一步只是分流:它回答"扩散有没有参与",不负责给出最终参数。
第三步:拆开发光贴图、遮罩与Emissive
材质中至少要分清三个角色:
- 基础色:描述表面本身的颜色;
- 发光颜色:决定发光区域的颜色和输入强度;
- 发光遮罩:决定哪些位置发光、哪些位置保持为零。
它们可以来自同一张图片的不同通道,但不能因为文件相同就随意混接。若灯牌黑底也在发光,应检查遮罩通道、反相和乘法关系,并单独预览遮罩。非发光区域应真正接近零,而不是只在基础色里看起来很黑。
接着检查贴图本身:
- 源图与导入后的有效尺寸是否一致;
- 压缩是否破坏了窄笔画和高对比边缘;
- 远处使用的Mip是否已经合并细线;
- UV是否拉伸,文字是否靠近图集边界;
- 相邻亮色是否被过滤进当前区域。
源图里的小字清楚,不代表压缩、缩小和远距离采样后仍然清楚。底层形状已经消失时,提高Emissive只会把模糊轮廓变得更亮,无法补回笔画。
最后做一个最小对照:将原发光贴图暂时替换成边界明确的纯色块,并保持固定强度。
- 纯色块同样大面积溢出:优先查强度、曝光和后处理;
- 纯色块边界稳定,原文字仍发糊:回到贴图、遮罩、Mip和采样;
- 只有运动后异常:进入TAA和运动模糊检查。
Emissive是材质向渲染器提供的自发光输入,Bloom是对画面高亮区域进行扩散。两者不是同一个开关。材质"看起来很亮",也不代表它会自动照亮旁边建筑;周围是否受光,还取决于实际灯光、烘焙或全局光照方案。
第四步:核对曝光、色调映射与颜色空间
1. 固定曝光,再验证自动曝光
雨夜画面暗部占比高时,自动曝光可能提高整体亮度,但结果还会受到测光范围、权重和适应速度影响,不能简单理解为"暗场一定增亮"。
先用固定曝光重放相同镜头。如果灯牌细节恢复,应记录自动曝光的目标范围、适应过程和测光区域,再恢复自动模式验证。不要只截取曝光尚未稳定的一帧,也不要为了压住招牌而把整个街区的灯光一起调暗。
2. 检查色调映射是否压平高光差异
色调映射负责把场景中的高亮度范围转换到显示设备可呈现的范围。高光被强烈压缩后,相邻笔画可能失去亮度差,鲜艳颜色也可能逐渐趋白。
如果引擎提供亮度直方图、假色或高光调试视图,可以辅助判断,但要先确认它显示的是色调映射前还是映射后的数据。
3. 区分颜色数据和数值数据
颜色贴图通常按颜色数据解码;遮罩、粗糙度和发光强度等数值贴图通常按线性数据读取,具体以引擎槽位约定为准。错误解码会改变中间灰度,从而扩大或缩小实际发光区域。
还要核对HDR中间缓冲与最终输出。使用HDR渲染,不代表显示设备一定收到HDR信号;高亮值可能在中间某个环节被压缩或截断。记录渲染管线和输出模式,比只写"已开启HDR"更有用。
第五步:逐项调整Bloom,不照搬别人的参数
在固定曝光和固定机位下重新启用Bloom。按当前管线提供的参数逐项比较,例如阈值、强度、扩散范围和质量,每次只改一项。
部分渲染管线没有显式阈值,另一些会使用预曝光,因此相同数字在不同引擎、版本和项目中含义并不一致。判断时关注可见结果:
- 哪些区域开始进入Bloom;
- 笔画间隙何时被填满;
- 灯牌周围的墙面是否被扩散抬亮;
- 远景灯带是否从细线变成连续色块;
- 湿地反射是否仍能保留路面层次。
观察画面不要只裁灯牌本身。保留周围一圈建筑和地面,才能判断扩散是否已经影响整个场景的亮暗关系。
如果必须在"完全关掉"和"糊成一片"之间选择,通常说明底层输入、曝光或观察尺度仍未处理好,而不只是Bloom缺少一个理想数值。
第六步:检查运动、分辨率和目标设备
分别录制静止、缓慢平移和快速转向三段相同路径。
- 静止清楚、运动时留下旧轮廓:优先检查TAA历史累积和运动模糊;
- 整幅画面一起变软:检查内部渲染比例、动态分辨率和时序升采样;
- 只有远景文字先消失:回查像素覆盖、Mip和纹理过滤;
- 首次进入模糊,停留后恢复:检查贴图流送和高清Mip驻留。
截图只能说明某一帧的状态,无法判断拖尾和曝光适应过程。运动问题应保存短录屏,并记录相机速度和输出帧率。
最后用目标构建和真实设备复测,核对:
- 质量档与后处理开关;
- 输出尺寸和内部渲染比例;
- HDR或SDR输出模式;
- 浏览器、图形后端或引擎构建配置;
- 首次加载与持续运行后的表现。
贴图流送未完成时可能只显示低清Mip;设备运行一段时间后,温升或性能策略也可能改变帧率和渲染比例。先确认这些状态确实发生,再解释画质差异,不要把所有变化都笼统归因于"手机性能差"。
准备将资产送入Blender、Unity或Unreal等下游环境时,可把模型接入DCC与引擎流程作为交接入口。它不保证发光材质、曝光和后处理设置无损迁移,导入后仍要按目标管线复核。
四份对照场景:不要把修改一路叠加
从原版A分别复制B、C、D,不要在B的基础上继续修改得到C。
| 版本 | 唯一改动 | 重点观察 |
|---|---|---|
| A | 保留原版 | 何时开始糊、哪些区域先糊 |
| B | 仅关闭Bloom | 笔画间隙与周围扩散是否恢复 |
| C | 仅改为固定曝光 | 高光与暗部是否同时变化 |
| D | 仅换成纯色发光 | 没有文字纹理后是否仍然溢出 |
首轮可以让A保留原有自动曝光,目的是观察它与Bloom、发光输入的耦合;C才有比较价值。如果A本来就是固定曝光,C不必重复。
进入定因轮后,再统一固定曝光,对Bloom、发光输入和贴图分别复测。若B和C都改善,不要急着宣布只有一个根因。可以在固定曝光下重新启用Bloom,判断两者是否共同放大了问题。
每份记录至少包含:
emissive_source:贴图或纯色、输入强度;exposure_state:模式、数值和测光状态;bloom_state:开关与本轮唯一改动;temporal_state:抗锯齿和运动模糊;render_scale:输出尺寸与内部比例;device_result:设备、构建、运行时长和观察结果。
附上同机位截图;涉及拖尾时,再附相同路径的短录屏。记录"笔画间隙恢复、墙面扩散减弱"比只写"更清楚"更利于复查。
四个最容易误判的问题
1. 关掉Bloom后清楚了,是否应该永久关闭?
不一定。关闭Bloom首先是诊断手段,最终取决于视觉目标和目标设备。可以恢复较弱的扩散,再复查近景文字、远景灯带和运动画面,而不是只在全开与全关之间选择。
2. 为什么遮罩错误会让整块灯牌发亮?
通道接错、遮罩反相、黑底不为零或数值贴图被错误解码,都可能让本应关闭的区域得到发光输入。先独立预览遮罩,再检查材质连接。
3. 近处清楚,远处为什么糊?
文字在屏幕上占用的像素减少后,Mip与过滤可能先合并细笔画,Bloom再把剩余高亮扩大。应先看关闭Bloom后的远景;底层形状已经消失时,调扩散无法恢复文字。
4. 编辑器正常,手机为什么更容易过曝?
先确认两端使用相同构建、质量档、内部比例、曝光和输出模式,再比较结果。还应记录设备显示模式和屏幕亮度,避免把显示屏差异误判成渲染差异。
收藏清单:按顺序查,不要同时改
- 固定机位、曝光、输出尺寸和内部渲染比例。
- 仅关闭Bloom,判断扩散是否参与问题。
- 分开检查基础色、发光贴图、遮罩和Emissive强度。
- 核对导入尺寸、压缩、Mip、UV和颜色空间。
- 固定曝光,检查色调映射和HDR/SDR输出链。
- 逐项调整Bloom,不照搬其他引擎参数。
- 用连续画面检查TAA、运动模糊和动态分辨率。
- 在目标构建与真实设备复测首次和持续运行状态。
最终判断标准不是"所有高亮都消失",而是关键细节在目标距离下可读,雨夜氛围仍然成立,并且同一配置在目标设备上能够稳定复现。
你的霓虹问题是文字边缘发光,还是整块灯牌和周围建筑一起过曝?