камрады как сабж на 7м DirectX можно замутить в спрайтах?
тока не предлагайте заранее художнику прорисовать сабж )))
Зачем 7, это ж эпоха Win98!
Даже казуалки, которые должны идти на самых захудалых компах игроков, пишутся на DX8+ (WinXP и старше)
А по теме вопроса, запоминай последние, скажем NNN положений и номеров кадров спрайта, и отрисовывай их с уменьшением альфы, например от 50% до 0%.
kvakvs
> Зачем 7, это ж эпоха Win98!
кто тебе сказал?
в DX8 и выше слишком много траха с текстурами чтобы кратны степени 2 были. а у меня готовый арт был разнокалиберный и потому DX7 идеально подошел.
альфы в нем нет. соотвественно сложно полупрозрачныепрозрачные спрайты выводить. вернее вообще импасибл ибо если мутить что то то фпс падает до 20
progman
> в DX8 и выше слишком много траха с текстурами чтобы кратны степени 2 были. а у
> меня готовый арт был разнокалиберный и потому DX7 идеально подошел.
Это решается в пределах 20-30 строк кода, состоящего из создания текстуры правильного размера + 2 циклов для копирования пикселей. Не отмазка. У меня тоже арт разнокалиберный, порядка 6000 текстурных ресурсов на проект.
progman
> альфы в нем нет. соотвественно сложно полупрозрачныепрозрачные спрайты
> выводить. вернее вообще импасибл ибо если мутить что то то фпс падает до 20
Где нет? В DX8? Да ну, а у меня есть, и FPS хороший. У меня какой-то особенный DX8 ;)
kvakvs
> де нет? В DX8? Да ну, а у меня есть, и FPS хороший. У меня какой-то особенный
> DX8 ;)
Это progman про DX7. Млин...как жить без полупрозрачных спрайтиков в современных казуалках..не пойму :)
MATov
> Млин...как жить без полупрозрачных спрайтиков в современных казуалках..не пойму
> :)
На самом деле, без них жить трудно. Художники наклепают полупрозрачного арта, и будут правы.
MATov
> Млин...как жить без полупрозрачных спрайтиков в современных казуалках..не пойму :)
кто сказал что у меня казуалка?
мне просто надо замутить перемещение спрайтового объекта на экране с эффектом Motion blur
исторически за 5 лет так сложилось что весь проект на GDI+ и DX7 в том модуле где нужен MB - DX7 используется
переходить на DX8 ни возможности ни желания нет. делать ручками полупрозрачность в DX7 то еще занятие.
progman
предположу что ты делаешь блиттинг
это прошлый век
все делают 2D via 3D
что в opengl, что в DirectX, что даже в DX7 ;) у меня самого такой движок
так что я бы посоветовал пересмотреть свои взгляды на программирование
DevilDevil
>так что я бы посоветовал пересмотреть свои взгляды на программирование
"ти такой умный, череп не жмет, да ?"
а по существу я бы посоветовал не советовать.
>все делают 2D via 3D
можно подумать что я не знаю как делают "все" на которые ссылаются все.
в данный момент меня интересет как можно именно на DX7 сделать сабж и можно ли вообще не просирая фпс до 10.
progman
> в данный момент меня интересет как можно именно на DX7 сделать сабж и можно ли
> вообще не просирая фпс до 10.
Я ответил в посте #1, запоминай прошлые координаты в структуре типа "очередь" и рисуй их с убывающей альфой.
Фпс упадёт натурально, из-за повторной отрисовки одного и того же спрайта, но не в 10 раз, а немного.
kvakvs
дык. альфы нету в DirectDraw 7
если бы была не мучался бы.
чтобы мутить альфу надо каждый кадр лочить бекбуфер, лочить текстуру, перемножать каждый пиксель по формуле и анлочить.
фпс на этом падает с 200 до 15-20 ибо лочить бекбуфер жутко дорогое удовольствие
Разве совсем нету способа выставить рендерстейт на смешивание цветов и нарисовать квад или треугольник и задать цвета вершин с альфой? Ну тогда не знаю, валить надо оттуда, приглашаю в мир дх8 ;) Рисовать попиксельно даже не пытайся, глупо это во времена аппаратного ускорения, даже старинный FFP сделает всё в 1000 раз быстрее, не говоря уже о современных картах.
kvakvs
> Разве совсем нету способа выставить рендерстейт на смешивание цветов и
> нарисовать квад или треугольник и задать цвета вершин с альфой? Ну тогда не
> знаю, валить надо оттуда, приглашаю в мир дх8 ;) Рисовать попиксельно даже не
> пытайся, глупо это во времена аппаратного ускорения, даже старинный FFP сделает
> всё в 1000 раз быстрее, не говоря уже о современных картах.
какие вершины у спрайтов. знаю я про DX8 и прелести. есть у меня казуальный движок на DX8 на котором я уже 4 игры замутил
но это не тот случай чтобы его применять там дофигища чего переписывать придется. с 2004го года пишется проЭктик со всеми вытекающими
и тормоза не в попиксельном умножении а именно в Lock/Unclock бэкбуфера и тормоза дичайшие
Кто же лочит бак буфера? Конечно тормоза а создать еще одну поверхность памяти и работать с ней а потом блитить на бак не получается?
Один единственный lock/unlock бэкбуфера убивает фпс с 200 до 15-20?
Тема в архиве.