如何在 Blender 上使用 Python 脚本制作网格

如何在 Blender 上使用 Python 脚本制作网格

我想知道如何使用数学方程式(例如球谐函数等)的 Python 脚本创建具有顶点和面的网格。

如果显示了一个简单功能的示例代码,其余部分将由我自己制作。

Ubuntu 版本:12.04

Blender 版本:2.62

新增信息(2013/08/02):

我发现这个网站非常有用,

Blender Python:数学网格

最后我得到了一个例子,这是正态分布的情况。

import bpy
import math

# clear mesh and object
for item in bpy.context.scene.objects:
    if item.type == 'MESH':
        bpy.context.scene.objects.unlink(item)
for item in bpy.data.objects:
    if item.type == 'MESH':
        bpy.data.objects.remove(item)
for item in bpy.data.meshes:
    bpy.data.meshes.remove(item)
for item in bpy.data.materials:
    bpy.data.materials.remove(item)

# mesh arrays
verts = []
faces = []

# mesh variables
numX = 100
numY = 100

# variance and scale variables
variance = .35
scale = 4

# fill verts array
for i in range (0, numX):
    for j in range(0,numY):
        # nomalize range
        u = 2*(i/numX-1/2)
        v = 2*(j/numY-1/2)

        s = variance
        x = scale*u
        y = scale*v
        z = scale*1/math.sqrt(2*math.pi*s*s)*math.exp(-(u*u+v*v)/(2*s*s))

        vert = (x,y,z)
        verts.append(vert)

# fill faces array
count = 0
for i in range (0, numY *(numX-1)):
    if count < numY-1:
        A = i
        B = i+1
        C = (i+numY)+1
        D = (i+numY)
        face = (A,B,C,D)
        faces.append(face)
        count = count + 1
    else:
        count = 0
 
# create mesh and object
mesh = bpy.data.meshes.new("wave")
object = bpy.data.objects.new("wave",mesh)

# set mesh location
object.location = bpy.context.scene.cursor_location
bpy.context.scene.objects.link(object)

# create mesh from python data
mesh.from_pydata(verts,[],faces)
mesh.update(calc_edges=True)

截屏: 通过 Python 脚本创建网格对象

答案1

您应该在类似的脚本中搜索。您可能知道,Blender 附带用 Python 编写的插件。有一些关于网格创建的可用插件。您必须启用它们才能使用它们,但它们已安装在您的计算机上。在 /usr/share/blender/addons 中搜索以查看它们。也许您可以进行一些逆向工程来回答您的问题。

将您自己的脚本复制到此文件夹。首选项中还有“从文件安装”。您必须在首选项中启用脚本。它有点隐蔽。在默认窗口的左上角,您可以看到一个感叹号。单击它并从下拉菜单中选择首选项。然后您必须增加此栏的高度,才能看到首选项。在屏幕截图上,您可以看到增加的首选项栏。选择插件选项卡。在右侧,您可以标记“启用插件”。要使此更改永久生效,您必须保存它们。我忘记了快捷方式,搜索它,也许是 Ctrl+U。

嗯,当我使用 Blender 时,有一个运行脚本的选项。现在,我只能看到一个控制台。

在此处输入图片描述

相关内容