Unity 烘焙问题

一、场景光照设置
       1、ShadowLight 控制产生阴影

       2、Directional Light 控制产生阴影的亮度

二、project setting Quality Shadow设置

三、模型(FBX)设置
       1、模型UV设置


       2、模型产生阴影设置(Cast shadows)
       3、模型是否接受光照设置(Receive Shadows)


      4、模型 lightmapping大小(Scale In Lightmap)

四、模型Shader

 

 

五、Lightmapping Setting

六、出现的问题

问题1、cube和plane接受光照的差别(模型面数导致),地面(接受阴影)模型面数可以控制阴影的模糊程度

 

问题2、烘焙物体的放大,导致烘焙出阴影模糊,甚至没有阴影(缩放要和Lightmap Size参数匹配,放大模型需要将Lightmap Size选择大的参数,这样使得烘焙出的贴图变得更大,烘焙时间更长)

问题3、模型缩放和阴影接受距离

问题4、烘焙模型为黑色,模型UVs没打开

 
 

问题5、阴影颜色太深
可以增加一个Directional Light 光来调整阴影颜色

问题6、模型烘焙有黑影(修改模型法线模式)

### 如何在Unity中设置烘焙阴影的颜色 #### 设置混合照明模式 为了调整烘焙阴影的颜色,在 Unity 中需先配置场景的混合照明模式。具体来说,将项目的混合照明模式设定为 Shadowmask[^1]。 #### 配置光源属性 对于用于投射阴影的主要方向光(Directional Light),其模式应当被设为 “Mixed”。这一步骤确保该光源能够在运行时提供预计算好的阴影效果而不是实时计算。 #### 自定义着色器实现阴影颜色调整 要在渲染管线中改变阴影区域显示出来的色彩,可以通过编写自定义着色器来达成这一目标。下面是一个简单的片段着色器代码示例: ```csharp fixed4 frag(VertexOutput i) : COLOR { fixed shadowAttenuation = SHADOW_ATTENUATION(i); // 使用 lerp 函数基于 shadowAttenuation 值插值两个颜色之间, // 当处于阴影区时应用 _ShadowColor ,而在全亮处保持原物体颜色不变。 fixed4 finalRGBA = lerp(targetRGBA * _ShadowColor, targetRGBA, shadowAttenuation); return finalRGBA; } ``` 此段代码通过 `SHADOW_ATTENUATION` 获取当前像素位置下的阴影衰减值,并利用线性插值函数 `lerp()` 实现了当对象位于阴影区域内时对其表面颜色施加指定 `_ShadowColor` 效果的功能[^2]。 #### 解决静态与动态物体间交互问题 值得注意的是,在采用 Shadowmask 方式的项目里,默认情况下静态物体所投影出的阴影不会影响到其他移动中的实体。针对这种情况有两种解决方案可供选择:一是借助 Lighting Probes 技术;二是切换至 Distance Shadowmask 模式,不过后者通常不是首选方案因为可能会带来性能上的损失[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值