Читаем Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода полностью

Эта программа добавляет сферу с волосами. Для волос строится шейдер типа strand.

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

# File hair.py

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

import bpy 

def createHead(origin):

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

bpy.ops.mesh.primitive_ico_sphere_add(location=origin)

 ob = bpy.context.object

 bpy.ops.object.shade_smooth()  

    # Создание группы вершин scalp (скальп), а также добавление вершин и весов

    scalp = ob.vertex_groups.new('Scalp')

    for v in ob.data.vertices:

        z = v.co[2]

        y = v.co[1]

        if z > 0.3 or y > 0.3:

             w = 2*(z-0.3)

             if w > 1:

                 w = 1

             scalp.add([v.index], w, 'REPLACE')

    return ob 

def createMaterials(ob):

    # Некоторый материал для кожи

    skinmat = bpy.data.materials.new('Skin')

    skinmat.diffuse_color = (0.6,0.3,0)  

    # Материал strand для волос

    hairmat = bpy.data.materials.new('Strand')

    hairmat.diffuse_color = (0.2,0.04,0.0)

    hairmat.specular_intensity = 0  

    # Прозрачность

    hairmat.use_transparency = True

    hairmat.transparency_method = 'Z_TRANSPARENCY'

    hairmat.alpha = 0 

    # Strand. Нужно включить use Blender units перед заданием размеров.

    strand = hairmat.strand

    strand.use_blender_units = True

    strand.root_size = 0.01

    strand.tip_size = 0.0025

    strand.size_min = 0.001

    #strand.use_surface_diffuse = True # read-only

    strand.use_tangent_shading = True  

    # Текстура

    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'

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

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

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

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

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

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

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

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

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