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

article/2025/7/27 15:40:16

​ 使用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建模很多知识都是了解皮毛,如果有什么错误,还请批评指正。

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


http://chatgpt.dhexx.cn/article/FB713Jnn.shtml

相关文章

Panda3D如何加载obj格式的3D模型文件

​ 在上文中,讲了如何将max、obj、mb、fbx等主流格式的3D模型文件转换为egg、gltf格式,Panda3D可以加载的格式。在上文末尾,博主临时看到了一种方式,可以让Panda3d直接加载obj格式的文件,因此本文来专门看下如何实现。…

Panda3D 初学者教程(一)

Panda3D 初学者教程(一) 原文链接 原文 Lesson 1 Hello World In which we learn how to make and run a Panda3D instance, and how to load and manipulate models. At it’s most basic, running a Panda3D program is quite simple: create a …

panda3d虚幻引擎--(1)

目录 前言(阿巴阿巴) 安装 调整窗口 导入环境 前言(阿巴阿巴) 前几天无意间看到了一个叫做panda3d的东西,觉得挺好玩,就翻教程,发现现在中文教程似乎没有那么全面成体系,大部分…

图解 Panda3D引擎开发入门

Panda3D 是一个 3D 渲染和游戏开发框架,可以在这个框架下使用 Python 和 C 。Panda3D 是开源软件, 它的许可证让它可以用于任何用途, 包括商业用途。本文使用Panda3D 1.7.0版本,其最新稳定版本是1.7.2。可在官网下载最新稳定版本。…

3D游戏物理开发引擎Panda3D基础

文章目录 Panda3D场景安排模型加载渲染属性任务任务链事件处理主循环 视角相机阴影环境灯方向灯 控制key-events DirectGui碰撞检测后续 Panda3D场景安排 ​ Panda3D将其对象存储在场景图中,从本质上讲,这是一个对象的层次结构,称为节点。 ​…

Mac 终端快捷键设置:如何给 Mac 中的 Terminal 设置 Ctrl+Alt+T 快捷键快速启动

Mac 电脑中正常是没有直接打开终端命令行的快捷键指令的,但可以通过 commandspace 打开聚焦搜索,然后输入 ter 或者 terminal 全拼打开。但习惯了 linux 的同学会觉得这个操作很别扭。于是我们希望能通过键盘按键直接打开。 操作流程如下: 1…

OpenCV论道:为什么我的伽马校正函数只有一行?

最近在用 OpenCV 识别棋盘棋子,基本的思路是这样的:先转灰度,再做高斯模糊和二值化,此时棋盘格上有的有棋子,有的无棋子;通过迭代腐蚀,消去棋子,再迭代膨胀回来,就得到了…

【TA100】图形 2.6伽马(Gamma)校正

很好的视频 https://www.bilibili.com/video/BV15t411Y7cf/?spm_id_from333.788.b_636f6d6d656e74.96&vd_source6f3a5e0ac931d869aee3d7c9bb6847e0 一、Gamma校正 1.前言:颜色空间 ● 一些颜色空间的举例,(具体参考2.1节内容&#xff0…

Gamma Correction(伽马校正)

定义 Gamma correction, gamma nonlinearity, gamma encoding, or often simply gamma, is the name of a nonlinear operation used to code and decode luminance or tristimulus values in video or still image systems.[1] Gamma correction is, in the simplest cases, …

从0开始的技术美术之路(十)伽马校正

本篇参考B站视频 “技术美术百人计划”霜狼_may ; 《Shader入门精要》冯乐乐女神著; https://www.zhihu.com/question/27467127/answer/111973548 https://www.jianshu.com/p/9a91e6ad0d38 本篇主要用于自我复习,如有疑问或发现有什么错误&am…

2.6 伽马校正 一、Gamma校正

一、Gamma校正 颜色空间 通用:sRGB 电影:DCI-P3 电视:Rec-709、PAL等 印刷:CMYK、Adobe RGB 传递函数 我们知道了颜色的颜色值,要在电子设备上显示,就要把它转换为视频信号,传递函数就是用…

【剑桥摄影协会】伽马校正(Gamma)

伽马是数字成像系统的一个重要特征,它定义了像素值与其实际亮度之间的关系。在标准显示器上面,如果没有伽马,数码相机拍摄到的阴影内容便会跟我们实际看到的有所差异。平时我们所说的伽马校正、伽马编码、伽马压缩,都是伽马曲线的…

自动伽马校正(Auto Gamma Correction)算法

自动伽马校正(Auto Gamma Correction)算法 微信公众号:幼儿园的学霸 目录 文章目录 自动伽马校正(Auto Gamma Correction)算法目录理论代码实现参考资料 理论 在对图像进行处理过程中,查找到一篇对图像进行自动gamma校正的论文,论文名称及链…

图像基础--图像预处理技术(色彩插值、色彩校正、伽马校正、图像增强和白平衡)

1、简介 图像采集的功能由图像传感器实现, 目前图像传感器主要有电荷耦合器件CCD和CMOS传感器,CCD传感器具有高解析度、低噪声、动态范围大等优点;CMOS具备低成本、高的集成度、低功耗等有点。但不论是CCD还是CMOS传感器在将实际景物转换为图…

【Unity3D】伽马校正

1 伽马相关概念 1.1 人眼对亮度变化的感知 人眼对亮度变化的感知不是线性的,如下图,人眼对亮区的亮度变化不太敏感,对暗区的亮度变化较敏感。另外,我们可以想象一下,在一个黑暗的房间里,由 1 根蜡烛到 2 根…

伽马校正(gamma correction)学习笔记

学习HDR和Bloom特效的过程中,接触到了伽马矫正的问题。查阅了不少资料,这一篇讲的最清楚,下面的图片也是来自该文章。 这应该说是一个历史遗留问题,以前的CRT显示器是使用电子显像管,通过控制电流大小来控制显示屏幕上…

sRGB标准与伽马校正 理解

srgb : 颜色值会以非线性的方式存储 如一个颜色值在线性空间中,rgb(1,1,1), 在gamma空间中,rgb会变为(1的2.2幂次,1的2.2幂次,1的2.2幂次),颜色值会发生改变,这样方便在显示器中显示的时候&am…

伽马校正和颜色空间

一、伽马校正 所谓gamma校正,实际上是一个颜色的非线性变换。下面来解释这个变换曲线存在的原因。 1.1 人眼的非线性视觉效应 为什么要有gamma校正了。一言以蔽之,人眼的生理效应。如下图所示, 第一行是人眼感受到的线性亮度变化&#xf…

伽马校正探究

关于伽马校正的前因后果,在网上有不同版本的说法,由于年代久远的因素,导致原本很简单的事情越说越复杂。今天我们的目标就是抓住伽马的头,而不是摸一下伽马的尾巴。 一,鱼龙混杂的论调 1,CRT 显示器的物理…

图像的伽马校正

图像的伽马校正 图像的伽马校正属于图像增强中幂次增强&#xff0c; γ>1时&#xff0c;使图像变暗&#xff0c;即图像变黑&#xff1b; γ<1时&#xff0c;使图像变亮&#xff0c;即图像变白。 下面是伽马校正的过程&#xff1a; 1&#xff09;将像素值为【0,255】如2…