Вниз
Скачать: CL | DM;

DDraw и изображения с альфа каналом   Найти похожие ветки 

 
Красный молоток   (2004-08-25 12:17) [0]

Как можно в DDraw выводить изображения с альфа каналом?
Использую JEDI DDraw и DDUtil.pas.

Заранее 10х.


 
NikeOLD ©   (2004-08-25 12:28) [1]

Ручками
Пишешь собственную функцию


 
Красный молоток   (2004-08-25 12:32) [2]

Писать напрямую в память бэк-буффера?


 
Sapersky   (2004-08-25 12:52) [3]

Писать напрямую в память бэк-буффера?

Угу. Или сначала в буфер в системной памяти, см. статью на Королевстве Дельфи.
Процедуру можно позаимствовать из Graphics32 или SpriteUtils.
Но лучше (быстрее) через Direct3D.


 
NikeOLD ©   (2004-08-25 13:35) [4]

Direct3D 9 поддерживает класс Sprite, ориентированный на вывод двухмерных изображений. Не знаю есть ли поддержка этого хозяйства в Дельфи. Если есть, то все преимущества 3D налицо.


 
П7   (2004-08-25 13:36) [5]

С сайта http://tzlab.amillo.net можешь скачать DLL"ину, которая позволяет достаточно быстро выводить полупрозрачные поверхности. В архиве так же заголовочные файлы для подключения к Delphi и C++.


 
Sapersky   (2004-08-25 13:51) [6]

Direct3D 9 поддерживает класс Sprite

Интерфейс ID3DXSprite. В D3D8 он тоже есть. И ещё point sprites, например.
Но можно и на D3D7, если неохота совсем отрываться от DirectDraw :)


 
Megabyte-Ceercop ©   (2004-08-25 13:53) [7]

Есть способ вывести спрайт с 50% Альфой, который в добавок работает в два раза быстрее чем без Альфы.

Нужно выводить спрайт через кадр при fps 60-75 накакого мерцания невидно. Проверено!
Однако при снижении ФПС ниже 50 - блендинг выглядит не так гладко.

Это вполне серьёзный совет :-|


 
Ландграф Павел ©   (2004-08-25 14:25) [8]

Megabyte-Ceercop> ужас, и ты это серьезно??? да-а.. на крутых компах это блидинга вообще не заметят...


 
Megabyte-Ceercop ©   (2004-08-25 14:29) [9]

Испытывал на GF-3.
При ФПС 75 выглядит как спрайт с 50% альфой.


 
NikeOLD ©   (2004-08-25 15:22) [10]


> Megabyte-Ceercop ©   (25.08.04 13:53) [7]

Делая игру надо рассчитывать на самыую минимально возможную конфигурацию. Ясно, что на всех остальных пойдет.
Нельзя же написать тетрис, который будет работать только на машинах для Doom3. Кому он будет нужен?


 
NailMan ©   (2004-08-26 00:21) [11]

Имхо нужно либо пользовать 2D-over-D3D со всеми аппаратными фичам включая alpha-blending(лучше написать свой экранный спрайт для одновызовного рендера с блендингом), либо писать ручками софтвар который будет по определению тормозом.

Хотя если заточить под MMX/SSE/3DNow! то что-то более менее пристойное на небольших разрешениях и можно будет получить.

Кста, ID3DXSprite лучше пользовать от D3D8(соотвественно юзать заголовки для DirectX8), так как он там очень грамотный в использовании. В D3D9 он ужасно переделан и вообще стал не удобен как хрен знает что. Я из-за этого свой аналог под D3D9 сделал для своего 2D-GUI, макисимально приближенного к D3D8-ID3DXSprite.

---
WBR, NailMan aka 2:5020/3337.13


 
Micah'GF ©   (2004-08-26 09:12) [12]

[7] Megabyte-Ceercop
а как ты выведешь спрайт у которого разные части с разной прозрачностью?


 
Megabyte-Ceercop ©   (2004-08-26 09:17) [13]

Очень просто: Части должны появляться и исчезать с разной частотой :-|


 
Micah'GF ©   (2004-08-26 09:28) [14]

перечитай снова пост выше
для примера кинь алгоритм такого вывода


 
Megabyte-Ceercop ©   (2004-08-26 11:50) [15]

А-А-А. Ну тогда тебе нужно использовать изображение с Альфа-каналом.   =)))))


 
Дима   (2004-10-27 13:41) [16]

Где достать ddutil.pas? Мой не работает.


 
Mihey_temporary ©   (2004-10-27 14:36) [17]

На Королевстве Delphi есть статья про вывод с некоторой заданной прозрачностью через DirectDraw.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.022 c
1-1105699707
Marsello
2005-01-14 13:48
2005.01.30
Связь с Mathemathica 5


3-1103892760
Anatoliy T.
2004-12-24 15:52
2005.01.30
HalcyonDataSet проблема с фильтром


1-1106075626
Aleks
2005-01-18 22:13
2005.01.30
как из сторки скопитовать заданный символ


1-1105366671
Maxim____M
2005-01-10 17:17
2005.01.30
Обращение к объекту.


6-1100034718
able
2004-11-10 00:11
2005.01.30
TServerSocket число соединений




   Наверх