Michel Anders - Написание скриптов для Blender 2.49

Здесь есть возможность читать онлайн «Michel Anders - Написание скриптов для Blender 2.49» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программы, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Написание скриптов для Blender 2.49: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Написание скриптов для Blender 2.49»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Расширьте мощность и гибкость Блендера с помощью Питона: высокоуровневого, легкого для изучения скриптового языка

Написание скриптов для Blender 2.49 — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Написание скриптов для Blender 2.49», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Цвета вершин сохраняются как объекты Mesh.MCol (основаны на кортежах RGBA) в атрибуте грани col . Атрибут col является списком, содержащим ссылку на объект MCol для каждой вершины в грани. У такого размещения проявится смысл, когда Вы поймёте, что фактически материалы связаны с гранями, а не с вершинами. Когда цвета вершин различны, они линейно интерполируются через грань.

Присваивать атрибуту грани col возможно, если только у меша был установлен его атрибут vertexColors в Истину.

Следующий пример показывает, как мы можем установить цвета вершин меша. Мы выбираем градации серого в зависимости от координаты z вершин (выделено).

import Blender

ob=Blender.Scene.getCurrent().objects.active

me=ob.getData(mesh=1)

me.vertexColors=True

for f in me.faces:

for i,v in enumerate(f.verts):

g = int(max(0.0,min(1.0,v.co.z))*255)

f.col[i].r=g

f.col[i].g=g

f.col[i].b=g

mats=[Blender.Material.New()]

mats[0].setMode(Blender.Material.Modes['VCOL_PAINT'])

ob.setMaterials(mats)

ob.colbits=1

ob.makeDisplayList()

Blender.Window.RedrawAll()

Полный код доступен как VertexColors.py .

Добавление материалов в нашу гравюру

Как последний штрих в нашей деятельности с гравюрой, мы добавим два материала. Один индекс материала назначим вершинам на поверхности, и другой вершинам в выточенных канавках. Этим методом мы можем, например, создать проявление вновь созданной надписи на куске выветренного камня.

Так как мы ранее определили несколько удобных групп вершин, назначение индексов материала будет вопросом итерации над всеми гранями и назначения в каждую вершину грани подходящего индекса материала в зависимости от того, членом какой вершинной группы является вершина. Функция, показанная ниже, принимает чуть более общий подход, так как она принимает меш и список регулярных выражений, и назначает индекс материала на каждую грань в зависимости от принадлежности к группе вершин, которая имеет имя, соответствующее одному из регулярных выражений.

Эти функции делают очень легким назначение одинакового индекса материала во все группы вершин, которые имеют аналогичные имена, например все хвосты и сегменты грудной клетки меша, создаваемого creepycrawlies.py (они все имеют такие имена как, например, tail.0, tail.1 , , и так далее).

Функция доступна в Tools.py . Она зависит от функции Питона re.search() , которая сопоставляет регулярное выражение со строкой. Выделенная строка показывает, что мы вставляем строку регулярного выражения в так называемые якоря (^ и $). Этим путём регулярное выражение, такое как например, aaaa, сопоставится только с группой вершин с именем aaaa, а не с именем aaaa.0, так что мы сможем различить их, если мы хотим. Если же мы хотим соответствия всем именам групп вершин, которые начинаются с tail, мы могли бы, например, передать регулярное выражение tail.* .

Регулярные выражения являются чрезвычайно мощным способом сопоставления строк. Если Вы незнакомы с ними, Вы должны обратиться к документации по модулю Питона re ( http://docs.python.org/library/re.html). Можно начать, например, с http://wiki.intuit.ru.

Другая вещь, которую нужно отметить в этой функции — использование операций с множествами. Они немного ускорят процесс, так как операции с множествами в Питоне чрезвычайно быстрые. Мы используем их здесь, чтобы проверять множество вершин (или, скорее, их индексов), которые составляют грань, на то, что все они входят в множество индексов вершин, находящихся в некоторой группе вершин. Мы заранее вычисляем оба множества индексов вершин, те, которые принадлежат группе вершин и индексы вершин каждой грани, и храним их в словарях для легкого доступа. Таким образом, мы создаем эти множества только однажды, для каждой группы вершин и для каждой грани соответственно, вместо воссоздания каждого множества всякий раз, когда мы сопоставляем регулярное выражение. Для больших мешей это потенциально сохранит много времени (за счет памяти).

import re

def matindex2vertgroups(me,matgroups):

if len(matgroups)>16 :

raise ArgumentError("number of groups larger than

number of materials possible (16)")

groupnames = me.getVertGroupNames()

vertexgroupset={}

for name in groupnames:

vertexgroupset[name]=set(me.getVertsFromGroup(name))

print name,len(vertexgroupset[name])

faceset={}

for f in me.faces:

faceset[f.index]=set([v.index for v in f.verts])

for i,matgroup in enumerate(matgroups):

for name in groupnames:

if re.search('^'+matgroup+'$',name):

for f,vset in faceset.items():

if vset.issubset(vertexgroupset[name]) :

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Написание скриптов для Blender 2.49»

Представляем Вашему вниманию похожие книги на «Написание скриптов для Blender 2.49» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Написание скриптов для Blender 2.49»

Обсуждение, отзывы о книге «Написание скриптов для Blender 2.49» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x