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

Ursina(Python3)加载Blender制作的3D模型时材质颜色不显示如何解决

Ursina加载Blender模型无材质颜色问题解决方案

核心原因

Ursina加载.obj模型时默认不会自动读取关联材质,且你手动设置的color = color.white参数会覆盖模型自带的材质/顶点色,所以只显示纯白色。

分步解决方法

  • 第一步:修正Blender导出设置
    导出OBJ格式时,在导出面板勾选「导出材质」「写入UV坐标」「顶点颜色」三个选项,导出后将.obj文件、同目录生成的.mtl文件、所有用到的纹理素材全部放到Ursina项目的资源目录下,确保路径无中文、无特殊字符。
  • 第二步:修改模型加载代码
    删除代码中手动设置的color参数,同时添加对材质/顶点色的支持,修正后的参考代码如下:
    class Hand(Entity):
      def __init__(self):
          super().__init__(model = 'ARMS.obj',
              scale = (0.1, 0.1, 0.1),
              rotation = (0, -20, 0),
              # 移除color=color.white参数,避免覆盖原生材质
              shader = 'vertex_color', # 如果用的是Blender里的顶点色着色,加这个参数
              # 如果是用带纹理的材质,直接加texture参数指定路径:texture='你的纹理图路径.png'
              position = (0, 2, 0))
    
  • 第三步:材质验证
    如果还是不显示颜色,可以先手动指定纯色材质测试,确认模型加载逻辑没问题,再排查路径、导出参数的问题:
    # 测试用:手动指定红色材质
    test_mat = Material()
    test_mat.color = color.red
    # 初始化Hand的时候加参数material=test_mat
    

后续纹理加载说明

如果要加载纹理,除了在.mtl文件中配置纹理路径外,也可以直接在Entity初始化时传入texture参数指定本地图片路径,Ursina支持常见的png、jpg格式纹理。

内容的提问来源于stack exchange,提问作者Quantum Sushi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 19:57:02