【Blender Python】2.结合Kimi生成

news2024/11/26 16:38:28

概述

结合Kimi这样的AI工具可以生成Blender Python代码,用来辅助生成一些或简单或复杂的图形。当然,出不出错这就不一定了。因为AI所训练的版本可能并不是Blender的最新版本,类似的问题也出现在Godot上。

测试

在kimi中提问,获取一个心形网格的Blender Python代码:

复制生成的代码:

import bpy
import math

# 创建一个新的心形网格
def create_heart_mesh():
    # 创建一个新的网格对象
    mesh = bpy.data.meshes.new(name="HeartMesh")
    obj = bpy.data.objects.new("Heart", mesh)

    # 连接到场景
    bpy.context.collection.objects.link(obj)
    bpy.context.view_layer.objects.active = obj
    obj.select_set(True)
    bpy.context.view_layer.objects.active = obj

    # 清除现有的网格数据
    mesh.from_pydata([], [], [])

    # 设置心形的参数
    segments = 64
    points = []
    for i in range(segments + 1):
        theta = i * (math.pi / segments)
        x = 16 * math.pow(math.sin(theta), 3)
        y = -(13 * math.cos(theta) - 5 * math.cos(2 * theta) - 2 * math.cos(3 * theta) - math.cos(4 * theta))
        z = 0
        points.append((x, y, z))

    # 创建顶点
    mesh.from_pydata([(p[0], p[1], p[2]) for p in points], [], [])

    # 更新网格
    mesh.update()

    return obj

# 调用函数创建心形
heart_obj = create_heart_mesh()

# 可以调整位置和缩放
heart_obj.location.x = 0
heart_obj.location.y = 0
heart_obj.location.z = 0
heart_obj.scale.x = 1
heart_obj.scale.y = 1
heart_obj.scale.z = 1

粘贴运行后得到的结果:

当然这不代表什么,也许是我的AI提问不够精确。

重新提问后,获得如下代码:

import bpy
import math

# 清除当前场景中的所有物体
bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete()

# 创建一个新的心形曲线
curve_data = bpy.data.curves.new('HeartCurve', type='CURVE')
curve_data.dimensions = '3D'

# 添加一个新点到曲线中
polyline = curve_data.splines.new('NURBS').points

# 定义心形曲线的参数方程
def heart_shape(t, scale=1.0):
    x = scale * (16 * math.sin(t) ** 3)
    y = scale * (13 * math.cos(t) - 5 * math.cos(2*t) - 2 * math.cos(3*t) - math.cos(4*t))
    z = 0
    return x, y, z

# 生成心形曲线的点
for i in range(200):
    t = i * (math.pi * 2 / 200)
    x, y, z = heart_shape(t)
    polyline.add(1)
    polyline[-1].co = (x, y, z, 1)

# 创建一个新的网格物体
obj = bpy.data.objects.new('HeartMesh', curve_data)

# 将曲线转换为网格
bpy.context.scene.collection.objects.link(obj)
bpy.context.view_layer.objects.active = obj
bpy.ops.object.mode_set(mode='EDIT')
bpy.ops.curve.make_mesh(preserve_nurbs=True, keep_vertex_order=True)
bpy.ops.object.mode_set(mode='OBJECT')

# 更新场景,以便可以看到新创建的物体
bpy.context.view_layer.update()

执行后有报错,但好歹已经添加了一个完整的心形。

总结

就像上面所说的,这可能与Blender的版本有关系,我使用的是4.2.2 LTS版本。而Kimi训练的版本可能是之前的。API的差异导致出现一些错误,当然也不能排除AI出现“智障”的情形。

AI在学习中也只能作为辅助,如果要实际的掌握了理解Blender Python,还是需要静心学习其细节。

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

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

相关文章

全栈开发从未如此轻松:Bolt.new 让 AI 助力编程体验

你是否曾经因为复杂的开发环境配置而感到烦恼?现在,开发者们有了一个新的选择:StackBlitz 推出的创新平台 Bolt.new,彻底改变了全栈开发的传统方式。这个平台结合了人工智能和WebContainers技术,让你仅仅通过一个浏览器…

Hack Uboot

