![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
PD3 - Рендер в текстуру
Warchief © (2005-04-30 20:10:00)Кто-нибудь делал?
Warchief (2005-05-14 13:54:00) [21]ну так чего там?
Warchief (2005-05-11 11:47:00) [22]И не забудь сделать нормальную обработку потери фокуса окном :)
dRake (2005-05-11 03:35:00) [23]Зашибись =)
Альфу сделал, сейчас немного причешу все функции.. погоняю..
Правда пришлось переползти на девятую версию Direct3D, да и D3DX тоже (что не очень гуд - D3DX9_24.dll весит 2.11Mb), впрочем она должна идти вместе с директиксом.
dRake (2005-05-10 22:30:00) [24]Ну раз нету то вышлю... Щас вроде нашел способ реализовать альфу... Вот только разберусь окончательно...
Warchief (2005-05-10 10:55:00) [25]> PG_Lock/PG_Unlock, PG_SetRGB, PG_GetRGB, PG_SetA, PG_GetA...
нету
dRake (2005-05-09 23:58:00) [26]>А как? И в альфу тоже можно?
Хм... раз можно читать/писать пиксел текстуры, а пиксел является совокупностью ARGB компонент цвета, то логично что раз компонента A входит в состав пиксела, то изменять ее тоже можно =)
Посмотри есть ли у тебя в PowerGraph.pas процедуры PG_Lock/PG_Unlock, PG_SetRGB, PG_GetRGB, PG_SetA, PG_GetA...
Если нет, то я тебе закачаю версию где они есть =)
Просто я не помню какую версию тебе тогда скинул :)
Еще вопрос - как после создания/загрузки текстуры изменить ее >размеры?
Только пересоздав ее... D3D не позволяет иначе :)
Епта с праздником вас =) Я тока что приперся с бухаловки =)
Warchief (2005-05-09 16:10:00) [27]Еще вопрос - как после создания/загрузки текстуры изменить ее размеры?
Warchief (2005-05-09 16:09:00) [28]> Еклмн... читать писать у меня можно. И никаких шейдеров для этого не надо.
А как? И в альфу тоже можно?
dRake (2005-05-09 15:01:00) [29]Еклмн... читать писать у меня можно. И никаких шейдеров для этого не надо.
Тема в другом - _рендерить_ (тобишь с помощью GPU) _альфу_ одной текстуры в _альфу_ другой.
На шейдере это как два пальца об асфальт :)
А вот Я сейчас пытаюсь из**нуться и сделать это через RenderState/TextureStageState.
Warchief (2005-05-09 13:25:00) [30]Читать/писать пиксели в текстуре с шейдерами? Нет уж увольте :)
dRake (2005-05-09 12:43:00) [31]Мдя похоже на то что без шейдеров то что я задумал не получится... Блин :(
Warchief (2005-05-09 09:40:00) [32]Дык, вроде быстро работает в PD3
Но на GPU это конечно правильнее
dRake (2005-05-09 00:19:00) [33]>А как организовано это в PD3? Посмотри, может поможет :)
А никак :) Они и не заморачивались.
У них есть только читалка/запись пикселей по памяти.
Мы пойдем другим путем. Напряжем GPU =)
Warchief (2005-05-08 21:16:00) [34]А как организовано это в PD3? Посмотри, может поможет :)
dRake (2005-05-08 20:09:00) [35]>А какой смысл создавать текстуру с альфой, если в нее (в альфу) >нельзя писать? :)
Дык щас занимаюсь этим. Думаю как работу с альфой получше организовать - самому запись в альфу была нужна (дальть дырки в текстуре для игры а-ля червяки ). Думаю сделать дополнительный флаг для комбинации с основными который говорил бы что все действия будут происходить с альфа-каналом потипу
E_Add or E_AlphaChannel
Вот сейчас выясняю можно ли организовать подобное в рамках Fixed Pipeline =)
Warchief (2005-05-08 18:48:00) [36]А какой смысл создавать текстуру с альфой, если в нее (в альфу) нельзя писать? :)
dRake (2005-05-08 18:41:00) [37]Warchief
>Как создать текстуру (не загрузкой из файла/потока!) с альфа каналом?
Создание текстуры
PI_CreateImage()
Ну а чтобы был альфа-канал в качестве формата пиксела выставь нужный тебе формат содержащй альфа-компоненту :
D3DFMT_A8R8G8B8 (IMGFTM_8888), D3DFMT_A1R5G5B5 (IMGFMT_1555), D3DFMT_A4R4G4B4 (IMGFMT_4444)
>Да, еще вопрос - как читать/писать альфу?
Пока никак. Я сейчас над этим работаю.. Есть довольно тормозной вариант читать/писать через Lock() Unlock(). Если тебе оно надо могу скинуть пропатченый вариант PowerGraph.pas
Warchief (2005-05-08 18:33:00) [38]Да, еще вопрос - как читать/писать альфу?
Warchief (2005-05-08 18:32:00) [39]Вирусов вроде не обнаружил
dRake, Как создать текстуру (не загрузкой из файла/потока!) с альфа каналом?
dRake (2005-05-08 16:01:00) [40]DestroyerZ
Фак.. мне пришло письмо с ответом что твоя почта не приняла письмо тк оно заражено вирусом :( Прогнал доктора Кашперовского и правда - Все екзешники у меня заражены Win32.Parite.B. Щас полечусь и переотправлю тебе его.
Warchief
Прогонись антивирусом - возможно что в екзешниках с примерами сидит этот паразит. Заранее извиняюсь если это так =) Сам не знал до тех пор когда проги у меня не начали голосить что мол их CRC изменен...