Вход/Регистрация
Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода
вернуться

Larsson Thomas

Шрифт:

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

#
 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):

  • Читать дальше
  • 1
  • ...
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: