Добавление различных типов объектов из скрипта
Добавление других типов объектов, во многих случаях, так же просто, как добавление нашего текстового объекта. Если мы хотим, чтобы наша сцена была заполнена таким образом, чтобы её можно было отрендерить, то мы должны добавить камеру и лампу, чтобы делать вещи видимыми. Добавление камеры на ту же сцену можно сделать подобно этому (предположим, что у нас все еще есть ссылка на нашу активную сцену в переменной scn):
from Blender import Camera
cam = Camera.New() # создаёт новый блок данных камеры
ob = scn.objects.new(cam)# добавляет новый объект
# камеры
scn.setCurrentCamera(ob) # делает эту камеру активной
Заметьте, что объект Камеры снова отличается от фактических данных камеры. Объект
Лампы абсолютно также следуют за этим образцом:
from Blender import Lamp
lamp = Lamp.New() # создаёт новую лампу
ob = scn.objects.new(lamp)
Снова, объект
Этот образец аналогичен для объекта Меша, но ситуация здесь тонко отличается, поскольку меш - это конгломерат вершин, рёбер, и граней среди других свойств.
Подобно
За исключением всех связанных свойств, единичная вершина является в основном точкой в 3D-пространстве. В объекте
Объект грани
Эта путаница объектов, содержащих другие объекты, может вызвать неразбериху, так что держите предыдущую диаграмму в уме, и давайте посмотрим на некоторый пример кода, чтобы разъяснить это. Мы определим куб. Куб состоит из восьми вершин, связанных двенадцатью рёбрами. Восемь вершин также определяют шесть сторон (или граней) куба.(
from Blender import Mesh,Scene
corners=[ (-1,-1,-1), (1,-1,-1), (1,1,-1), (-1,1,-1),
(-1,-1, 1), (1,-1, 1), (1,1, 1), (-1,1,1) ]
sides= [ (0,1,2,3), (4,5,6,7), (0,1,5,4), (1,2,6,5),
(2,3,7,6), (3,0,4,7) ]
me = Mesh.New('Cube')
me.verts.extend(corners)
me.faces.extend(sides)
scn = Scene.GetCurrent()
ob = scn.objects.new(me, 'Cube')
Window.RedrawAll()