Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "Игры";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.035 c
1-1106085285
Bobby Digital
2005-01-19 00:54
2005.01.30
RichEdit


14-1105553691
GanibalLector
2005-01-12 21:14
2005.01.30
Открытое письмо болельщиков ФК "Металлист"


14-1105566216
OneFragLeft
2005-01-13 00:43
2005.01.30
настройка FTP в IIS


14-1105249300
Чеширский_Кот
2005-01-09 08:41
2005.01.30
Perl to Pascal


1-1106117795
Гость
2005-01-19 09:56
2005.01.30
daysBetween





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский