Разработка игрового 3D-движка Force Tech: стриминг всего

В процессе приближения готовности стриминга к демонстрации, я задумался, что бы такого интересного показать, чего раньше мой движок Force Tech не мог, или мог с большим трудом? В результате, я решил загрузить все объекты из Thief 2 такое количество раз, пока fps не перестанет быть стабильным.

Изначально планировалось научить свой рендер на основе OpenGL 3 инстансингу: сортируем модели по типу геометрии, и выводим инстансингом каждую модель столько раз, сколько она присутствует на экране. Результаты оказались вполне приемлемыми, но необходимость сложной сортировки и передача кучи индексов в запросы отрисовки для каждого объекта в каждом кадре, натолкнули на мысль, что можно рисовать всё ещё проще и быстрее.

Решено было попробовать несколько иной подход - засунуть вообще всё сразу в видеопамять и рисовать всю сцену одним вызовом отрисовки, без сортировки и прочего. Сказано - сделано!

Вашему вниманию предлагается результат:

Эта мешанина объектов демонстрирует следующее: после нажатия кнопки, за 4 секунды загрузилось и вывелось на экран ~17 000 объектов, уникальных из них ~1600, количество полигонов составило примерно полтора миллиона, для текстурирования понадобилось ~1500 уникальных текстур, при этом мы видим, что частота кадров в full hd разрешении на моей low-end видеокарте Radeon RX550 после загрузки составила ~90fps, или ~11ms. Что является более чем приемлемым результатом, ящитаю 😄.

Понятное дело, что в реальных условиях вряд ли на экран будет загружаться такое количество объектов. Поэтому это скорее стресс-тест. И да, он мог бы быть ещё суровее, ведь 90 fps - это даже не 60 и не 30, с которыми работают многие игры на консолях, но всему своё время 😉...

Разработка продолжается, и идет согласно намеченной ранее Дорожной Карте.

2828
6 комментариев

Я рад, что вы все еще в деле!

1
Ответить

Спасибо! Да, наслоились куча факторов: и то, что разработка идёт над новой архитектурой движка, плюс рефакторинг, а это невозможно продемонстрировать, ещё были некоторые трудности в личной жизни, но у кого из нет? Когда-то больше, когда-то меньше. Но пока, слава Богу, планы не сорваны и даже не смещены. 😉

4
Ответить

заебись брат!

1
Ответить

А в чем конечная цель?

Ответить