在blender中使用python程序化建模

news2024/10/5 15:00:02

blender中,所有可以在Blender软件中的手动操作,基本都可以通过Python API 完成 

那么就可以用这个完成程序化生成

下面我给出一个简单的方块建模程序:

在scripting中,可以添加file,然后向场景中心放置一个正方体

首先正方体需要八个点:

 (0,0,0),(0,1,0),(1,1,0),(1,0,0),(0,0,1),(0,1,1),(1,1,1),(1,0,1)八个点

然后相邻的四个点可以组成一个面

verts = [(0,0,0),(0,1,0),(1,1,0),(1,0,0),(0,0,1),(0,1,1),(1,1,1),(1,0,1)]

比如分别在以上数组中0,1,2,3四个点,然后我们创建它的连接关系

faces = [(0,1,2,3), (4,5,6,7), (0,4,5,1), (1,5,6,2), (2,6,7,3), (3,7,4,0)]

首先需要生成网格体mesh

mesh = bpy.data.meshes.new("MyCube")

用这个这个网格体初始化一个类

object = bpy.data.objects.new("MyCube", mesh)

设置物体的坐标,这个可以在指定放置物体的位置:

object.location = [0,0,0]

然后使用 from_pydata将顶点和连接关系传入mesh中:

mesh.from_pydata(verts,[],faces)

context是Blender数据管理中的一个全局变量集合,然后拿到场景的物体集合,没错,就是右边框的那个

 将物体放入collection场景中

bpy.context.collection.objects.link(object)

然后看右边 collection下面出现了Cube

 

场景中也出现了自己定义的MyCube:

 总体代码如下

 import bpy
 
#定义点和连接关系的数组
verts = [(0,0,0),(0,1,0),(1,1,0),(1,0,0),(0,0,1),(0,1,1),(1,1,1),(1,0,1)]
faces = [(0,1,2,3), (4,5,6,7), (0,4,5,1), (1,5,6,2), (2,6,7,3), (3,7,4,0)]
 
#创建一个mesh,并初始化为一个类
mesh = bpy.data.meshes.new("MyCube")
object = bpy.data.objects.new("MyCube", mesh)
 
#设置物体坐标
object.location = [0,0,0]
 
#将数组传入模型中
mesh.from_pydata(verts,[],faces)

#将物体放入collection场景中
bpy.context.collection.objects.link(object)

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

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

相关文章

前端面试题Vue答案

1.vue的原理? image.png 关键词: 虚拟DOM树访问器属性 解释一下:响应式原理? 当你把一个普通的 JavaScript 对象传入 Vue 实例作为 data 选项,Vue 将遍历此对象所有的 property,并使用 Object.defineProperty把这些 property 全部转为 getter/setter…

开关电源PFC电路原理详解及matlab仿真

PFC全称“Power Factor Correction”,意为“功率因数校正”。PFC电路即能对功率因数进行校正,或者说能提高功率因数的电路。 在电学中,功率因数PF指有功功率P(单位w)与视在功率S(单位VA)的比值。…

【Linux】fdisk命令参数详解(图文超详细,内容来自官方文档)

目录 0.环境 1.背景 2.内容--官方文档对fdisk的介绍 1)名称 2)说明 3)具体参数/选项 4)举个栗子,我要查fdisk的版本 0.环境 windows linux虚拟机 1.背景 之前发表了一篇文章Linux 用fdisk进行磁盘分区&#xff…

Python语法基础03(输入与while)

用户输入 使用input()函数可以获取输入,同时应说清楚所期待的输入内容 #使用函数input时,要说清楚期望的输入 carinput("Please input your favourite car.\nAnd i will repeat:") print(f"your favourite car is {car}")## 也可…

多元分类预测 | Matlab灰狼算法(GWO)优化混合核极限学习机(HKELM)分类预测,多特征输入模型,GWO-HKELM分类预测

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元分类预测 | Matlab灰狼算法(GWO)优化混合核极限学习机(HKELM)分类预测,多特征输入模型,GWO-HKELM分类预测 多特征输入单输出的二分类及多分类模型。程序内注释详细,直接替换数据就可以用。程序语言为matlab…

NFTScan 与 Sender Wallet 达成合作伙伴,双方在多链 NFT 数据方面展开合作!

近日,NFT 数据基础设施 NFTScan 与 Web3 钱包 Sender Wallet 达成合作伙伴关系,成为其官方 NFT 数据供应商。NFTScan 将为 Sender Wallet 的 NFT 部分提供专业的多链 NFT 数据支持,确保用户可以跨多个区块链获得全面和实时的 NFT 数据。 Sen…

Latex 文献引用

