Показать сообщение отдельно
Старый 18.07.2014, 22:51   #9
MadMedic
ПроЭктировщик
 
Регистрация: 05.08.2006
Сообщений: 183
Написано 107 полезных сообщений
(для 410 пользователей)
Re: Освещение спрайта

В один проход такой эффект не сделать, потому что dot3 блендит не только информацию о цвете но и о альфе. Вот набросал код в БлицСДК (самого лица под рукой нет). Папка tex в аттаче
Graphics3D (640, 480, 0, 2)

cam = CreateCamera ()
CameraCLsColor(cam, 255, 66, 66)
CameraProjMode(cam, 2)
CameraZoom(cam, 0.5)
BumpMap=LoadTexture("tex\map-falloff.jpg", 1+16+32)
LightMap=LoadTexture("tex\map-falloff-diff.jpg", 1+16+32)


WallDiff=LoadTexture("tex\wall\wall_diff.jpg")
WallBump=LoadTexture("tex\wall\bump.jpg")
TextureBlend(WallBump, 4)

Wall=CreateCube()
MoveEntity(Wall, 0, 0, 3.2)
EntityFx(Wall, 1)
EntityTexture(Wall, BumpMap, 0, 0)
EntityTexture(Wall, WallBump, 0, 1)
EntityTexture(Wall, WallDiff, 0, 2)

CharDiffAlpha=LoadTexture("tex\char\diff_alpha.png", 1+2)
CharBump=LoadTexture("tex\char\bump.bmp", 1)
TextureBlend(CharBump, 4)
CharAlpha=LoadTexture("tex\char\alpha2.bmp", 1)    ;NOT ALPHA, WILL MULTIPLY

Char=CreateCube()
MoveEntity(Char, 0, 0, 3.1)
EntityFx(Char, 1+32)
EntityTexture(Char, CharDiffAlpha,0, 0)
EntityTexture(Char, LightMap,0, 1)

CharFX=CreateCube()
MoveEntity(CharFX, 0, 0, 3.0)
EntityFx(CharFX, 1)
EntityTexture(CharFX, BumpMap,0, 0)
EntityTexture(CharFX, CharBump,0, 1)
EntityTexture(CharFX, CharAlpha,0, 2)
EntityBlend(CharFX, 3)

Repeat
  
  If KeyDown(57)=0
  PositionTexture(BumpMap, Sin(Millisecs()*0.0015)*0.5, Cos(Millisecs()*0.0025)*0.50)
  PositionTexture(LightMap, Sin(Millisecs()*0.0015)*0.5, Cos(Millisecs()*0.0025)*0.50)
EndIf

 
    RenderWorld ()
    Flip ()
    
Until KeyHit (1)
Миниатюры
Нажмите на изображение для увеличения
Название: im1.png
Просмотров: 1122
Размер:	69.2 Кб
ID:	20737  Нажмите на изображение для увеличения
Название: im2.png
Просмотров: 1101
Размер:	86.4 Кб
ID:	20738  
Вложения
Тип файла: rar tex.rar (267.1 Кб, 821 просмотров)
(Offline)
 
Ответить с цитированием
Эти 7 пользователя(ей) сказали Спасибо MadMedic за это полезное сообщение:
ABTOMAT (21.07.2014), Arton (19.07.2014), DStalk (22.07.2014), Gector (19.07.2014), Nerd (20.07.2014), p314 (19.07.2014), Черный крыс (19.07.2014)