Вспышка

Работа с 2D и 3D графикой, видео, звуком.

Модератор: Mikle

GLEB
Бывалый
Бывалый
 
Сообщения: 246
Зарегистрирован: 24.05.2005 (Вт) 12:16

Вспышка

Сообщение GLEB » 05.07.2005 (Вт) 11:22

Есть текстура вспышки от выстрела. Как сделать эту вспышку. Если можно пример (DX8). Заранее благодарен.

RADIST(vb2ar23)
Новичок
Новичок
Аватара пользователя
 
Сообщения: 46
Зарегистрирован: 28.04.2005 (Чт) 14:06

Сообщение RADIST(vb2ar23) » 06.07.2005 (Ср) 1:23

1)Можно на плоскость наложить эту текстуру, прописываешь следующие строки см. п.3
2)Видел Игру GTA San Andreas(кстати я разочарован ею)? Так вот там имитация огня при выстреле делалась двумя плоскостями, перекрещеных между собой. Мне понравилось как у них получилось. Далее накладываешь текстуру на плоскость, а места которых не должно быть видно должен заранее нарисовать в альфа канале, и сажем закинув все это дело в фомат TGA(как известно, имеющий альфа канал). А далее тебе просто нужно прописать вот эти строки:
3)
d3dDevice.SetRenderState D3DRS_SRCBLEND, D3DBLEND_SRCALPHA
d3dDevice.SetRenderState D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA
d3dDevice.SetTextureStageState 0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1
d3dDevice.SetTextureStageState 0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE
d3dDevice.SetRenderState D3DRS_ALPHABLENDENABLE, 1

GLEB
Бывалый
Бывалый
 
Сообщения: 246
Зарегистрирован: 24.05.2005 (Вт) 12:16

Сообщение GLEB » 06.07.2005 (Ср) 11:40

Что-то не совсем понял насчет альфа канала, у меня вспышка на черном фоне. А можно пример?

RADIST(vb2ar23)
Новичок
Новичок
Аватара пользователя
 
Сообщения: 46
Зарегистрирован: 28.04.2005 (Чт) 14:06

Сообщение RADIST(vb2ar23) » 07.07.2005 (Чт) 0:15

В данном примере используется box. Но это без разницы-плоскость, или что там будет. В коде помечено какие строки куда надо ставить.
У вас нет доступа для просмотра вложений в этом сообщении.

GLEB
Бывалый
Бывалый
 
Сообщения: 246
Зарегистрирован: 24.05.2005 (Вт) 12:16

Сообщение GLEB » 07.07.2005 (Чт) 10:48

RADIST, спасибо за пример, но я имел в виду немного не то. Как на текстуре этой вспышки задать цвета, которые будут частично прозрачными.
Например, солнце на небе, свет на фонарном столбе, кровь или копоть от взрыва на стене. Ведь там частично видно стену(небо) через более светлые участки текстуры?

Bonesnapper
Постоялец
Постоялец
 
Сообщения: 434
Зарегистрирован: 12.09.2004 (Вс) 15:39

Сообщение Bonesnapper » 07.07.2005 (Чт) 14:00

Set Texture = D3DX.CreateTextureFromFileEx(D3DDevice, App.Path & "\ex\sss.bmp", D3DX_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, 0, D3DFMT_UNKNOWN, D3DPOOL_MANAGED, D3DX_FILTER_POINT, D3DX_FILTER_POINT , &HFF000000, ByVal 0, ByVal 0)

&HFF000000 -прозрачный цвет

хотя если на черном фоне то мощжно так

GLEB
Бывалый
Бывалый
 
Сообщения: 246
Зарегистрирован: 24.05.2005 (Вт) 12:16

Сообщение GLEB » 07.07.2005 (Чт) 14:41

Большое спасибо! Буду разбираться.

RADIST(vb2ar23)
Новичок
Новичок
Аватара пользователя
 
Сообщения: 46
Зарегистрирован: 28.04.2005 (Чт) 14:06

Сообщение RADIST(vb2ar23) » 07.07.2005 (Чт) 23:52

которые будут частично прозрачными.

А ты будь повниматеоьнее к самому TGA. В том то и вся суть, лткрой его фотошопом например, и в альфа-канале увидишь силуэт рисонка, он будет белым, а все что не видно должно быть- черным. Так если там будет серый цвет скажем, то будет полупрозрачность. Цвета в альфе от белого до черного(черно-белые), так что у тебя есть много вариантов-хоть прозрачными, хоть недопрозрачными, хоть полупрозрчными. Все зависит от цвета в альфа-канале.

GLEB
Бывалый
Бывалый
 
Сообщения: 246
Зарегистрирован: 24.05.2005 (Вт) 12:16

Сообщение GLEB » 19.07.2005 (Вт) 21:35

Все равно ничего не получается. Вот как сделать чтобы этот спрайт выглядел как кровь на стене?
У вас нет доступа для просмотра вложений в этом сообщении.


Вернуться в Мультимедиа

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19

    TopList