3D-программирование Вопросы, касающиеся программирования 3D мира
16.07.2014, 20:37
#2
Легенда
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений (для 5,072 пользователей)
Ответ: Освещение спрайта
Сообщение от
p314
Пример покажи(скрин или код). Подозреваю что-там что-то не то с флагами или блендом. Но со слов трудно определить.
(Offline)
16.07.2014, 21:03
#3
ПроЭктировщик
Регистрация: 05.08.2006
Сообщений: 183
Написано 107 полезных сообщений (для 410 пользователей)
Re: Освещение спрайта
Красиво выглядит ...
(Offline)
Сообщение было полезно следующим пользователям:
16.07.2014, 23:55
#4
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,742
Написано 5,461 полезных сообщений (для 15,675 пользователей)
Ответ: Освещение спрайта
Боюсь, никак. При опеределёных сочетаниях блендов/fx прозрачность не сделать. Это же DirectX 7.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов *
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
(Offline)
17.07.2014, 02:23
#5
AnyKey`щик
Регистрация: 15.07.2014
Сообщений: 8
Написано 2 полезных сообщений (для 2 пользователей)
Ответ: Освещение спрайта
Похоже прозрачность теряется если индекс текстуры отличен от нуля.Отсюда я делаю вывод, что мультитекстурирование с прозрачными областями в blitze не работает.
пример на всякий случай прикладываю
sprite_demo.rar
ps. Если все так плохо - куда дальше двигаться в более-менее блитцеподобное(minib3d например) ?
(Offline)
17.07.2014, 04:44
#6
Быдлокодер
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,024
Написано 2,313 полезных сообщений (для 5,350 пользователей)
Ответ: Освещение спрайта
Во-первый не установлены флаги.
tex1=
LoadTexture ("
stone_diff.png "
,2 )
Во-вторых это бесполезно.
Вариант с альфой:
Вариант с маской можно даже не рассматривать:
(Offline)
17.07.2014, 15:58
#7
Бывалый
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений (для 866 пользователей)
Ответ: Освещение спрайта
ЮзатьXors3D Где все это работает !
(Offline)
17.07.2014, 22:01
#8
Социал-сычевист
Регистрация: 24.06.2011
Сообщений: 611
Написано 342 полезных сообщений (для 1,359 пользователей)
Ответ: Освещение спрайта
Сообщение от
p314
Похоже прозрачность теряется если индекс текстуры отличен от нуля.Отсюда я делаю вывод, что мультитекстурирование с прозрачными областями в blitze не работает.
пример на всякий случай прикладываю
Вложение 20730
ps. Если все так плохо - куда дальше двигаться в более-менее блитцеподобное(minib3d например) ?
Да, минибздун как вариант, если есть желание влезть в гл и поработать напильником
(Offline)
18.07.2014, 22:51
#9
ПроЭктировщик
Регистрация: 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)
Миниатюры
Вложения
tex.rar (267.1 Кб, 1081 просмотров)
(Offline)
Эти 7 пользователя(ей) сказали Спасибо MadMedic за это полезное сообщение:
22.07.2014, 03:32
#10
Ответ: Освещение спрайта
Кто-нибудь знает как в OpenGL делается бамп?
22.07.2014, 03:40
#11
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
Ответ: Освещение спрайта
нормальные люди шейдером делают
(Offline)
Сообщение было полезно следующим пользователям:
22.07.2014, 07:51
#12
Ответ: Освещение спрайта
Мне бы сделать методом НЕ нормальных людей..
22.07.2014, 12:49
#13
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
Ответ: Освещение спрайта
ну раз уж ты взял опенгл, то почему шейдеры не курнуть?
если тебе для 2д спрайтов, то задача ещё проще, чем для 3д, т.к. нормали спрайтов = нормали нормалмап.
clamp(dot(lightDir, normal), 0.0, 1.0) * lightColor
(Offline)
Сообщение было полезно следующим пользователям:
Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
Часовой пояс GMT +4, время: 14:27 .