来源: 引用 - 为什么叫 citet 和 citep?- TeX - LaTeX 堆栈交换 (stackexchange.com) 来源: latex \cite, \citet, \citep_latex citet_juliosun的博客-CSDN博客 来源:https://www.reddit.com/r/LaTeX/comments/5g9kn1/whats_th…

【网络安全带你练爬虫-100练】第1练:发送请求获取返回内容

目录 一、前置知识1 二、前置知识2 requests库的7个主要方法 语法: 注解: 三、扩展工具 四、网络安全小圈子 一、前置知识1 顾名思义网络爬虫第一步,爬取目标 URL的网页的信息 可以使用 urllib.request 和 requests发送请求&#xff0…

瞄准光储赛道的家电巨头,是没活“硬整”,还是有理有据?

2023年上半年即将结束,家电巨头再次带来跨界的重磅消息。 在A股公司合康新能月底发布的定增公告中,美的集团,成为合康新能定增的包揽者。后者将获得前者提供的高达14.73亿元的募集资金总额,用于电子设备业务能力提升项目、光伏产…

一部手机如何登录多个微信?教你一招轻松搞定

现在大部分人都不止2个微信,有的用于私人社交,有的用于工作,人手多个微信已经很普遍了。那么如何在一个手机上同时登录2个甚至更多微信呢? 01登录2个微信 找到手机上面的【设置】,找到【应用设置】-【应用双开】&am…

Redis通信协议

RESP协议 Redis是一个CS架构的软件,通信一般分两步(不包括pipeline和PubSub): ① 客户端(client)向服务端(server)发送一条命令 ② 服务端解析并执行命令,返回响应结果…

拧螺丝需求:递归算法的极致应用

前言 在一个平平无奇的下午,接到一个需求,需要给公司的中台系统做一个json报文重组的功能。 因为公司的某些业务需要外部数据的支持,所以会采购一些其它公司的数据,而且为了保证业务的连续性,同一种数据会采购多方的数…

电子模块|航空插头简介

电子模块|航空插头简介 航空插头图片航空插头介绍为什么要用航插航空插头实例及参数 航空插头图片 航空插头介绍 航空插头定义: 它是针对复杂工业环境与户外环境等应用场景开发的一类连接器。正式一些的称呼是“工业连接器”,主要用于电气、电子设备的电…

react菜鸟教程学习笔记

目录 第一个react实例 react安装 对react机制最直观的理解 如果你第一次用npm 关于初始化package.json的问题 使用 create-react-app 快速构建 React 开发环境 项目目录结构 修改一下代码执行源头APP.js React元素渲染 将元素渲染到DOM中 更新元素渲染 关于vue的更新…

Dlib —— 对图片进行人脸检测(附C++源码)

效果 注意:Dlib检测人脸在Release版耗时与CPU有关,本人I7 10代约100ms左右。建议人脸检测可以考虑使用Yolov5进行,之后将检测到的人脸输入给Dlib做特征或其他。 代码 Vs2017下使用Dlib检测人脸,并通过OpenCv将结果绘制出来。(由于…

推荐几个数据可视化工具汇总

数据的魅力在于其故事性和洞察力。让数据说话,我们汇集了一系列令人兴奋的数据可视化工具,为您提供展示和探索数据的无限可能。 分享一:Tangle Tangle是一个基于Web的数据可视化工具,旨在帮助大家以交互式和可视化的方式探索和解…

使用chatgpt过funcaptcha验证码2个人学习记录

funcaptcha 验证码2 通过记录 ** funcaptcha 那个公司开发的简要介绍: Funcaptcha是由hCaptcha公司开发的一种人机验证系统。hCaptcha是一家位于美国的人机验证技术提供商,旨在帮助网站和应用程序防止自动化攻击和滥用。 Funcaptcha是hCaptcha提供的一种…

MYSQL 数据清理磁盘没变小问题解决方法

我们到数据目录查看有些表比较大,清理了一些无用数据后发现,文件大小不变。这是mysql的机制导致的。 解决方法:重建索引释放空间。 alter table $TABLE engineInnoDB;

接口测试的流程

目录 前言: 接口测试流程 接口测试用例设计 接口测试工具 前言: 接口测试是软件测试中的一个关键环节,用于验证系统的各个接口是否符合预期功能和性能要求。 接口通俗的理解就是不同部分之间的连接通道,可以是程序之内的&am…

原码、反码及补码

任何存储于计算机中的数据,其本质都是以二进制码存储。计算机的运算器只有加法运算器。所以在计算机中没办法直接做减法。 从硬件的角度来说正数正数、负数负数都是可以通过加法器直接相加,只有正数加负数才算是减法。原码、反码及补码的产生过程就是为…