将3D光标捕捉到平面的不透明部分(搅拌机)

时间:2014-09-07 14:59:32

标签: python textures pivot transparency blender

我在Blender中有关于python脚本的问题,如果有人能给我至少一些概念性的指导方针,我真的很感激:

基本上我有大约100个平面(简单的原始平面),每个平面都有自己的材质,每个材质都有自己的透明贴图。

我需要一种方法将每个平面的各个枢轴搭扣到不透明的部位。即如果有办法通过python语言告诉下面的混合器 - “嘿,遍历这些平面中的每一个,并为每个平面执行以下操作 - 将3D光标捕捉到平面的不透明部分(这没关系确切地说,只要它在平面的不透明部分内,然后将平面的枢轴点指向3D光标“。

当然我不希望有人为我写一个完整的算法,我只是想要一点帮助和推动正确的方向,因为我有使用python的经验,但没有使用blender:/

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以在blender's python api here找到文档。

在blender的image class中,您可以访问image.pixels处的像素数据作为浮点数组,每个像素4个浮点数(我认为是RGBA)。 image.size[0]是高度为image.size[1]的宽度。

鉴于bpy.data.objects['Plane'].bound_box是定义平面外极点的[8] [3]点阵列,您可以在平面上找到像素位置的点,以获得原点的目标点。您还会发现bpy.data.objects['Plane'].matrix_world可用于将对象坐标转换为全局。

bpy.context.scene.cursor_location = Vector((x,y,z))会将光标移动到您想要的位置。

bpy.ops.object.origin_set(type='ORIGIN_CURSOR')会将活动对象的原点设置为光标。请注意,这适用于活动对象,因此您需要随时更改选择。