Форум: "Игры";
Текущий архив: 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.051 c