在硬件评估过程中,经常会遇到采用U-Boot的设备。本文旨在阐述U-Boot是什么,从攻击角度来看它为何如此吸引人,以及这种流行的引导程序所关联的攻击面。 U-Boot 特性 U-Boot,即通用引导加载程序(Universal Boot Loader…

STAR数据集:首个用于大型卫星图像中场景图生成大规模数据集

2024-06-12,在遥感图像领域,由武汉大学等机构联合创建的STAR数据集,标志着场景图生成技术在大规模、高分辨率卫星图像中的新突破。 一、研究背景: 场景图生成(Scene Graph Generation, SGG)技术在自然图像中已取得显著进展&#…

如何使用ssm实现基于bootstrap的课程辅助教学网站的设计与实现+vue

TOC ssm782基于bootstrap的课程辅助教学网站的设计与实现vue 第1章 绪论 1.1研究背景与意义 在科学技术水平还比较低下的时期,学校通常采用人工登记的方式对相关的课程信息进行记录,而后对这些信息记录进行管理和控制。这种采用纸质存储信息的管理模…

Linux基础项目开发1:量产工具——显示系统

文章目录 数据结构抽象使用场景disp_mannger.h Framebuffer编程Framebuffer.c 显示管理最终disp_manager.hdisp_manager.c 测试单元测试代码 数据结构抽象 我们添加的显示管理器中有Framebuffer和web输出,对于两个不同的设别我们需要抽象出同一个结构体类型&#x…

市面上8款AI论文大纲一键生成文献的软件推荐

在当前的学术研究和写作领域,AI论文大纲自动生成软件已经成为提高写作效率和质量的重要工具。这些工具不仅能够帮助研究人员快速生成论文草稿,还能进行内容优化、查重和排版等操作。本文将分享市面上8款AI论文大纲一键生成文献的软件,并特别推…

YOLOv11改进 | 卷积模块 | 分布移位卷积DSConv替换Conv

秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 本文介绍DSConv, DSConv 将…

算法1:双指针思想的运用(2)--C++

1.盛水最多的容器 题目链接:11. 盛最多水的容器 - 力扣(LeetCode) 题目解析: 在解析题目时,我们可以把最直接的方法先列举出来,然后再根据相应的算法原理,来进行优化 思路一:暴力…

Docker 启动 Neo4j:详细配置指南和浏览器访问

Docker 启动 Neo4j:详细配置指南和浏览器访问 文章目录 Docker 启动 Neo4j:详细配置指南和浏览器访问一 Neo4j compose 得 yml 配置二 配置描述三 浏览器访问 这篇文章详细介绍了如何使用 Docker Compose 启动 Neo4j 数据库,包括 docker-com…

菜鸟笔记003 获取目标对象的颜色值

在illustrator中,我们时常要获取一些对象的颜色值,但是一时不知道如何获取,下面我就来讲讲如何获取目标对象的颜色值。 下面以选择对象的最上层对象为例,我们通过查阅javascript编程手册,可以很容易获取下面代码: var sel=app.activeDocument.selection[0]; //获取最上…

【S32K3 RTD MCAL 篇1】 K344 KEY 控制 EMIOS PWM

【S32K3 RTD MCAL 篇1】 K344 KEY 控制 EMIOS PWM 一,文档简介二, 功能实现2.1 软硬件平台2.2 软件控制流程2.3 资源分配概览2.4 EB 配置2.4.1 Dio module2.4.2 Icu module2.4.4 Mcu module2.4.5 Platform module2.4.6 Port module2.4.7 Pwm module 2.5 …

SCTF2024(复现)

SCTF2024(复现) web SycServer2.0 开题: 需要登录,进行目录扫描,得到/config,/hello,/robots.txt 等,访问/hello 显示需要 token,查看源码发现存在 sqlwaf 可以通过抓…

基于ucontext库实现协程类

文章目录 前言协程基础知识协程上下文对称协程与⾮对称协程有栈协程与⽆栈协程 ucontext库接口熟悉一个简单的函数切换自动调用 协程类的实现接口全局变量线程局部变量malloc封装协程切换构造函数协程执行的方法 测试协程切换手动切换复用 前言 协程(Coroutine&…

Maven安装使用

说明:Maven是Apache旗下的一个开源项目,是一款用于管理和构建java项目的工具。一般来说,它帮助我们管理依赖、构建项目。本文介绍在Windows系统下安装Maven。 下载&安装&验证 下载 首先,在Maven官网(https:…

【第十五周】PyTorch深度学习实践2

目录 摘要Abstract1.多分类问题1.1.Softmax1.2.维度问题1.3.NLLLoss v.s. CrossEntropy1.4.代码实践1.4.1.导入相应的包1.4.2.准备数据集1.4.3.模型设计1.4.4.构造损失和优化器1.4.5.模型训练 2.卷积神经网络基础篇2.1.代码实践2.1.1.导入相应的包:2.1.2.准备数据集…

我谈巴特沃斯滤波器

目录 写在前面的内容我谈巴特沃斯滤波器巴特沃斯滤波器的幅频响应频率变换巴特沃斯各种滤波器例子 写在前面的内容 先看看冈萨雷斯对巴特沃斯滤波器的介绍。 低通 高通 带阻 带通 第一个问题,截止频率处的增益。 0.5的增益是不是陡度小了?巴特沃…

ai智能论文生成系统有用吗?分享5款ai文献综述自动生成器

近年来,人工智能(AI)技术在学术写作领域的应用越来越广泛,尤其是在文献综述的自动生成方面。AI智能论文生成系统通过深度学习和自然语言处理技术,能够帮助研究人员快速生成高质量的文献综述,从而提高写作效…

深度扩展AntSK,让.NET Aspire助力您的AI项目

引言 在现今飞速发展的技术世界中,引用最新的工具和框架来提升项目的性能和可管理性至关重要。作为一名开发者,我最近在自己的AI知识库项目AntSK中集成了.NET Aspire,这为我的项目注入了新的活力。如果你还不清楚什么是.NET Aspire&#xff0…

[单master节点k8s部署]32.ceph分布式存储(三)

基于ceph rbd生成pv 在集群中认证ceph 用下面代码生成ceph的secret .创建 ceph 的 secret,在 k8s 的控制节点操作: 回到 ceph 管理节点创建 pool 池: [rootmaster1-admin ~]# ceph osd pool create k8stest 56 pool k8stest created [rootm…

BERT论文解读及情感分类实战(论文复现)

BERT论文解读及情感分类实战(论文复现) 本文所涉及所有资源均在传知代码平台可获取 文章目录 BERT论文解读及情感分类实战(论文复现)简介BERT文章主要贡献BERT模型架构技术细节任务1 Masked LM(MLM)任务2 N…