Unity中Exposure设为0后,点光源下透明材质桌体变黑问题求助
Unity ShaderGraph透明物体点光源不显示问题解决
问题描述
将Skybox的Exposure值设为0后场景全黑,添加Point Light后多数GameObject显示正常,但使用Lit ShaderGraph的桌体仍为黑色。将ShaderGraph从Opaque改为Transparent后,桌体在Point Light下依旧无法正常显示;改回Opaque则恢复正常。但需要桌体玻璃保留Alpha通道,因此启用了ShaderGraph中的Alpha设置。
相关截图
- Shader Graph:

- 桌体修改前:

- 桌体修改后:

- SkyBox修改后:

- SkyBox修改前:

解决步骤
- 调整ShaderGraph渲染模式
不要直接切换到Transparent,选择Transparent with Depth Write(URP/HDRP),或在ShaderGraph的Surface Options里手动开启Depth Write。Transparent默认关闭深度写入,会导致点光源的光照计算无法正确作用于物体。 - 确认光照接收设置
在Lit主节点中,开启Receive Shadows和Receive Global Illumination,并将Lighting Mode设为Forward,确保物体能接收实时光源。 - 正确配置Alpha与透明混合
在Surface Options里设置Surface Type为Transparent,Blend Mode选择Alpha Blend(适配玻璃半透明效果),将Alpha通道值关联到透明度输出,确保透明效果和光照同时生效。 - 优化Skybox Exposure
Exposure设为0会完全切断环境光增益,可将值调整为0.1左右,既保留暗部氛围,又能让物体获得基础环境光反射,避免极端全黑场景。 - 检查Lightmap与静态标记
若场景烘焙了Lightmap,确认桌体的Static标记正确,或在ShaderGraph中开启Lightmap Support,防止烘焙光照与实时光照冲突导致显示异常。
内容的提问来源于stack exchange,提问作者Jon Khan
相关产品推荐
相关产品推荐

