написал константный инстансинг для систем частиц.
Использует шейдеры 2 версии...
делал на своем GF 9600 GT
тестировал на каком-то радеоне на ноуте знакомого...
у меня фпс 700 у него 15. подозрения пали именно на инстансинг, т.к. системы частиц у него некоректно отображаются.
в чем может быть проблема?
В том, что у него слабая карта?
Какой хоть Апи?
А зачем для частиц константный инстансинг?
А сколько частиц?
А какой радеон?
А что в шейдере?
"radeon на ноуте знакомого" - это новый сферический конь в вакууме?
Executor
карта у него вроде норм, халф-лайф бегает, даже последний принц персии идет... при 30 фпс
C++ DirectX HLSL
Wraith
инстансинг для сокращения dip естественно...
чатиц бывает по разному минимум 100 но максимум неск k.
ATIMobility Radeon HD 3470
шейдер правильный, у меня же работает... мне кажется что его карта держит меньше переменных как-то...
Может в софтвар падает?
А разве инстансинг это не СМ3 карты?
В общем инфы мало, чтобы чтото конкретное сказать... Выкладывай приложение для теста хотя бы...
Executor
нет, в софтвар не падает... по логе видно что хардвар...
инстансинг хардварный на 3 шейдах... константный на 2.
я сейчас еще его по аське мучаю.. устанавливаю причины... вроде даже не инстансинг лагает... а все вместе...
Аврелий
>инстансинг для сокращения dip естественно...
Дело в том, что на sm3.0 у тебя всего 256 регистров, т.е. ты можешь рисовать всего 250 частиц за один дип. Ну если поднатужишься, то сможешь рисовать примерно 1000 за счет некоторых ограничений по траектории.
Лучше уж делать динамический vb (а то и два) и рисовать все частицы за один дип.
>ATIMobility Radeon HD 3470
мммм...
Executor
>Может в софтвар падает?
DX9 в софтвар не падает.
Да, инфы мало.
Аналогичная ситуация, чем круче видяха тем больше прирост.
гм... причину не установил, но эт не частицы и не шейдеры... странно...
а раньше творения на моем двиге у него выдавали 150 фпс... думаю тут только я смогу найти выход... чтож, прийдется попотеть =)
из множества размышлений додумался вот до чего:
где-то давно слышал что некие видеокарты могут использовать версию шейдеров ниже чем написано, и помогать процесором дабы нужная версия работала...
не подскажете, где я могу узнать какая версия шейдеров поддерживается апаратно видяхой ATI Mobility Radeon HD 3470 ?
думаю, все же если держит меньше чем 2, то сложные шейдеры скорее всего должны лагать...
прафка:
из всего что могло тормозить проверил в все... код игры не сложный, пиксельный шейдер в 3 строчки, но вершинные шейдеры длинные, так что на них ступор вроде
Wraith
>Лучше уж делать динамический vb (а то и два) и рисовать все частицы за один дип.
у меня не толко частицы с константным инстансингом... по ходу, хочу добится чтоб все на нем было... случай позволяет.
>DX9 в софтвар не падает.
с каких пор?
>>с каких пор?
с сотворения мира
MOD
я был свидетелем что DX9 падает в софтвар... что это может значить?
в конце-концов, для чего то есть:
D3DCREATE_HARDWARE_VERTEXPROCESSING
D3DCREATE_MIXED_VERTEXPROCESSING
D3DCREATE_SOFTWARE_VERTEXPROCESSING
или это не то что я думаю?
Аврелий
> или это не то что я думаю?
это для принудительного переключения в совтвар режим, точнее для софтварной обрабоотке вершин (для софтрар режима смотри D3DDEVTYPE_REF). более того если картачка не держит T&L, то заставить дх работать с флагом D3DCREATE_HARDWARE_VERTEXPROCESSING неполучится.
если какая-либо возможность не поддерживается аппаратно, то соответвующий метод дх просто вылетает с ошибкой.
Тема в архиве.