Panda3d如何获取到可用的模型?Maya、3D Max、OBJ等3D格式转换为egg、gltf文件

​ 使用Panda3d进行3D环境建模也有一段时间了,真的是被折磨的头秃。。。不过也不得不说,Panda3D也确实是一个比较优秀的3D游戏引擎,还是能满足你的大部分需要的。

​ 如果你在深入使用Panda3d后,我相信有个问题那绝对是让人头大的,那就是模型问题。对于没有学过3D建模、只熟悉编程的同学,那真的是人间酸爽呀。Panda3d默认的3D模型文件是egg格式,额,咱也不知道为啥吧,可能就是看对眼了,真的是折磨死人了,因为主流的3D模型文件是maya、max、obj、fbx等格式。egg格式的文件别说下载不到了,就是想从别的格式转换为egg都是遍寻方法不得啊。

资源分配图

​ 哎,以下有两种方法是我找的羊肠小路,希望能对你有帮助。如果如帮助,还请给予博主三连支持,本文所有文字都是博主用泪水换回来的呀。。。

​ 话不多说,直接来吧!

资源分配图

1.将文件转换为gltf

​ gltf是某位大佬为panda3d写的一个扩展的,可以直接加载的3D模型文件,相比于egg,还是更加被广为使用的。至少,可以有简单的方式进行转换。并且Panda3d也已经将GLTF作为官方支持的一种文件格式,在官方文档上,已经是和EGG单独并列的了,也是给了一个名分。

​ 当我们下载到了obj,max、maya、fbx等3D文件后,可以通过一些在线的网站进行转换,将文件转换为gltf的格式。

1.1 在线转换任何 3D 格式 (aspose.app)

​ 这个网站还是很不错的,支持的文件格式还是很多的,可以将其支持的文件上传,并转换为gltf文件。需要注意的一点是,这个网站不支持max格式,需要先将max格式转换为支持的格式,在进行第二次转换。

资源分配图

1.2 Convert mesh files online for free - AnyConv

​ 第二个网站,AnyConv。其转换器还是很多的,很多格式可以进行互相转换。

​ 转换为gltf的页面是这个Convert files from and to GLTF format online - AnyConv,支持将FBX、OBJ转换为GLTF。可以先将格式转换为FBX,或OBJ,每个转换页面下方,有其支持的转换器。

资源分配图

​ 在线转换器是我在前期的救命良药呀,不过也会存在着一些问题,比如网络不稳定导致大文件无法转换成功,有些时候模型的贴图文件转换失败,导致模型是一个白秃秃的一个壳子,哎。下面讲另一种方式。

2.使用Panda3D提供的转换脚本

​ 这种方式是我在后面偶尔一次,在官方文档中找到的方式。

​ 哎,其实之前也研究过这种方式,当时看的3ds max的导出方式,里面讲的是如何在3ds max里装一个插件,哎,可惜呀,十多年前的文档了,使用的是max 6版本。我下载的是2020版本,网上一番搜索挣扎后,还是放弃了。官方文档链接如下,有兴趣的可以去看看。

​ 官方文档:Converting from 3ds Max — Panda3D Manual

​ 在前几天,点开了官方的maya的转换页面,这个才是真真的能帮助我们的好东西呀,翻过前面的maya使用介绍,直接来到Running Exporter,这个才是我们想要的转换功能呀。

资源分配图

​ Maya的转换脚本可以在Panda3d的SDK安装目录,bin目录中找到,其一直在更新,提供了多个转换脚本。我们可以按照官网上的文档来进行转换,不过说一句,需要你在本地安装maya,并根据你安装的版本选择转换的脚本。

资源分配图

​ 下面简单讲下转换方法吧,首先新建3个文件夹,mayafile、eggfile、Textures,如果下载的3D模型没有贴图,可以忽略textures文件夹。我是将三个文件夹新建在了Panda3D SDK的安装目录下了,也就是和bin目录平级。

资源分配图

​ 将下载的maya模型文件放到mayafile文件夹中,打开cmd窗口,进入bin目录,执行如下命令,其中bomb.mb是下载的模型文件,bomb.egg是输出的egg模型文件。

.\maya2egg2022.exe -a model -o ..\eggfile\bomb.egg ..\mayafile\bomb.mb

​ 如果你下载的模型是有动画的,可以通过如下指令导出动画文件:

.\maya2egg2022.exe -a chan -o ..\eggfile\bomb_move.egg ..\mayafile\bomb.mb

​ 当egg文件导出后,我立马就尝试了能否加载。哈哈,是真不错呀,效果可以如下所示:

导弹3D模型和动画

​ 在Panda3d SDK安装目录的bin文件夹找到mayaxx2egg、obj2egg,还有flt2egg、lwo2egg、dae2egg等转换器,不过也偶比较小众,就不做评估了,下面讲下obj2egg转换器的使用,转换代码如下:

 .\obj2egg.exe ..\mayafile\submarine.obj -o ..\eggfile\submarine.egg
    
 #Usage:
 #obj2egg [opts] input.obj output.egg
 #obj2egg [opts] -o output.egg input.obj
 #obj2egg [opts] input.obj >output.egg

​ obj格式的3D文件,是没有动画的,所以导出方式也比较简单,主要格式如上面代码区所示,有三种,但知道一种就可以了。另外obj格式的3D文件,很难找到对应的.mtl材质文件,并且obj2egg本身是不支持mtl和贴图的转换的。。。
所以我在场景中加载出来也就是一个白光面,。。

资源分配图

​ 另外,如果有mtl文件,需要在obj文件中修改mtl的加载路径,文件中一般是绝对路径,到你电脑上就不好使了,所以需要修改下。
还有一点,在写文的过程中,在Stack Overflow看到一个回答,Panda3D在1.10版本后可以直接加载obj,简单的试了试,确实是可以的,我会在另一个文章详细解释下怎么处理。这个方式可以正常加载mtl。

