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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

# Добавление обезьяны

bpy.ops.mesh.primitive_monkey_add()

monkey = bpy.context.object

# Добавление ограничения "следовать по пути" обезьяне

cns = monkey.constraints.new('FOLLOW_PATH')

cns.target = pathOb

cns.use_curve_follow = True

cns.use_curve_radius = True

cns.use_fixed_location = False

cns.forward_axis = 'FORWARD_Z'

cns.up_axis = 'UP_Y'

return

if __name__ == "__main__":

run((0,0,0))

bpy.ops.screen.animation_play(reverse=False, sync=False)

Камера и освещение

Эта программа добавляет источник света "солнце" к сцене, и прожекторы (spot) для каждого объекта рендера на сцене. Каждый прожектор имеет ограничение TrackTo , заставляющее быть направленным на свой объект, тогда как солнце отслеживает центр всех объектов, визуализируемых на сцене.

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

# File camera.py

# Adds one camera and several lights

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

import bpy, mathutils, math

from mathutils import Vector

from math import pi

def findMidPoint():

# Нахождение позиции середины всех визуализируемых объектов

sum = Vector((0,0,0))

n = 0

for ob in bpy.data.objects:

if ob.type not in ['CAMERA', 'LAMP', 'EMPTY']:

sum += ob.location

n += 1

if n == 0:

return sum

else:

return sum/n

def addTrackToConstraint(ob, name, target):

# Добавление ограничения TrackTo

cns = ob.constraints.new('TRACK_TO')

cns.name = name

cns.target = target

cns.track_axis = 'TRACK_NEGATIVE_Z'

cns.up_axis = 'UP_Y'

cns.owner_space = 'WORLD'

cns.target_space = 'WORLD'

return

def createLamp(name, lamptype, loc):

# Создание источника освещения

bpy.ops.object.add(

type='LAMP',

location=loc)

ob = bpy.context.object

ob.name = name

lamp = ob.data

lamp.name = 'Lamp'+name

lamp.type = lamptype

return ob

def createLamps(origin, target):

deg2rad = 2*pi/360

sun = createLamp('sun', 'SUN', origin+Vector((0,20,50)))

lamp = sun.data

lamp.type = 'SUN'

addTrackToConstraint(sun, 'TrackMiddle', target)

for ob in bpy.context.scene.objects:

if ob.type == 'MESH':

spot = createLamp(ob.name+'Spot', 'SPOT', ob.location+Vector((0,2,1)))

bpy.ops.transform.resize(value=(0.5,0.5,0.5))

lamp = spot.data

# Лампа

lamp.type = 'SPOT'

lamp.color = (0.5,0.5,0)

lamp.energy = 0.9

lamp.falloff_type = 'INVERSE_LINEAR'

lamp.distance = 7.5

# Форма луча прожектора

lamp.spot_size = 30*deg2rad

lamp.spot_blend = 0.3

# Тени

lamp.shadow_method = 'BUFFER_SHADOW'

lamp.use_shadow_layer = True

lamp.shadow_buffer_type = 'REGULAR'

lamp.shadow_color = (0,0,1)

addTrackToConstraint(spot, 'Track'+ob.name, ob)

return

def createCamera(origin, target):

# Создание объекта и камеры

bpy.ops.object.add(

type='CAMERA',

location=origin,

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

ob = bpy.context.object

ob.name = 'MyCamOb'

cam = ob.data

cam.name = 'MyCam'

addTrackToConstraint(ob, 'TrackMiddle', target)

# Объектив

cam.type = 'PERSP'

cam.lens = 75

cam.lens_unit = 'MILLIMETERS'

cam.shift_x = -0.05

cam.shift_y = 0.1

cam.clip_start = 10.0

cam.clip_end = 250.0

empty = bpy.data.objects.new('DofEmpty', None)

empty.location = origin+Vector((0,10,0))

cam.dof_object = empty

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

cam.show_title_safe = True

cam.show_name = True

# Делаем её текущей камерой

scn = bpy.context.scene

scn.camera = ob

return ob

def run(origin):

# Удаление всех камер и ламп

scn = bpy.context.scene

for ob in scn.objects:

if ob.type == 'CAMERA' or ob.type == 'LAMP':

scn.objects.unlink(ob)

# Добавление пустышки в середине всех визуализируемых объектов

midpoint = findMidPoint()

bpy.ops.object.add(

type='EMPTY',

location=midpoint),

target = bpy.context.object

target.name = 'Target'

createCamera(origin+Vector((50,90,50)), target)

createLamps(origin, target)

return

if __name__ == "__main__":

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

Мир, вид и рендер

Мир

Эта программа модифицирует настройки Мира. Изображение является рендером куба по-умолчанию со встроенной камерой и освещением.

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

# File world.py

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

import bpy

def run():

world = bpy.context.scene.world

# Настройки Мира

world.use_sky_blend = True

world.ambient_color = (0.05, 0, 0)

world.horizon_color = (0, 0, 0.2)

world.zenith_color = (0.04, 0, 0.04)

# Звёзды

sset = world.star_settings

sset.use_stars = True

sset.average_separation = 17.8

sset.color_random = 1.0

sset.distance_min = 0.7

sset.size = 10

# Окружающее освещение

wset = world.light_settings

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

Интервал:

Закладка:

Сделать

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

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


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

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

x