pymeshlab加载物体、创建UV映射(基于平面投影)、创建并保存UV纹理和物体模型

本文主要是介绍pymeshlab加载物体、创建UV映射(基于平面投影)、创建并保存UV纹理和物体模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 一、关于环境

 请参考:pymeshlab遍历文件夹中模型、缩放并导出指定格式-CSDN博客

二、关于代码

本文所给出代码仅为参考,禁止转载和引用,仅供个人学习。本文所给出的例子是https://download.csdn.net/download/weixin_42605076/89233917中的obj_000001.ply。

运行代码后创建的具有UV纹理图的物体模型

UV纹理图

# pymeshlab需要导入,其一般被命名为ml
import pymeshlab as ml# 本案例所使用的3D模型为压缩包中的obj_000001.ply,请将其与本脚本放置在同一文件夹内。
input_file = 'obj_000001.ply'# 首先需要创建一个空的容器
mesh = ml.MeshSet()# 然后,加载物体模型
mesh.load_new_mesh(input_file)# 创建UV映射
mesh.parametrization_flat_plane(projectionplane  = 'XY', #投影平面:选择投影平面aspectratio  = True, #保留比率:如果选中,则生成的参数化将保留模型的原始后角比率,否则将填充整个0..1 uv空间sidegutter  = 0.0, #侧边沟:在指定大小的参数化区域周围留一个空白(在纹理空间中);可接受范围[0.0-0.5]。
)# 将顶点颜色转换为UV纹理,并保存PNG纹理图
mesh.transfer_vertex_color_to_texture(textname = input_file.replace('.ply', '_texture.png'), #纹理名称:要创建的纹理的名称textw = 1024, #纹理宽度(px):纹理宽度texth = 1024, #纹理高度(px):纹理高度overwrite = False, #覆盖纹理:如果当前网格具有纹理,则将覆盖(具有提供的纹理维度)pullpush = True, #填充纹理:如果启用,则使用拉-推填充算法对未映射的纹理空间进行着色,如果false设置为黑色
)# 保存具有UV纹理的模型
mesh.save_current_mesh(input_file.replace('.ply', '_texture.ply'))

这篇关于pymeshlab加载物体、创建UV映射(基于平面投影)、创建并保存UV纹理和物体模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/958697

相关文章

python uv包管理小结

《pythonuv包管理小结》uv是一个高性能的Python包管理工具,它不仅能够高效地处理包管理和依赖解析,还提供了对Python版本管理的支持,本文主要介绍了pythonuv包管理小结,具有一... 目录安装 uv使用 uv 管理 python 版本安装指定版本的 Python查看已安装的 Python

resultMap如何处理复杂映射问题

《resultMap如何处理复杂映射问题》:本文主要介绍resultMap如何处理复杂映射问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录resultMap复杂映射问题Ⅰ 多对一查询:学生——老师Ⅱ 一对多查询:老师——学生总结resultMap复杂映射问题

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Java枚举类实现Key-Value映射的多种实现方式

《Java枚举类实现Key-Value映射的多种实现方式》在Java开发中,枚举(Enum)是一种特殊的类,本文将详细介绍Java枚举类实现key-value映射的多种方式,有需要的小伙伴可以根据需要... 目录前言一、基础实现方式1.1 为枚举添加属性和构造方法二、http://www.cppcns.co

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

idea中创建新类时自动添加注释的实现

《idea中创建新类时自动添加注释的实现》在每次使用idea创建一个新类时,过了一段时间发现看不懂这个类是用来干嘛的,为了解决这个问题,我们可以设置在创建一个新类时自动添加注释,帮助我们理解这个类的用... 目录前言:详细操作:步骤一:点击上方的 文件(File),点击&nbmyHIgsp;设置(Setti

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

SpringBoot项目启动报错"找不到或无法加载主类"的解决方法

《SpringBoot项目启动报错找不到或无法加载主类的解决方法》在使用IntelliJIDEA开发基于SpringBoot框架的Java程序时,可能会出现找不到或无法加载主类com.example.... 目录一、问题描述二、排查过程三、解决方案一、问题描述在使用 IntelliJ IDEA 开发基于

Spring 中使用反射创建 Bean 实例的几种方式

《Spring中使用反射创建Bean实例的几种方式》文章介绍了在Spring框架中如何使用反射来创建Bean实例,包括使用Class.newInstance()、Constructor.newI... 目录1. 使用 Class.newInstance() (仅限无参构造函数):2. 使用 Construc