blender bpy将顶点颜色转换为UV纹理vertex color to texture

  一、关于环境

安装blender的bpy,不需要额外再安装blender软件。在python控制台中直接输入pip install bpy即可。

二、关于代码

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

import bpy
import argparse
import sys
import os
for i in range(1):input_ply = "obj_0000%s.ply"%str(i+1).rjust(2, '0')output_obj = "obj_0000%s.obj"%str(i+1).rjust(2, '0')name, _ = os.path.splitext(output_obj)output_png = '{}.png'.format(name)output_mtl = '{}.mtl'.format(name)print('Input PLY: {}'.format(input_ply))print('Output OBJ: {}'.format(output_obj))print('Output PNG: {}'.format(output_png))print('Output MTL: {}'.format(output_mtl))bpy.ops.object.select_all(action='DESELECT')bpy.ops.object.select_by_type(type='MESH')bpy.ops.object.delete(use_global=False)# # https://docs.blender.org/api/current/bpy.data.html# print('Remove default cube mesh')# if "Cube" in bpy.data.meshes:#     mesh = bpy.data.meshes["Cube"]#     bpy.data.meshes.remove(mesh)print('Import PLY')bpy.ops.import_mesh.ply(filepath=input_ply)print('Toggle edit mode')bpy.ops.object.editmode_toggle()print('UV smart project')bpy.ops.uv.smart_project()# https://blender.stackexchange.com/questions/5668/add-nodes-to-material-with-pythonprint('Add shading material')material = bpy.data.materials.new('SomeMaterial')material.use_nodes = Truenodes = material.node_tree.nodesprint('Toggle edit mode')bpy.ops.object.editmode_toggle()print('Add input vertex color')input_node = nodes.new('ShaderNodeVertexColor')bsdf_node = nodes.get('Principled BSDF')print('Link vertex color to bsdf')material.node_tree.links.new(bsdf_node.inputs[0], input_node.outputs[0])print('Add texture image')texture_node = nodes.new('ShaderNodeTexImage')print('Create empty image')image = bpy.data.images.new(name='SomeImage', width=1024, height=1024)print('Assign image to node')texture_node.image = imageprint('Switch to CYCLES render engine')bpy.context.scene.render.engine = 'CYCLES'print('Select active material')bpy.context.active_object.active_material = materialprint('Bake image')bpy.context.view_layer.objects.active = bpy.context.active_objectbpy.ops.object.bake(type='DIFFUSE',pass_filter={'COLOR'}, use_clear=True)print('Save image')image.save_render(output_png)# set map_Kd correctly in mtl fileprint('Set image path')image.filepath = os.path.basename(output_png)print('Connect texture node to bsdf')material.node_tree.links.new(bsdf_node.inputs[0], texture_node.outputs[0])print('Export OBJ')bpy.ops.export_scene.obj(filepath=output_obj)
# ​(原代码的地址在:jiegec/blender-scripts: Some useful Blender scripts (github.com)​,欢迎大家去给原作者点赞)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/28141.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【车载开发系列】汽车嵌入式开发常用工具介绍

【车载开发系列】汽车嵌入式开发常用工具介绍 【车载开发系列】汽车嵌入式开发常用工具介绍 【车载开发系列】汽车嵌入式开发常用工具介绍一. ChipON IDE For KungFu32二. ChipON PRO KF32三. GIT四. JLink五. S32DS六. parasoft ctest七. TCANLINPro八. vector Canoe 一. Chip…

【Python入门与进阶】综合练习题:学生成绩管理系统

综合练习题:学生成绩管理系统 题目描述: 请你设计一个简单的学生成绩管理系统,要求能够进行以下操作: 添加学生信息(包括姓名和学号)添加学生的成绩(包括科目和成绩)查询学生的平…

BerkeleyDB练习

代码; #include <db.h> #include <stdio.h>int main() {DB *dbp;db_create(&dbp, NULL, 0);printf("Berkeley DB version: %s\n", db_version(NULL, NULL, NULL));dbp->close(dbp, 0);return 0; } 编译运行

4-异常-log4j配置日志滚动覆盖出现日志丢失问题

4-异常-log4j配置日志打印滚动覆盖出现日志丢失问题(附源码分析) 更多内容欢迎关注我&#xff08;持续更新中&#xff0c;欢迎Star✨&#xff09; Github&#xff1a;CodeZeng1998/Java-Developer-Work-Note 技术公众号&#xff1a;CodeZeng1998&#xff08;纯纯技术文&…

Java学习 - MySQL数据库中 变量 和 流程控制 实例

变量 变量分类 系统变量 全局变量&#xff1a;对于服务器所有的连接有效会话变量&#xff1a;只在当前连接有效 自定义变量 用户变量&#xff1a;只在当前连接有效局部变量&#xff1a;仅在 BEGIN-END 中有效 系统变量 查看所有的系统变量 SHOW GLOBAL|SESSION VARIABLES;查…

决策树算法介绍 - 原理与案例实现

引言 决策树是一种重要的机器学习算法&#xff0c;广泛应用于分类和回归任务中。它的直观性和易解释性使其成为许多实际应用中的首选算法。本文将详细介绍决策树算法的基本原理、构建过程&#xff0c;并通过一个具体的案例实现&#xff0c;帮助读者全面理解这一算法。 决策树…