资源分配图

3.总结

​ 下面总结下两种方式吧,第一种通过在线方式转换,在一定程度上还是救了我的小命的,毕竟我也只是一个会编程的程序员,而不是精通3D建模的工程师,所以模型能加载到场景中就足够了。不过第一种方式确实也受限比较大,有很多时候找到了模型文件,转换却出错了,只能在重新找。第二种方式我觉得会更简单些,不过也比较受限,主流支持的是mb(Maya)格式3D文件的转换,对于其他格式支持的较少,不过好在mb格式的文件还是比较好找的,而且还支持动画的导出,对于我这种小白,算是意外之喜了。

​ 另外,我的3D模型大多都是在[爱给网](爱给网_音效配乐_3D模型_视频素材_游戏素材_免费下载 (aigei.com))下载,爱给网对我也是帮助很大,大家如果需要下载模型,可以去下载。如果没有vip,可以联系我帮忙下载,如果会员还没到期的话。


​ 本文到这里也就结束了,这也是我在开发过程中遇到的问题。本文内容全部都是由博主自己进行整理并结合自身的理解进行总结,因为才疏学浅,对3D建模很多知识都是了解皮毛,如果有什么错误,还请批评指正。

本文到这里也就结束了,这也是我在开发过程中遇到的问题。本文内容全部都是由博主自己进行整理并结合自身的理解进行总结,因为才疏学浅,对3D建模很多知识都是了解皮毛,如果有什么错误,还请批评指正。

​ 如果本文能对你有所帮助,还请给点赞、收藏、关注,给博主一波三连。

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
### 回答1: 在 Blender 中制作模型并将其导出到 Panda3D 中使用,您需要遵循以下步骤: 1. 在 Blender 中创建模型并为其应用纹理材质。 2. 导出模型和纹理到适合Panda3D使用的格式,如OBJ或FBX。 3. 在 Panda3D 中加载模型和纹理文件,您可以使用Panda3D自带的模型加载器或编写自己的代码来加载模型和纹理。 4. 将模型放置在场景中,并设置其位置,旋转和比例,以使其适合您的场景。 5. 渲染场景并显示模型。 需要注意的是,在将模型从Blender导出到Panda3D时,您需要确保将所有必要的纹理和材质信息导出到文件中,以便在Panda3D中正确显示模型。此外,您还需要确保选择适合Panda3D的导出选项以确保导出的文件Panda3D兼容。 ### 回答2: 要在Blender中制作可以在Panda3D中使用的模型,你需要遵循以下步骤: 1. 安装Blender和Panda3D:首先,确保你已经在计算机上安装了最新版的Blender和Panda3D软件。 2. 模型创建:使用Blender的建模工具创建你想要的模型。你可以使用各种形状、体积等来制作模型。确保每个模型都有适当的材质和纹理。 3. UV映射:在Blender中,使用UV映射工具将材质和纹理映射到模型的各个部分。这将确保在渲染时正确显示纹理。 4. 导出模型:在导出模型之前,确保你的模型是按照Panda3D的规范建模的。导出时,选择适当的文件格式,常见的是OBJ或者DAE格式。确保导出选项正确设置。 5. 导入模型:在Panda3D中,使用适当的代码将模型导入到你的游戏场景中。这可以通过加载模型文件并在场景中放置模型的位置来完成。 6. 渲染和调整:使用Panda3D的渲染引擎,可以根据需要对模型进行光照、阴影和其他特效的调整。这将确保你的模型在游戏中看起来正确。 7. 碰撞体和动画:如果需要,你还可以在Blender中创建碰撞体和角色动画。将碰撞体分配给模型,并为角色添加适当的骨架和动画。 通过遵循上述步骤,你可以在Blender中制作适用于Panda3D模型。这些方法对于其他游戏引擎也是通用的,希望对你有所帮助。 ### 回答3: 在Blender中制作在Panda3D中能使用的模型分为以下几个步骤: 1. 准备工作:首先,确保已经安装了最新版本的Blender和Panda3D,并且熟悉它们的基本操作。 2. 导入模型:在Blender中创建或导入所需的模型。可以使用Blender的建模工具创建几何体,也可以导入其他文件格式的模型。 3. 设置材质和纹理:为模型添加材质和纹理以增加视觉效果。在Blender中,可以通过材质面板和纹理面板来调整模型的外观。 4. 调整模型的尺寸和旋转:根据需要调整模型的尺寸和旋转。Panda3D使用的是米制单位,因此可能需要将模型缩放为适当的尺寸。 5. 设置动画(可选):如果需要在Panda3D中呈现动画,可以在Blender中创建和设置动画。使用Blender的动画编辑器来添加关键帧和动画效果。 6. 导出模型:在Blender中将模型导出为Panda3D可识别的文件格式,例如Egg或Bam。导出选项可以在导出菜单中找到。 7. 在Panda3D中加载模型:将导出的模型文件放入Panda3D项目的合适位置,并在代码中通过相应的函数加载模型。 8. 调整模型Panda3D中的位置和缩放:在Panda3D中可以使用变换操作将模型调整到适当的位置、旋转和缩放。 9. 添加交互功能(可选):如果需要为模型添加交互功能,如点击、移动等,可以在Panda3D中编写相应的逻辑代码。 10. 运行项目:通过运行Panda3D项目,可以观察和测试在Blender中制作的模型Panda3D中的表现。 以上是在Blender中制作在Panda3D中能使用的模型的基本步骤,通过深入学习和实践,可以进一步探索更多高级的特性和功能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李子树_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值