如何在Ursina引擎中移除自带的默认光照效果
Ursina移除默认光照实现方案
移除自带默认光照步骤
要完全清除Ursina初始化自带的光照效果,只需要在创建Ursina()实例后执行两行代码即可:
- 销毁默认定向光源:
destroy(directional_light) - 关闭默认环境光:
ambient_light.color = color.black
操作完成后场景不会自带任何基础光照,所有光照效果都可以通过自定义光源实现,不会和默认效果冲突。
日出日落效果实现参考
你可以通过自定义定向光动态调整属性来模拟昼夜交替效果,最小实现示例如下:
from ursina import * app = Ursina() # 移除默认光照 destroy(directional_light) ambient_light.color = color.black # 创建自定义太阳光源 sun_light = DirectionalLight(shadow_map_resolution=2048) sun_light.parent = scene # 创建测试地面 ground = Entity(model='plane', scale=64, texture='grass') # 逐帧更新光照属性模拟日出日落 def update(): # 旋转光源模拟时间推移,调整旋转速度可以控制一天的时长 sun_light.rotation_y += 0.08 current_angle = sun_light.rotation_y % 360 # 根据角度调整光照亮度和颜色 if 0 <= current_angle < 60: # 日出阶段 sun_light.brightness = lerp(0.2, 1, current_angle/60) sun_light.color = color.lerp(color.rgb(255,160,60), color.rgb(255,255,240), current_angle/60) elif 60 <= current_angle < 300: # 白昼阶段 sun_light.brightness = 1 sun_light.color = color.rgb(255,255,240) else: # 日落阶段 progress = (current_angle - 300) / 60 sun_light.brightness = lerp(1, 0.2, progress) sun_light.color = color.lerp(color.rgb(255,255,240), color.rgb(255,160,60), progress) app.run()
内容的提问来源于stack exchange,提问作者error 1044
相关产品推荐
相关产品推荐

