|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.11.2011, 13:21 | #1 |
Пользователь
Регистрация: 18.08.2011
Сообщений: 70
|
Частота кадров падает до 7 к/с - это нормально?
Чтоб проверить сколько могу разместить моделей, я сделал в 3д максе 1 квадрат и скопировал чтоб получилось 2048 штук. Когда загружаю в игру - частота кадров падает до 7 к/с - это нормально?
Мне кажеться что и тут чтото не так я сделал -что должно быть без тормозов с таким колличеством поллигонов. |
05.11.2011, 14:14 | #2 |
C++,DirectX/OpenGL
Форумчанин
Регистрация: 09.01.2011
Сообщений: 422
|
Медленно, да. Но тут еще не только от количества полигонов зависит, но и от количества объектов тоже. При каждом рендере объекта происходит синхронизация с видео картой, а так как объектов много, то и расходы на синхронизацию будут большие. В таких случаях надо все мелкие объекты в один буффер загонять и обрабатывать как один объект, это будет в разы быстрее.
|
05.11.2011, 15:17 | #3 |
Форумчанин
Регистрация: 21.01.2009
Сообщений: 719
|
Либо можно еще почитать про geometry batching
главная соль в том, что нарисовать 10 объектов по 1000 полигонов гораздо бытсрее, чем 1000 объектов по 10 полигонов.
Изобретатель велосипедов
|
05.11.2011, 21:26 | #4 |
Пользователь
Регистрация: 18.08.2011
Сообщений: 70
|
Спасибо за ответы -все так как вы и писали.
Для начала нужно уточнить "Face" в 3д максе это ведь треугольник, то есть полигон, да? Создал плоскость 200*200 сегментов (80000 треугольников). В игре 60 к/с. Потом разместил 30 таких плоскостей в игре (80000*30=2400000) получил 35 к/с. С кубиками частота меньше. Я все кубики обьденил в один обект, но каждый кубик остался отдельным элементом (надеюсь понимаете). В результате 2560 кубиков= 60к/с (раньше было 7к/с). Потом опять размещаю в игре 30 таких групп: 2560*30=76800 кубиков. Это равно 76800*12=921600 треугольников - а частота кадров 23к/с. как видно во втором случае теряестся производительность. Значит составные обьекты всегда намного проигрывают в производительности перед цельными, например террайном, или сферой. А в целом это ведь уже нормальные показатели? Интересно сколько в современных играх в среднем треугольников на одном уровне. |
06.11.2011, 01:02 | #5 |
C++,DirectX/OpenGL
Форумчанин
Регистрация: 09.01.2011
Сообщений: 422
|
60 fps - это скорее всего стоит вертикальная синхронизация. Для замеров fps ее лучше отключать. Когда заполняем структуру D3DPRESENT_PARAMETERS, то PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE // без вертикальной синхронизации
На моделях в современных играх 5к - 10к полигонов. При большом их количестве любая система помрет Для большей детализации используют normal mapping (bump) - технология, которая увеличивает детализацию модели без увеличения количества полигонов на ней. Плоской поверхности можно придавать шероховатости, вмятины и тд. Для игр делают хайполи и лоуполи модели, а с помощью проекции в том же 3d max с хайполи на лоуполи получаем карту нормалей. С ней уже наша лоуполи модель будет визуально выглядеть как хайполи |
06.11.2011, 13:56 | #6 |
Пользователь
Регистрация: 18.08.2011
Сообщений: 70
|
Действительно - была включена вертикльная сихроницация.
Теперь FPS = 2700 к/с. |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Падает компьютер. | docbrain | Компьютерное железо | 53 | 19.09.2010 13:00 |
падает сервер(( | AlexJan | Работа с сетью в Delphi | 0 | 11.09.2010 13:04 |
DSPack: размер буфера, частота кадров | RGV | Мультимедиа в Delphi | 3 | 20.11.2009 13:23 |
разъясните терминалогию,референсная частота,частота чипа,памяти,шейдерного блока | Jesus2.0 | Компьютерное железо | 5 | 04.05.2009 07:54 |