You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 17:45:05