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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

location = Vector((12,-12,4)),

rotation = Vector((70,0,45))*math.pi/180)

cam = bpy.context.object.data

cam.lens = 35

bpy.ops.object.lamp_add(type='POINT',

location = Vector((11,-7,6)))

bpy.ops.object.lamp_add(type='POINT',

location =Vector((-7,-10,2)))

run(Vector((0,0,0)))

Частицы огня и дыма

Эта программа добавляет две системы частиц для огня и дыма. Частицы отображаются в виде билбордов с процедурными текстурами.

File firepy - фото 33

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

# File fire.py

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

import bpy, mathutils, math

from mathutils import Vector, Matrix

from math import pi

def createEmitter(origin):

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

emitter = bpy.context.object

bpy.ops.mesh.uv_texture_add()

return emitter

def createFire(emitter):

# Добавление первой системы частиц — огня

bpy.context.scene.objects.active = emitter

bpy.ops.object.particle_system_add()

fire = emitter.particle_systems[-1]

fire.name = 'Fire'

fset = fire.settings

# Эмиссия

fset.name = 'FireSettings'

fset.count = 100

fset.frame_start = 1

fset.frame_end = 200

fset.lifetime = 70

fset.lifetime_random = 0.2

fset.emit_from = 'FACE'

fset.use_render_emitter = False

fset.distribution = 'RAND'

fset.object_align_factor = (0,0,1)

# Скорость

fset.normal_factor = 0.55

fset.factor_random = 0.5

# Физика

fset.physics_type = 'NEWTON'

fset.mass = 1.0

fset.particle_size = 10.0

fset.use_multiply_size_mass = False

# Веса эффекторов

ew = fset.effector_weights

ew.gravity = 0.0 ew.wind = 1.0

# Отображение и рендер

fset.draw_percentage = 100

fset.draw_method = 'RENDER'

fset.material = 1

fset.particle_size = 0.3

fset.render_type = 'BILLBOARD'

fset.render_step = 3

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

fset.child_type = 'SIMPLE'

fset.rendered_child_count = 50

fset.child_radius = 1.1

fset.child_roundness = 0.5 return fire

def createSmoke(emitter):

# Добавление второй системы частиц — дыма

bpy.context.scene.objects.active = emitter

bpy.ops.object.particle_system_add()

smoke = emitter.particle_systems[-1]

smoke.name = 'Smoke' sset = smoke.settings

# Эмиссия

sset.name = 'FireSettings'

sset.count = 100

sset.frame_start = 1

sset.frame_end = 100

sset.lifetime = 70

sset.lifetime_random = 0.2

sset.emit_from = 'FACE'

sset.use_render_emitter = False

sset.distribution = 'RAND'

# Скорость

sset.normal_factor = 0.0

sset.factor_random = 0.5

# Физика

sset.physics_type = 'NEWTON'

sset.mass = 2.5

sset.particle_size = 0.3

sset.use_multiply_size_mass = True

# Веса эффекторов

ew = sset.effector_weights

ew.gravity = 0.0

ew.wind = 1.0

# Отображение и рендер

sset.draw_percentage = 100

sset.draw_method = 'RENDER'

sset.material = 2

sset.particle_size = 0.5

sset.render_type = 'BILLBOARD'

sset.render_step = 3

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

sset.child_type = 'SIMPLE'

sset.rendered_child_count = 50

sset.child_radius = 1.6 return smoke

def createWind(origin):

# Создание ветра

bpy.ops.object.effector_add(

type='WIND',

enter_editmode=False,

location = origin - Vector((0,3,0)),

rotation = (-pi/2, 0, 0))

wind = bpy.context.object

# Настройки поля

fld = wind.field

fld.strength = 2.3

fld.noise = 3.2

fld.flow = 0.3

return wind

def createColorRamp(tex, values):

# Создание цветовой полосы

tex.use_color_ramp = True

ramp = tex.color_ramp

for n,value in enumerate(values):

elt = ramp.elements[n]

(pos, color) = value

elt.position = pos

elt.color = color

return

def createFlameTexture():

tex = bpy.data.textures.new('Flame', type = 'CLOUDS')

createColorRamp(tex, [(0.2, (1,0.5,0.1,1)), (0.8, (0.5,0,0,0))])

tex.noise_type = 'HARD_NOISE'

tex.noise_scale = 0.7

tex.noise_depth = 5

return tex

def createStencilTexture():

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

tex.progression = 'SPHERICAL'

createColorRamp(tex, [(0.0, (0,0,0,0)), (0.85, (1,1,1,0.6))])

return tex

def createEmitTexture():

tex = bpy.data.textures.new('Emit',

type = 'BLEND')

tex.progression = 'LINEAR'

createColorRamp(tex, [(0.1, (1,1,0,1)), (0.3, (1,0,0,1))])

return tex

def createSmokeTexture():

tex = bpy.data.textures.new('Smoke', type = 'CLOUDS')

createColorRamp(tex, [(0.2, (0,0,0,1)), (0.6, (1,1,1,1))])

tex.noise_type = 'HARD_NOISE'

tex.noise_scale = 1.05

tex.noise_depth = 5

return tex

def createFireMaterial(textures, objects):

(flame, stencil, emit) = textures

(emitter, empty) = objects

mat = bpy.data.materials.new('Fire')

mat.specular_intensity = 0.0

mat.use_transparency = True

mat.transparency_method = 'Z_TRANSPARENCY'

mat.alpha = 0.0

mat.use_raytrace = False

mat.use_face_texture = True

mat.use_shadows = False

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

Интервал:

Закладка:

Сделать

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

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


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

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

x