Тормоза D3DXSprite

Работа с 2D и 3D графикой, видео, звуком.

Модератор: Mikle

Maxwell
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 182
Зарегистрирован: 01.10.2003 (Ср) 15:48
Откуда: Russia

Тормоза D3DXSprite

Сообщение Maxwell » 12.12.2003 (Пт) 17:46

На днях решил сделать небольшую 2D игрушку, но на пол пути желание резко пропало. А всему виной оказались жудкие тормоза D3DXSprite! Обматерив VB и всех разработчиков DX, пришёл просить помощи. Люди, помогите, как бороться c тормозами? :(

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 12.12.2003 (Пт) 17:53

Это снова я! :)

Вообще я бы посоветовал сделать шаг назать и использовать DX7. В связке d3d и DirectDraw дают офигенные результаты. Экран, полностью забитый спрайтами (карта, внеэкранные поверхности отсекаются) + 2D анимированный герой, работает с 100 - 150 кадров на моем PIII 450, Tnt2 . Так что подумай. Кстати, опять же можно вместе что-нить попробовать сделать ;)

Maxwell
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 182
Зарегистрирован: 01.10.2003 (Ср) 15:48
Откуда: Russia

Сообщение Maxwell » 12.12.2003 (Пт) 18:30

D3DXSprite легче в применении, да и эффекты на нём крутые делать можно. И во вторых DX7, кроме как с bmp и ещё одим каким то форматом, не работает. А D3DXSprite, c каким пожелаешь и алъфа бленделинг.

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 12.12.2003 (Пт) 18:42

Я с DirectDraw работал и не испытывал никаких проблем с созданием специфектов. Плюс форматы gif, jpg лекго использовать если применить небольшой трюк....

Maxwell
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 182
Зарегистрирован: 01.10.2003 (Ср) 15:48
Откуда: Russia

Сообщение Maxwell » 12.12.2003 (Пт) 19:16

Ну а как же TGA или PNG, без него никуда в еффектах. Не можешь всё таки предложить, что нибудь с D3DXSprite?

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 12.12.2003 (Пт) 20:07

Знаете, я когда-то тож. хотел писать на 7, в частности DirectDraw, но пришёл к выводу, что на этом получится максимум какие-нибудь "Червячки". DirectX8 гораздо скоростнее, с 3D легче работать (вот только столкнулся с такой проблемой: не могу вывести картинку на экран, типа создаём сурфасе и флиппаем). А 2D можно выводить и без D3DXSprite. :)

Maxwell
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 182
Зарегистрирован: 01.10.2003 (Ср) 15:48
Откуда: Russia

Сообщение Maxwell » 12.12.2003 (Пт) 20:29

Ты матрицы настроил?

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 12.12.2003 (Пт) 22:04

Сразу готов спорить, потому что в 2D DX7 (DD) намного быстрее, потому что он работатет с 2D памятью видеокарты, тогда как весь dx8 основан на 3Д ускорителе. Для ускорения работы любых 2д программ могу посоветовать использовать стандартные способы оптимизации, например при выходе спрайта за границы экрана запрещать его рендер.

Ну а как же TGA или PNG, без него никуда в еффектах


Уважаемый, а при чем тут спецэффекты и формат файла?

Yurich
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 675
Зарегистрирован: 05.03.2003 (Ср) 3:43
Откуда: DONBASS/Gorlovka

Сообщение Yurich » 12.12.2003 (Пт) 22:11

d3drm писал(а):Это снова я! :)
В связке d3d и DirectDraw дают офигенные результаты.


Есть участочек кода, который запустит их вместе? Я сам пока не доезжаю.

Maxwell
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 182
Зарегистрирован: 01.10.2003 (Ср) 15:48
Откуда: Russia

Сообщение Maxwell » 12.12.2003 (Пт) 22:15

Уважаемый, а при чем тут спецэффекты и формат файла?

Просто в этих файлах есть алфа слой, который позваляет ставить прозрачность какую где надо.

А 2D можно выводить и без D3DXSprite.

Что ты предлагаешь?

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 12.12.2003 (Пт) 22:45

Есть участочек кода, который запустит их вместе? Я сам пока не доезжаю.


Уважаемый, вот как использовать в связке d3d и dd в dx7 знать надо...

2D можно выводить прорисовкой 2D вертексов на экран (тип d3dtlvertex)

Maxwell
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 182
Зарегистрирован: 01.10.2003 (Ср) 15:48
Откуда: Russia

Сообщение Maxwell » 13.12.2003 (Сб) 11:13

Ладно, что нить придумаемс.

Maxwell
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 182
Зарегистрирован: 01.10.2003 (Ср) 15:48
Откуда: Russia

Сообщение Maxwell » 13.12.2003 (Сб) 23:29

Кинте ктонибудь пожалуйста примерчик вывода квадрата при помоши вертекстов с текстурированием.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 14.12.2003 (Вс) 11:58

Вот пример, правда писал не для этого:

http://www.tuapse-mikle.narod.ru/4sprite.zip

выводит спрайты через вертексбуферы. Фон разбит на 6 частей для совместимости со старинными видеокартами, не поддерживающими текстуры больше 256*256.

Vovik

Тут как раз вывод картинки "пиксель в пиксель". Для этого формат вертекса делают XYZRHW, а размер полигона равен размеру текстуры в пикселях.

PS. После выхода в листбоксе - ФПСы.

Cremator
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 03.02.2003 (Пн) 12:14

Сообщение Cremator » 16.01.2004 (Пт) 10:34

D3DSprite работает плохо. Он медленный и плюс ошибается в координатах. т.е при точку вывода спрайта нужно вроде задавать так: хочешь в X,Y -> передавай X+1,Y+1 или -1 не помню.
Всем этим проблемам посвящён цикл статей на gamedev.com вроде.


Вернуться в Мультимедиа

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 29

    TopList