Читаем Написание скриптов для Blender 2.49 полностью

По-моему, автор сам ввёл лишнюю путаницу в терминологию, называя блоки данных типа Mesh или Lamp объектами. Проще было бы сразу вводить различные термины и применять их всё время: Объекты, Блоки данных, Экземпляры классов. - недоумение пер.

<p>Добавление различных типов объектов из скрипта</p>

Добавление других типов объектов, во многих случаях, так же просто, как добавление нашего текстового объекта. Если мы хотим, чтобы наша сцена была заполнена таким образом, чтобы её можно было отрендерить, то мы должны добавить камеру и лампу, чтобы делать вещи видимыми. Добавление камеры на ту же сцену можно сделать подобно этому (предположим, что у нас все еще есть ссылка на нашу активную сцену в переменной scn):

from Blender import Camera

cam = Camera.New()  # создаёт новый блок данных камеры

ob = scn.objects.new(cam)# добавляет новый объект

                         # камеры

scn.setCurrentCamera(ob) # делает эту камеру активной

Заметьте, что объект Камеры снова отличается от фактических данных камеры. Объект Camera содержит данные, специфичные для камеры, например, угол обзора, а объект Блендера содержит данные, общие для всех объектов, особенно позицию (местоположение) и вращение. Мы позже снова столкнемся с камерами, и увидим как мы можем указать им и установить угол обзора.

Лампы абсолютно также следуют за этим образцом:

from Blender import Lamp

lamp = Lamp.New()            # создаёт новую лампу

ob = scn.objects.new(lamp)

Снова, объект Lamp содержит данные, специфичные для лампы, как например, тип (например, spot или area) или энергия, в то время как объект Блендера инкапсулирует заданные ему позицию и вращение.

Этот образец аналогичен для объекта Меша, но ситуация здесь тонко отличается, поскольку меш - это конгломерат вершин, рёбер, и граней среди других свойств.

Добавление меш-объекта

Подобно Лампе или Камере, Меш является объектом Блендера, который изолирует другой объект, в данном случае, объект Blender.Mesh. Но в отличие от объектов Blender.Lamp или Blender.Camera, на этом всё не заканчивается. Объект Blender.Mesh сам может содержать множество других объектов. Эти объекты — вершины (vertices), рёбра (edges) и грани (faces). Каждый из них может иметь множество связанных свойств. Они могут быть выбраны или спрятаны, и могут иметь поверхностную нормаль или ассоциированную UV-текстуру.

За исключением всех связанных свойств, единичная вершина является в основном точкой в 3D-пространстве. В объекте Blender.Mesh любое количество вершин организовано в списке объектов Blender.Mesh.MVert. В полученном меш-объекте me этот список может быть доступен как me.verts. Ребро является линией, соединяющей две вершины в Блендере и представлено объектом Blender.Mesh.MEdge. Его основные свойства - это v1 и v2, которые являются ссылками на объекты MVert. Список рёбер в Меш-объекте может быть доступен как me.edges.

Объект грани MFace похож на ребро, в основном это список ссылок на вершины, которые определяют его. Если у нас есть MFace-объект face, этот список может быть доступен как face.verts.

Эта путаница объектов, содержащих другие объекты, может вызвать неразбериху, так что держите предыдущую диаграмму в уме, и давайте посмотрим на некоторый пример кода, чтобы разъяснить это. Мы определим куб. Куб состоит из восьми вершин, связанных двенадцатью рёбрами. Восемь вершин также определяют шесть сторон (или граней) куба.(corners переводится как углы, sides — стороны — прим. пер.)

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()

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных