Как мне установить фоновую текстуру мира в Blender 2.49, используя Python?

1

Я пытаюсь установить фон World Texture в 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 содержит кортеж None. поэтому это не сработает:

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
Объекты

'world MTex заставили меня немного подумать. Есть ли еще какой-то объект MTex? мировой MTex? Где он определяется, как я могу создать экземпляр?

Или, как говорится в заголовке... как установить текстуру в мир?

Спасибо

Теги:
blender
3d
textures
bpython

1 ответ

1
Лучший ответ

Blender 2.5x имеет гораздо лучший API Python. Я действительно рекомендую прочесть это видео из PyCon от Кристофера Уэббера.

Настройка текстуры в API 2.5x:

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
  • 0
    Очень интересная беседа, спасибо за ресурс. Действительно, Blender 2.5 был бы лучше, но Blender 2.49 был требованием в то время, поэтому специально упомянул 2.49. В качестве грязного обходного пути я добавил слот для материала в шаблон блендера по умолчанию, чтобы я мог двигаться дальше, но мне все еще интересно, что там происходит и каково реальное решение.
  • 0
    Я начал Blender с 2.5x, поэтому я не могу помочь вам здесь. Сожалею.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню