Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода
Шрифт:
import bpy
def makeMaterial(name, diffuse, specular, alpha):
mat = bpy.data.materials.new(name)
mat.diffuse_color = diffuse
mat.diffuse_shader = 'LAMBERT'
mat.diffuse_intensity = 1.0
mat.specular_color = specular
mat.specular_shader = 'COOKTORR'
mat.specular_intensity = 0.5
mat.alpha = alpha
mat.ambient = 1
return mat
def setMaterial(ob, mat):
me = ob.data
me.materials.append(mat)
def run(origin):
#
Создание двух материалов
red = makeMaterial('Red', (1,0,0), (1,1,1), 1)
blue = makeMaterial('BlueSemi', (0,0,1), (0.5,0.5,0), 0.5)
# Создание синего куба
bpy.ops.mesh.primitive_cube_add(location=origin)
setMaterial(bpy.context.object, red)
# и красной сферы
bpy.ops.mesh.primitive_uv_sphere_add(location=origin)
bpy.ops.transform.translate(value=(1,0,0)
)
setMaterial(bpy.context.object, blue)
if __name__ == "__main__":
run((0,0,0))
Текстуры
Эта программа создает материал с двумя текстурами: текстура image, отображаемая на цвет и альфу, и процедурная bump-текстура. (Может я чего-то недопонимаю, но их там три вообще-то...
– прим. пер.)
Используйте этот рисунок как текстуру и измените имя на color.png:
#----------------------------------------------------------
# File texture.py
#----------------------------------------------------------
import bpy, os
def run(origin):
# Загрузка файла с рисунком. Измените здесь, если каталог snippets
# расположен не в Вашем домашнем каталоге.
realpath = os.path.expanduser('~/snippets/textures/color.png')
try:
img = bpy.data.images.load(realpath)
except:
raise NameError("Cannot load image %s" % realpath)
#
Создание текстуры image из загруженного рисунка
cTex = bpy.data.textures.new('ColorTex', type = 'IMAGE')
cTex.image = img
# Создание процедурной текстуры
sTex = bpy.data.textures.new('BumpTex', type = 'STUCCI')
sTex.noise_basis = 'BLENDER_ORIGINAL'
sTex.noise_scale = 0.25
sTex.noise_type = 'SOFT_NOISE'
sTex.saturation = 1
sTex.stucci_type = 'PLASTIC'
sTex.turbulence = 5
# Создание текстуры blend с цветовой полосой (color ramp)
# Не знаю, как добавлять элементы к полосе, так что сейчас только два
bTex = bpy.data.textures.new('BlendTex', type = 'BLEND')
bTex.progression = 'SPHERICAL'
bTex.use_color_ramp = True
ramp = bTex.color_ramp
values = [(0.6, (1,1,1,1)), (0.8, (0,0,0,1))]
for n,value in enumerate(values):
elt = ramp.elements[n]
(pos, color) = value
elt.position = pos
elt.color = color
# Создание материала
mat = bpy.data.materials.new('TexMat')
# Добавление текстурного слота для цветной текстуры
mtex = mat.texture_slots.add
mtex.texture = cTex
mtex.texture_coords = 'UV'
mtex.use_map_color_diffuse = True
mtex.use_map_color_emission = True
mtex.emission_color_factor = 0.5
mtex.use_map_density = True
mtex.mapping = 'FLAT'
# Добавление текстурного слота для bump-текстуры
mtex = mat.texture_slots.add
mtex.texture = sTex
mtex.texture_coords = 'ORCO'
mtex.use_map_color_diffuse = False
mtex.use_map_normal = True
#mtex.rgb_to_intensity = True
# Добавление текстурного слота
Поделиться:
Популярные книги
Вдова на выданье
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Шлейф сандала
Фантастика:
фэнтези
6.00
рейтинг книги
Отморозки
Фантастика:
научная фантастика
7.00
рейтинг книги
Ведьмак (большой сборник)
Ведьмак
Фантастика:
фэнтези
9.29
рейтинг книги
Надуй щеки! Том 2
2. Чеболь за партой
Фантастика:
попаданцы
дорама
фантастика: прочее
5.00
рейтинг книги
Новый Рал 7
7. Рал!
Фантастика:
попаданцы
5.00
рейтинг книги
Камень. Книга вторая
2. Камень
Фантастика:
фэнтези
8.52
рейтинг книги
По воле короля
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Фею не драконить!
2. Феями не рождаются
Фантастика:
юмористическая фантастика
5.00
рейтинг книги
Лишняя дочь
Любовные романы:
любовно-фантастические романы
8.22
рейтинг книги
Идеальный мир для Лекаря 22
22. Лекарь
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Новый Рал 3
3. Рал!
Фантастика:
попаданцы
5.88
рейтинг книги
Ученик. Книга 4
4. Ученик
Фантастика:
фэнтези
5.67
рейтинг книги
Ворон. Осколки нас
2. Ворон
Любовные романы:
современные любовные романы
5.00