如何使用Python在Blender 2.49中设置世界背景纹理?

时间:2010-07-19 19:35:59

标签: python 3d textures blender bpython

我正在尝试在Blender 2.49中设置背景世界纹理。

我做了一个纹理:

import Blender 
from Blender import * 
import bpy 

world = World.GetCurrent() 
worldTex = Texture.New('worldTex') 
worldTex.setType('Image') 
worldIm = Image.Load('//blender_scene/tex/bg 001.jpg') 
worldIm.source = Image.Sources.SEQUENCE 
worldTex.setImage(worldIm)

当我尝试应用于世界时,会抛出错误,因为默认情况下world.textures包含一个无元组。 所以这不起作用:

world.textures[0].tex = worldTex

我已经制作了一个材料,所以我可以得到一个MTex实例:

worldMat = Material.New('WorldMat')
worldMat.setTexture(worldTex)

如果我尝试设置第一个纹理:

world.textures[0] = worldMat.textures[0]

这将引发错误,因为我无法为已初始化的元组分配值。

如果我尝试更换它:

world.textures = worldMat.textures

我又得到了一个错误:

TypeError: expected tuple or list containing world MTex objects and NONE

'世界 MTex '对象让我思考了一下。还有另一种MTex对象吗?世界MTex?在哪里定义,我该如何创建实例?

或者标题说明......如何为世界设置纹理?

由于

1 个答案:

答案 0 :(得分:1)

Blender 2.5x有一个更好的Python API。我真的建议观看Christopher Webber关于它的video from PyCon演讲。

在2.5x API中设置纹理:

import bpy
# create new clouds texture
bpy.ops.texture.new()
t = bpy.data.textures[-1]
# set World texture
w = bpy.data.world['World']
slot = w.texture_slots.add()
slot.texture = t
slot.use_map_horizon = True