Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

DDraw и изображения с альфа каналом [Delphi, Windows]


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

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

Заранее 10х.


Mihey_temporary   (2004-10-27 14:36:00) [1]

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


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

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


Megabyte-Ceercop   (2004-08-26 11:50:00) [3]

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


Micah'GF   (2004-08-26 09:28:00) [4]

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


Megabyte-Ceercop   (2004-08-26 09:17:00) [5]

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


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

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


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

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

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

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

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


NikeOLD   (2004-08-25 15:22:00) [8]


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

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


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

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


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

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


Megabyte-Ceercop   (2004-08-25 13:53:00) [11]

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

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

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


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

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

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


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

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


NikeOLD   (2004-08-25 13:35:00) [14]

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


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

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

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


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

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


NikeOLD   (2004-08-25 12:28:00) [17]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо