Thomas Larsson - Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода

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

Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода: краткое содержание, описание и аннотация

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

Третье издание, расширенное и обновлённое для Blender 2.57

Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода — читать онлайн бесплатно полную книгу (весь текст) целиком

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

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

Интервал:

Закладка:

Сделать

tex = bpy.data.textures.new('Blend', type = 'BLEND')

tex.progression = 'LINEAR'

tex.use_flip_axis = 'HORIZONTAL'

# Создание цветовой полосы для цвета и альфа-канала

tex.use_color_ramp = True

tex.color_ramp.interpolation = 'B_SPLINE'

# Точки на цветовой полосе: (pos, rgba)

# Не знаю, как добавлять точки на полосу

rampTable = [

(0.0, (0.23,0.07,0.03,0.75)),

#(0.2, (0.4,0.4,0,0.5)),

#(0.7, (0.6,0.6,0,0.5)),

(1.0, (0.4,0.3,0.05,0))

]

elts = tex.color_ramp.elements

n = 0

for (pos, rgba) in rampTable:

elts[n].position = pos

elts[n].color = rgba

n += 1

# Добавление текстуры blend к hairmat

mtex = hairmat.texture_slots.add()

mtex.texture = tex

mtex.texture_coords = 'STRAND'

mtex.use_map_color_diffuse = True

mtex.use_map_alpha = True

# Добавление материала к мешу

ob.data.materials.append(skinmat) # Material 1 = Skin

ob.data.materials.append(hairmat) # Material 2 = Strand

return

def createHair(ob):

# Создание системы частиц hair

bpy.ops.object.particle_system_add()

psys = ob.particle_systems.active

psys.name = 'Hair'

# psys.global_hair = True

psys.vertex_group_density = 'Scalp'

pset = psys.settings

pset.type = 'HAIR'

pset.name = 'HairSettings'

# Эмиссия

pset.count = 40

pset.hair_step = 7

pset.emit_from = 'FACE'

# Рендер

pset.material = 2

pset.use_render_emitter = True

pset.render_type = 'PATH'

pset.use_strand_primitive = True

pset.use_hair_bspline = True

# Дочерние частицы

pset.child_type = 'SIMPLE'

pset.child_nbr = 10

pset.rendered_child_count = 500

pset.child_length = 1.0

pset.child_length_threshold = 0.0

pset.child_roundness = 0.4

pset.clump_factor = 0.862

pset.clump_shape = 0.999

pset.roughness_endpoint = 0.0

pset.roughness_end_shape = 1.0

pset.roughness_1 = 0.0

pset.roughness_1_size = 1.0

pset.roughness_2 = 0.0

pset.roughness_2_size = 1.0

pset.roughness_2_threshold = 0.0

pset.kink = 'CURL'

pset.kink_amplitude = 0.2

pset.kink_shape = 0.0

pset.kink_frequency = 2.0

return

def run(origin):

ob = createHead(origin)

createMaterials(ob)

createHair(ob) return

if __name__ == "__main__":

bpy.ops.object.select_by_type(type='MESH')

bpy.ops.object.delete()

run((0,0,0))

Редактируемые волосы

Эта программа добавляет сферу с редактируемыми волосами от полученных направляющих (guides) волос. Если мы переключаемся в режим редактирования, все пряди становятся прямыми, то есть результат редактирования теряется. Это можно предотвратить, если вы переключитесь в режим частиц, выберите объект, и переключитесь обратно в режим объекта. К сожалению, я не нашел способа сделать это с помощью скрипта.

#---------------------------------------------------

# File edit_hair.py

# Имеет недостатки, но может быть интересна в любом случае.

#---------------------------------------------------

import bpy

def createHead():

# Добавление меша эмиттера

bpy.ops.mesh.primitive_ico_sphere_add()

ob = bpy.context.object

ob.name = 'EditedHair'

bpy.ops.object.shade_smooth()

return ob

def createHair(ob, guides):

nGuides = len(guides)

nSteps = len(guides[0])

# Создание системы частиц hair

bpy.ops.object.mode_set(mode='OBJECT')

bpy.ops.object.particle_system_add()

psys = ob.particle_systems.active

psys.name = 'Hair'

# Настройки частиц

pset = psys.settings

pset.type = 'HAIR'

pset .name = 'HairSettings'

pset.count = nGuides

pset.hair_step = nSteps-1

pset.emit_from = 'FACE'

pset.use_render_emitter = True

# Дочерние частицы

pset.child_type = 'SIMPLE'

pset.child_nbr = 6

pset.rendered_child_count = 300

pset.child_length = 1.0

pset.child_length_threshold = 0.0

# Отсоединение волос и переключение в режим редактирования частиц

bpy.ops.particle.disconnect_hair(all=True)

bpy.ops.particle.particle_edit_toggle()

# Настройка всех ключевых волос

dt = 100.0/(nSteps-1)

dw = 1.0/(nSteps-1)

for m in range(nGuides):

guide = guides[m]

part = psys.particles[m]

part.location = guide[0]

for n in range(1, nSteps):

point = guide[n]

h = part.hair_keys[n-1]

h.co_hair_space = point

h.time = n*dt

h.weight = 1.0 - n*dw

# Переключение режима редактирования частиц

bpy.ops.particle.select_all(action='SELECT')

bpy.ops.particle.particle_edit_toggle()

# Подсоединение волос к мешу

# Во время рендера случится Segmentation violation, если эта строка отсутствует.

bpy.ops.particle.connect_hair(all=True)

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

# 1. Переключиться в режим частиц

# 2. Прикоснуться к объекту с кистью

# 3. Переключиться в режим объектов

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

Интервал:

Закладка:

Сделать

Похожие книги на «Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода»

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


Отзывы о книге «Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода»

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

x