Товарищи Программеры! Все вы, наверное, видели хоть раз такую игруху
под названием StarCraft. Так вот, в ней все менюшки и окошки выводятся
поверх всего прочего изображения с неким свойством полупрозрачности.
Вопрос состоит в том, как сделать подобный эффект.
Сразу скажу, что попытки сотворить что-то вроде alpha-blending, уже
были. Ну, самый простой, вроде бы, метод прямого доступа к поверхности через
метод ::Lock(...). Как можно догадаться, пишу я на С++, но перевариваю все
от ВизуалБасика до Дельфи с Ассемблером. Но проблема в том, что
если исп. прямой доступ, то всем этим дело приходится заниматься процессору.
А это ОЧЕНЬ долго. И при этом "отрендерить" даже полэкрана в 640х480*16
уже просто невыносимо даже на Селероне с 533 МХз. И вот что еще
(дабы не подумали, что я полный ламер), я в книге Краснова по DirectX в Delphi
вычитал, что НИКАКИХ аппаратных средств DD не предоставляет для полупрозрачности и,
следовательно, дескать, используйте для этого D3D. Но это сложно. И потом,
ну неужто StarCraft использует D3D? И ведь он не тормозит нигде, хотя вывод куда
более сложный, чем в моей собственной игре (Тени-то тоже полупрозрачные!!!).
Так что если вдруг кто-либо что-нибудь знает по этому поводу, напишите пожалуйста.
Желательно на С++, можно со вставками на ASM'e.
P.S. DirectX 7.SDK у меня есть, но !!!! ПЕРЕПИСАННЫЙ СЛОВО В СЛОВО НА С++
С БЕЙСИКА ПРИМЕР Fire.vbp ТОРМОЗИТ по-страшному. (ЛИБО Я ПЛОХО ПИШУ И НА С++, либо ...). И еще. Может кто-либо слышал про такую клевую игрушку под вредакцией (:-)
Seumas McNally под названием DXBall 2. Там тоже есть ни-фига-не-тормозящий-прямой-доступ-к-памяти, но КАК ЭТО СДЕЛАНО БЕЗ ТОРМОЗОВ, я не понимаю!!! ЧТО ДЕЛАТЬ?
Ув. программеры, даже если есть какой-либо пример с прямым доступом, где
изменяется хоть квадрат 50х50 точек в 16битном режиме, и его не жалко распространять,
толкните его мне в качестве гуманитарной помощи.
А если вдруг кто-либо знает сайт, на котором подобные фиговины можно скачать
без проблем, то укажите хотя бы этот адрес. Заранее спасибо.
С уважением, MVN.
30.03.03 12:02: Перенесено модератором из 'Мультимедиа, графика, звук' — H_D