C#应用程序与数据库的集成几种方法

前言 应用程序集成数据库是许多软件项目的关键方面。无论构建的是Web应用程序、桌面应用程序还是移动应用程序&#xff0c;高效无缝地与数据库集成&#xff0c;对于存储、检索和操作数据都至关重要。本文将介绍数据库与C#应用程序集成的几种方法与使用注意事项。 数据库 开发…

LeetCode热题3.无重复的最长字串

前言: 经过前序的一系列数据结构和算法学习后&#xff0c;开始用leetCode热题练练手。 . - 力扣&#xff08;LeetCode&#xff09; 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的最长子串的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为…

XGBoost预测及调参过程(+变量重要性)--血友病计数数据

所使用的数据是血友病数据&#xff0c;如有需要&#xff0c;可在主页资源处获取&#xff0c;数据信息如下&#xff1a; 读取数据及数据集区分 数据预处理及区分数据集代码如下&#xff08;详细预处理说明见上篇文章--随机森林&#xff09;&#xff1a; import pandas as pd im…

异常封装类统一后端响应的数据格式

异常封装类 如何统一后端响应的数据格式 1. 背景 后端作为数据的处理和响应&#xff0c;如何才能和前端配合好&#xff0c;能够高效的完成任务&#xff0c;其中一个比较重要的点就是后端返回的数据格式。 没有统一的响应格式&#xff1a; // 第一种&#xff1a; {"dat…

探索开源世界:2024年值得关注的热门开源项目推荐

文章目录 每日一句正能量前言GitCode成立背景如何使用GitCode如何把你现有的项目迁移至 GitCode&#xff1f;热门开源项目推荐actions-poetry - 管理 Python 依赖项的 GitLab CI/CD 工具项目概述技术分析应用场景特点项目地址 Spider - 网络爬虫框架项目简介技术分析应用场景项…

【RabbitMQ】异步消息及Rabbitmq安装

https://blog.csdn.net/weixin_73077810/article/details/133836287 https://www.bilibili.com/video/BV1mN4y1Z7t9/ 同步调用和异步调用 如果我们的业务需要实时得到服务提供方的响应&#xff0c;则应该选择同步通讯&#xff08;同步调用&#xff09;。 如果我们追求更高的效…

Jupyter Notebook简介

目录 1.概述 2.诞生背景 3.历史版本 4.安装 5.卸载 6.如何使用 7.菜单和菜单项 8.示例 9.未来展望 10.总结 1.概述 Jupyter Notebook是一种基于Web的交互式计算环境&#xff0c;主要用于数据分析、数据科学、机器学习以及探索性编程等领域。允许用户在单个文档中编写…

17.EventLoop-IO任务

服务端代码 package com.xkj.learn;import io.netty.bootstrap.ServerBootstrap; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; import io.netty.channel.ChannelInitializer; im…

.Net多线程Threading相关详解

一、线程不安全例子 计数 const int total 100_000;int count 0;var thread1 new Thread(Increment); var thread2 new Thread(Increment);thread1.Start(); thread2.Start();thread1.Join(); thread2.Join();Console.WriteLine($"Count: {count}");void Incre…

批量文本编辑神器:一键拆分每行内容,高效实现批量处理与保存,让文本编辑更高效快捷!

在信息化快速发展的今天&#xff0c;文本编辑已经成为我们工作、学习和生活中不可或缺的一部分。然而&#xff0c;面对大量的文本内容&#xff0c;如何高效地进行编辑和处理&#xff0c;成为了许多人面临的难题。今天&#xff0c;我要向大家介绍一款批量文本编辑神器&#xff0…

mp4-wasm基本使用mp4-wasm将canvas保存为MP4视频

mp4-wasm 它使用 WebAssembly 技术来提供 MP4 文件的解析或处理功能。示例 安装 npm i mp4-wasm引用 import loadMP4Module from mp4-wasm/build/mp4;常用API // 初始化 const MP4 await loadMP4Module(); const encoder MP4.createWebCodecsEncoder({width: 1080,heigh…

【C#】图形图像编程

实验目标和要求&#xff1a; 掌握C#图形绘制基本概念&#xff1b;掌握C#字体处理&#xff1b;能进行C#图形图像综合设计。 运行效果如下所示&#xff1a; 1.功能说明与核心代码 使用panel为画板&#xff0c;完成以下设计内容&#xff1a; 使用pen绘制基础图形&#xff1b;使…

华为OD刷题C卷 - 每日刷题32(执行任务赚积分,计算三叉搜索树的高度)

1、&#xff08;执行任务赚积分&#xff09;&#xff1a; 这段代码是解决“执行任务赚积分”的问题。它提供了一个Java类Main&#xff0c;其中包含main方法和getResult方法&#xff0c;用于计算在有限的时间内&#xff0c;处理任务可以获得的最多积分。 main方法首先读取任务…

【MYSQL】MYSQL操作库

1.数据库字符编码集/数据库校验集 当我们在数据库中保存数据时&#xff0c;需要存和取时候编码一致&#xff0c;比方说你用汉语保存的数据&#xff0c;当你读的时候为了避免乱码问题&#xff0c;也必须用汉语读&#xff0c;这就叫做数据库字符编码集一致。 当我们进行查找&…