Форум: "Игры";
Текущий архив: 2006.01.15;
Скачать: [xml.tar.bz2];
ВнизPD3 - Рендер в текстуру Найти похожие ветки
← →
dRake © (2005-05-09 15:01) [40]Еклмн... читать писать у меня можно. И никаких шейдеров для этого не надо.
Тема в другом - _рендерить_ (тобишь с помощью GPU) _альфу_ одной текстуры в _альфу_ другой.
На шейдере это как два пальца об асфальт :)
А вот Я сейчас пытаюсь из**нуться и сделать это через RenderState/TextureStageState.
← →
Warchief (2005-05-09 16:09) [41]> Еклмн... читать писать у меня можно. И никаких шейдеров для этого не надо.
А как? И в альфу тоже можно?
← →
Warchief (2005-05-09 16:10) [42]Еще вопрос - как после создания/загрузки текстуры изменить ее размеры?
← →
dRake © (2005-05-09 23:58) [43]>А как? И в альфу тоже можно?
Хм... раз можно читать/писать пиксел текстуры, а пиксел является совокупностью ARGB компонент цвета, то логично что раз компонента A входит в состав пиксела, то изменять ее тоже можно =)
Посмотри есть ли у тебя в PowerGraph.pas процедуры PG_Lock/PG_Unlock, PG_SetRGB, PG_GetRGB, PG_SetA, PG_GetA...
Если нет, то я тебе закачаю версию где они есть =)
Просто я не помню какую версию тебе тогда скинул :)
Еще вопрос - как после создания/загрузки текстуры изменить ее >размеры?
Только пересоздав ее... D3D не позволяет иначе :)
Епта с праздником вас =) Я тока что приперся с бухаловки =)
← →
Warchief (2005-05-10 10:55) [44]> PG_Lock/PG_Unlock, PG_SetRGB, PG_GetRGB, PG_SetA, PG_GetA...
нету
← →
dRake © (2005-05-10 22:30) [45]Ну раз нету то вышлю... Щас вроде нашел способ реализовать альфу... Вот только разберусь окончательно...
← →
dRake © (2005-05-11 03:35) [46]Зашибись =)
Альфу сделал, сейчас немного причешу все функции.. погоняю..
Правда пришлось переползти на девятую версию Direct3D, да и D3DX тоже (что не очень гуд - D3DX9_24.dll весит 2.11Mb), впрочем она должна идти вместе с директиксом.
← →
Warchief (2005-05-11 11:47) [47]И не забудь сделать нормальную обработку потери фокуса окном :)
← →
Warchief (2005-05-14 13:54) [48]ну так чего там?
← →
dRake © (2005-05-14 15:38) [49]Сейчас по мелочи доделаю и выложу =)
← →
Warchief (2005-05-14 17:15) [50]Жду-с :)
← →
dRake © (2005-05-15 01:49) [51]Заслал =)
Короче теперь так...
[+]Добавлены новые константы для работы с альфа каналом и изменены/добавлены старые - подробнее смотри в PowerGraph.pas =)
[+]Добавлено сохранение текстуры в файл.
[+]Переделана процедура Clear. Пашет быстрее + можно с помощью нее чистить Alpha отдельно от RGB.
И зацени пару примерчиков на работу с альфой :)
Восстановление пока не сделал, потому что сначала надо организовать приличную обработку сообщений и переделать таймер (кривоват) так что работы хватает... Сейчас разгребу дела и буду доделывать =)
Если при отрисовке указана только константа из набора E_XXXX то она будет работать и на RGB и на Alpha каналы. Если надо отдельно указать эффект для отрисовки альфы - добавляешь к нему константу из набора E_ALPHA_XXXX. Ну и само собой - E_DIFFUSE, E_MIRROR, E_FLIP можно дописывать при любом раскладе =)
Пример
E_NONE or E_ALPHA_MUL
E_ADD or E_ALPHA_NONE or E_DIFFUSE
E_SIMPLE or E_MIRROR or E_FLIP
← →
Warchief (2005-05-15 17:18) [52]Ck0чал, посмотрел.
[-] Новая dll"ка в 3 раза больше старой (но оно и понятно)
[-] Без моей правки примеры никак не хотели компилироваться
[-] Второй пример работы с альфой даже с моей правкой не работает
Буду ждать нормальной обработки потери фокуса :)
А dll"ку нельзя убрать, при установленном DX9? Ведь PD3 как-то обходится.
← →
dRake © (2005-05-15 23:35) [53]>Без моей правки примеры никак не хотели компилироваться
Это да - я то что в сорцах менял забывал в примерах поправить =)
А бинарники работают?
>Второй пример работы с альфой даже с моей правкой не работает
А бинарник? В чем заключалась правка?
>Буду ждать нормальной обработки потери фокуса :)
Делаем!
>А dll"ку нельзя убрать, при установленном DX9? Ведь PD3 как-то >обходится.
Она есть у многих. Убрать-то можно но очень не хочется - удобный загрузчик кучи форматов в одном флаконе...
>Ведь PD3 как-то обходится.
Сравни:
1) Скорость загрузки текстуры в PD3 и у меня (разница в 40% по моим тестам) в PD.
2) Форматы - PD3 : TGA (32bit only), bmp.
У меня - tga, jpg, png, bmp, dds, dib... в любых вариациях.
3) Плюс у меня возможность фильтрации текстуры при зарузке - Dithering, различные виды сглаживания.
Ну невозможно отказаться от таких вкусностей =)
← →
Warchief (2005-05-16 15:29) [54]> А бинарники работают?
Да
>А бинарник? В чем заключалась правка?
Правка заключалась в том, чтобы его можно было скомпилировать. Бинарник работает, но ничего кроме сетки(клетки черн0 белые :) не рисует.
> Она есть у многих. Убрать-то можно но очень не хочется - удобный загрузчик кучи форматов в одном флаконе...
2mb загрузчик?!
> 1) Скорость загрузки текстуры в PD3 и у меня (разница в 40% по моим тестам) в PD.
Обязательно сравню
> 2) Форматы - PD3 : TGA (32bit only), bmp.
У меня и jpg и png и tga все грузит :)
> 3) Плюс у меня возможность фильтрации текстуры при зарузке - Dithering, различные виды сглаживания.
Не видел :/
← →
dRake © (2005-05-16 17:02) [55]>Правка заключалась в том, чтобы его можно было скомпилировать. >Бинарник работает, но ничего кроме сетки(клетки черн0 белые :) >не рисует.
Хех смотри -
константа E_NONE - теперь вообще отключает блендинг для канала
чтобы просто скопировать теперь юзается E_COPY
смотри описания констант в PowerGraph.pas =)
>2mb загрузчик?!
Там же не только загрузчик... Так еще куча всего
>У меня и jpg и png и tga все грузит :)
По-порядку - поддержка jpg из дельфячего модуля jpeg, который тянет за собой Graphics который тянет за собой... правильно - VCL =) А у меня нигде VCL"a нет (к этому и стремился :) отсюда файл на выходе (примеры) - 50Kb
загрузчика png я вообще не увидел там, tga поддерживается только с кучей исключений (см TGAReader.pas из PD 3.0).
> 1) Скорость загрузки текстуры в PD3 и у меня (разница в 40% по моим тестам) в PD.
>Обязательно сравню
Кстати для RenderTarget текстур разница вообще в несколько раз :)
Проверял на своей игрушке - там они для ландшафта используются.
> 3) Плюс у меня возможность фильтрации текстуры при зарузке - >Dithering, различные виды сглаживания.
>Не видел :/
А я еще и не сделал :) Но будет...
← →
Warchief (2005-05-20 19:07) [56]У тебя нет странички, где можно следить за развитием твоего движка? :)
← →
dRake © (2005-05-21 13:28) [57]Да хостинг наш упал :)
Когда поднимется то будет и страничка
← →
Warchief (2005-05-26 11:14) [58]Ну как оно там?
← →
Warchief (2005-05-30 18:33) [59]Сравнил скорость загрузки PD3 и твоего движка - в твоем на 20% быстрее
← →
dRake © (2005-05-30 21:04) [60]Сесия пришла :)
← →
Warchief (2005-07-07 11:45) [61]dRake,
ну как сессия? :)
Я никак не могу правильно обработать потерю устройства :( (Использую твою версию с dx8). Не подскажешь как это сделать?
← →
dRake © (2005-07-07 19:00) [62]Сессия исчо продолжется =)
А вот враппер претерпел некоторые изменения:
>Я никак не могу правильно обработать потерю устройства :(
Там в функции Present вроде есть закомментированный кусок относящийся к потере устройства, если нет то суть такова:
Надо проверить функцию D3DDevice.Present на возвращение ошибки D3DERR_DEVICELOST, эта ошибка и означает потерю устройства.
А вот с враппером произошло много изменений :
1) он переехал на ООП :)
2) претерпел изменения процесс рендеринга + возможность массового удаления/восстановления всех созданных Image"ей + появился Callback для отлова оптери устройства + много изменений по мелочам
3) Добавился модуль с кучей различных полезных процедур/функций (работа с векторами, тригонометрия, обработка коллизий, служебные) который используется всеми модулями.
3) добавился модуль для работы со звуком (BASS powered ;)
;)
← →
Warchief (2005-07-07 20:26) [63]Можешь закинуть на мыло? Только без D3D9 dll"лек, они у меня есть :)
warchief@inbox.ru
← →
Warchief (2005-07-28 19:20) [64]Восстанавливать потерянное устройство научился, а вот как быть с текстурами? Заново из файлов загружать?
← →
A22 © (2005-07-28 19:50) [65]угу
← →
Warchief (2005-07-31 17:13) [66]Йумор, понимаю :)
А серьезно?
← →
dRake © (2005-08-01 02:50) [67]Серьезно - заново загружать.
Только не все, а те которые были созданы с D3DPOOL_MANAGED
← →
Mozgg (2005-08-02 01:48) [68]А зачем их заново загружать, точнее после чего? После потери девайса?
dRake дай пожалуйста свой повер, хоть посмотрю, что там есть!
Страницы: 1 2 вся ветка
Форум: "Игры";
Текущий архив: 2006.01.15;
Скачать: [xml.tar.bz2];
Память: 0.58 MB
Время: 0.016 c