基于python的三维模型格式转换汇总

基于python的三维模型格式转换汇总

本项目的主要功能为汇总了基于python语言的各种三维模型的转换程序,覆盖了5种三维模型格式,包括 .obj , .ply , .glb , .stl , .gltf ,此外本章还总结了各种模型的优缺点,并进行了汇总。使用的代码编辑和调试工具为 pycharm ,虚拟环境使用 anaconda 配置。

本期结构图为

project cover 本期博客结构图

0 环境搭建

项目开发对 anacondapycharm 的版本没有限制,按照站内的其他项目安装即可,此外,本项目中不包含任何只能在特定系统上才能顺利运行的库(对说的就是 pygraphviz 😜,p.s. 这个库虽然可以在windows下安装,但是部分代码只能在ubuntu下运行,在windows和mac系统上会报错),下面就让咱们开始本次的学习!!

在进行下面操作时,默认已安装了anaconda和pycharm,本次测试使用的是windows系统,但是ubuntu系统下的对应操作代码与ubuntu下的完全相同,mac系统下的操作代码会在之后更新

如果尚未安装anaconda,可参考往期博客

ubuntu 22.04服务器版本cuda、Anaconda、pytorch环境配置以及安装llama_factory-CSDN博客

下面回到正题

首先,给项目创建虚拟环境,这里使用的是python 3.9.20,建议使用相同的环境以确保不会出现一些奇怪的错误。在windows系统下通过 win + r 并输入 cmd ,ubuntu系统下可通过 ctrl + alt + t 打开终端,现输入下列代码

conda create -n obj_viewer python==3.9 -y

虚拟环境的创建除了网络错误外,基本不会报错,继续进入下一步。

P.S. 如果网络出现错误的话,首先查看是否使用了梯子,如果开启了,就直接关闭,如果没有开启,就换成国内源,基本可解决问题

加载创建出的虚拟环境

conda activate obj_viewer

下面,将安装所有需要用到的库,即本次的主角, trimeshpyassimp

pip install trimes pyassimp

这里的库直接默认安装即可,无特殊版本需求。这里安装无报错,就可以关闭cmd窗口(windows)或终端(ubuntu),主要的代码执行和环境加载,我们会在 pycharm 中进行,作为专业的IDE平台, pycharm 具有诸多好用的小功能,感兴趣的小伙伴可以查阅其 官网 ,或者在站内搜索哈 😄。

接下来在合适的磁盘中,创建文件夹,此处使用的是 F盘 中的 demo 文件夹,及进行结果存储的 transfer_results 文件夹接着在 pycharm 中打开该文件夹,并创建本次需要测试的文件 transfer_test.py ,如下图所示

project cover pycharm创建项目文件夹

这里的 guitar.obj 是从开源网站上下载的,比较推荐的是著名的 free 3D

链接为 free 3D官网

接下来,要通过 设置 选项,来设置当前项目的编译器,即之前创建的环境 obj_viewer 。首先在 文件 - 设置 如下图所示

project cover pycharm加载编译器1

接下来,找到 Python 解释器 并点击 添加解释器 按钮,以及 添加本地解释器 按钮,如下图所示

project cover pycharm加载编译器2

然后,通过在 添加Python 解释器 选项卡中,索引到刚才创建 anaconda 环境的文件夹中,并找到 python.exe 。我的电脑是在 D:\anaconda\envs\interface_tester\python.exe ,最后点击确定。需要注意的是,这里的 .exe 文件,一个字母都不能不能差,要不会在之后的程序运行部分疯狂报错,或者干脆加载编译器失败。

project cover pycharm加载编译器3

此时这个界面也会显示出编译器的具体名称,之后一路确定即可。最后在设置界面就会看到已经加载好的环境,如果前几步成功,这一步加载的库应该与下图中完全相同,此时点击右下角 应用 即可

project cover pycharm加载编译器4

然后点击 Pycharm 下方的 终端 选项卡,可看到 obj_viewer 环境已经加载成功,并可供调用,且当前的运行文件夹为 ....\demo

project cover pycharm加载编译器6

接下来将下面的代码复制到刚创建的 inter_test.py 中,运行不报错即可

import trimesh
import os

def convert_3d_file(input_file, output_file):
    """
    转换 3D 文件格式:支持 OBJ, PLY, GLB, STL 等格式之间的转换。

    参数:
        input_file (str): 输入文件路径(支持 obj, ply, glb, stl 等格式)。
        output_file (str): 输出文件路径&#x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

空 白II

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

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

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

打赏作者

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

抵扣说明:

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

余额充值