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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

Вес должен быть величиной между 0.0 и 1.0; любой вес больше, чем 1.0 отсекается до 1.0. Вес меньший или равный 0.0 удалит вершину из группы вершин. Если Вы хотите назначить различный вес вершинам в одной и той же группе вершин, Вы должны назначать их в группу с помощью отдельных вызовов метода assignVertsToGroup().

Режим назначения (mode) бывает трёх видов: ADD, REPLACE, и SUBTRACT . ADD добавит новые вершины к группе вершин и свяжет с ними нужный вес. Если какие-нибудь из вершин в списке уже присутствуют, вес к ним будет добавлен. REPLACE заменит вес, связанный с индексами в списке, если они входят в вершинную группу, или ничего не сделает в противном случае. SUBTRACT попытается вычесть вес у вершин в списке и снова ничего не сделает, если они не входят в группу вершин. Чаще всего при добавлении полностью новых групп вершин в меш Вы будете использовать режим ADD .

Весомый вопрос

Для нашего первого примера мы добавим две новых группы вершин к существующему меш-объекту - одна будет содержать все вершины, которые имеют положительную x-координату, а другая будет содержать вершины с отрицательной x-координатой. Мы назовем эти группы Right и Left соответственно.

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

Схема кода: leftright.py

Схематически мы предпримем следующие шаги:

1. Получить активный объект.

2. Проверить, что это - меш и получить меш-данные.

3. Добавить две новых группы вершин к объекту - Left и Right.

4. Для всех вершин в меше:

1. Посчитать вес

2. Если x-координата > 0:

3. Добавить индекс вершины и вес в группу вершин right

4. Если x-координата < 0:

5. Добавить индекс вершины и вес в группу вершин left

Для того, чтобы убедиться, что новая группа вершин пуста, мы проверяем, существует ли уже эта группа, и в этом случае удаляем из неё вершины. Эта проверка выделена в коде:

def leftright(me,maximum=1.0):

center=vec(0,0,0)

left =[]

right=[]

for v in me.verts:

weight = (v.co-center).length/maximum

if v.co.x > 0.0 :

right.append((v.index, weight))

elif v.co.x > 0.0 :

left.append((v.index, weight))

return left,right

if __name__ == "__main__":

try:

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

me = ob.getData(mesh=True)

vgroups = me.getVertGroupNames()

if 'Left' in vgroups:

me.removeVertsFromGroup('Left')

else:

me.addVertGroup('Left')

if 'Right' in vgroups:

me.removeVertsFromGroup('Right')

else:

me.addVertGroup('Right')

left,right = leftright(me,vec(ob.getSize()).length)

for v,w in left:

me.assignVertsToGroup('Left',[v],

w,Blender.Mesh.AssignModes.ADD)

for v,w in right:

me.assignVertsToGroup('Right',[v],w,

Blender.Mesh.AssignModes.ADD)

Blender.Window.Redraw()

except Exception as e:

Blender.Draw.PupMenu('Error%t|'+str(e)[:80])

Полный скрипт доступен в файле leftright.py . Формуле, вычисляющей вес, возможно, нужно некоторое объяснение: для того, чтобы назначить максимальный вес 1.0 в точке, лежащей на наибольшем расстоянии от центра объекта, мы должны масштабировать максимально возможным расстоянием. Мы могли бы пройтись циклом по всем вершинам, чтобы сначала определить максимум, но здесь мы решаем аппроксимировать этот максимум корнем от суммы квадратов размеров. Это заведомо больше максимального расстояния, так что максимальный вес, назначаемый любой из вершин, вероятно, будет меньше чем 1.0. Тем не менее, получение размера - значительно быстрее, чем расчет точного максимума для больших мешей. Также заметьте, что мы вычисляем расстояние до центра (центр объекта в режиме просмотра вершин в меше - всегда в (0, 0, 0)).

Он может отличаться от того, что пользователь может воспринимать как центр меша. (Центр объекта отображается как розовая точка в Блендере и может быть изменён, чтобы лежать в средней позиции всех вершин, с помощью Object | Transform | Center new.)

Результирующий вес для меша может выглядеть похожим на это:

Модификаторы Модификаторы это инструменты которые изменяют меш - фото 35

Модификаторы

Модификаторы - это инструменты, которые изменяют меш не-разрушающим способом, и могут корректироваться интерактивно. Другие объекты также могут иметь модификаторы: 3d-текст, Метаболлы и Кривые, например. Эти объекты могут быть представлены как сетки, так что их тоже можно модифицировать. Всё же не все модификаторы могут быть связаны с этими объектами. При желании, эффекты модификаторов можно сделать постоянными, применив их (apply). Блендер обеспечивает целый ряд модификаторов от subsurface до всех видов деформирующих модификаторов. Таблица показывает список доступных модификаторов:

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

Интервал:

Закладка:

Сделать

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

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


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

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

x