Unity实时切换Skybox后,新skybox不能实时影响环境光反射的问题的解决方案

Unity实时切换Skybox后,新skybox不能实时影响环境光反射的问题的解决方案

前言

太好笑了最近真的是踩了很多坑,搜了半天看没人填坑我就过来填一下吧。最近在做的项目要求实时切换Skybox,目的是让SkyBox可以影响环境光反射,但是无论是更改全局skybox还是摄像机下skybox都无法实现该效果,查了unity的文档给出了在切换skybox后调用DynamicGI.UpdateEnvironment的方法刷新GI,事实上这种方法只是对之前GI的缺损部分的检测和刷新,并不能实时更改,于是作罢。

解决办法

我的解决办法很简单,既然实时环境光获取不到那我们就直接预渲染一个好了。
打开lightseting界面
在这里插入图片描述
Environment Reflections 中Source 更改为Custom.
反选最下面的Auto Generate ,之后点击Generate lighting。
之后你会在scenes文件夹下发现新生成的环境光反射cubemap。和光照数据(暂不需要)
在这里插入图片描述
后期在代码加载skybox的时候把该反射加载进去即可。

RenderSettings.customReflection = 获取到的环境光反射cubmap;

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Unity3D是一款强大的游戏开发引擎,它不仅提供了丰富的功能和工具,还支持使用动态天空素材来增强游戏场景的真实感。 在Unity3D中,动态天空素材可以实现在游戏中动态变化的天空效果。例如,可以使用不同的贴图来表示不同的天气条件,如晴朗、多云、阴天或雨天。通过实时渲染,可以在游戏中模拟出真实的天空效果,增加游戏的视觉吸引力和沉浸感。 为了使用动态天空素材,首先需要创建一个称为"Skybox"的材质。然后,通过将不同的贴图应用于材质的六个面,分别表示天空的上、下、前、后、左和右,从而实现动态变化的天空效果。 在游戏中,可以使用脚本来控制天空的更。例如,在实现动态天气变化时,可以根据时间来调整天空的贴图,以获得不同的天气效果。另外,还可以根据游戏中的特定事件或条件,如日出、日落或进入特定区域,来改变天空的贴图,从而实现更加细致的场景表现。 需要注意的是,动态天空素材的效果也受到环境光照的影响。在Unity3D中,可以通过调整灯光的颜色和强度来进一步增强天空效果,使其与场景中的其他物体更好地融合。 总结来说,Unity3D提供了使用动态天空素材的功能,通过实时渲染,可以在游戏中模拟出真实的天空效果。通过控制贴图的变化,可以实现不同天气条件下的视觉呈现,增强游戏场景的真实感和沉浸感。同时,还可以通过调整环境光照来进一步提升天空效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值