Войти
ПрограммированиеФорумГрафика

1.000.000 треугольников, можно ли с этим жить?

Страницы: 1 2 Следующая »
#0
3:23, 2 янв. 2018

В общем, рендерю 1кк треугольников на экран с помощью стандарта - VAO + VBO/EBO
На выходе получаю 60 кадров, при большем кол-ве падает ниже этой заветной отметки, например при 1.2кк уже 50 кадров

Девайс:
Intel Core i3-5020U(2 ядра / 4 потока)
Integrated Intel HD 5500(512mb)
RAM - 16gb

Код:

+ Показать

Скрины:

+ Показать

Допустим эти точки принадлежат разным моделям с разной топологией и т.д и лежат в одном буфере ради батчинга и т.п.
Т.е. инстансинг в учет НЕ берем.

Например нарисовать 10 различных персов по 10к полигонов, окружение(деревья, архитектура и т.п.)
Средне детализированное дерево - 2к полигонов, с десяток их разновидностей уже 20к
Плюс пара мега текстур, пара проходов и парктиклы, вот и видно на экране 1кк полигонов и 512мб использованной видео памяти.
Учитывая что на последнем скрине я засрал 438мб

Какие есть более оптимальные методы отрисовки такого кол-ва треугольников?
И наверное основной вопрос, хватит ли 1кк полигонов/ 3кк вершин для нормальной работы?
При том что в космос я лететь не собираюсь, и на гта 6 не претендую, но и одними кубиками в стиле майнкрафта ограничиваться не собираюсь...


#1
3:33, 2 янв. 2018

Хотя я ошибся наверное...
3 000 000 вершин * 3 координаты * 4 байта(float) = 36мб
Это если я правильно посчитал
А дэбагер выдает интересные цифры

#2
3:40, 2 янв. 2018

IIIarp
> 3 000 000 вершин * 3 координаты * 4 байта(float) = 36мб
Точнее ~34,5 Мб, если быть дотошным и учесть, что один Мб = 1024 * 1024 байт :)

#3
3:44, 2 янв. 2018

push_back для vector случайно не делает у тебя automatic reallocation?

#4
4:43, 2 янв. 2018

Daniil Petrov
> если быть дотошным и учесть
мегабайт (Мбайт) = 10^6 = 1 000 000 байт
vs
мебибайт (МиБ) = 2^20 = 1 048 576 байт

#5
9:10, 2 янв. 2018

IIIarp
При каком разрешении выполнено тестирование? Не знаю как у других, но у меня изображения не отображаются.
Имхо, если цель разработка с использованием данной видюхи, то стоит иметь ввиду что производительность у нее на уровне десктопной видюхи 8 летней давности, плюс стоит рассчитывать что максимальное адекватное разрешение для нее все таки 1280x720, может немногим больше.
По поводу данного теста, я считаю что он далеко не в полной мере отражает скорость работы данной видюхи.
IIIarp
> Какие есть более оптимальные методы отрисовки такого кол-ва треугольников?
Лоды - на экране часть треугольников может быть бесполезной, ибо не несет какой либо информации.
Если судить именно о коде, то проблем там пока нет, ибо кода тоже особо нет.

#6
14:20, 2 янв. 2018

да запусти ты в NSight-е свой софт и посмотри, где у тебя ботлнек

#7
4:07, 3 янв. 2018

-=MASTER=-
> и посмотри, где у тебя ботлнек
Да и так видно же, что тут:
Intel HD 5500(512mb)

#8
6:40, 3 янв. 2018

Что мне удалось выжать, так это 3.300.000 полигонов на 60 кадров
glDrawElements одной машинки жрет 4.521ms, это с отсечением бэка
Очистка по цвету, глубине, бинд ВАО, свап буфферов, в сумме дают 0.8ms

+ Показать

#9
8:35, 3 янв. 2018

  Triangle Strip? Не, не слышал.

#10
14:36, 3 янв. 2018

Zefick
> Triangle Strip?
На первом скриншоте треугольнички отдельные.

IIIarp
> 3 000 000 вершин * 3 координаты * 4 байта(float) = 36мб
А нормали для каждой вершины.

#11
15:25, 3 янв. 2018

О, еще одни тесты в вакууме :)
Скажу правильное решение сразу, чтобы не тратить время на ерунду: надо делать дальше и забить на треугольники и их количество. Когда начнет тормозить, то в 99% случаев проблема окажется не в треугольниках. Если этого не сделать, то сейчас придется потратить много времени, потом выбросить все полученные результаты на свалку и начать заново.

#12
17:33, 3 янв. 2018

IIIarp
> Какие есть более оптимальные методы отрисовки такого кол-ва треугольников?
Не рисовать столько треугольников. Как тут сказали, далёкие модели рисовать в меньшей детализации ("лоды"). То, что заслоняется, не рисовать вообще. Определять заслоняемые участки можно с помощью порталов (для сцен в помещениях/коридорах) или окклужон буфера (для сцен на открытой местности).
Видяха так себе, но если делаешь не для себя, то надо учитывать.

#13
19:04, 3 янв. 2018

1 frag / 2 deaths
Это мой основной рабочий ноут, но в запасе стоит комп
Xeon x3440 + GTX 750Ti 2Gb (уверен, тут цифры будут поярче)

Но хочется и на ноуте порадоваться всей красоте)

Лоды так лоды...
С терейном все просто, quadtree мне в помощь, а с другими моделями?(в ручную делать лень)
Слышал есть алгоритмы, вычленяющие точки из модели в реалтайме, генерируя лоды, только вот найти не могу...

#14
12:43, 4 янв. 2018

IIIarp
> Но хочется и на ноуте порадоваться всей красоте)
Радоваться графике на встроенной карте смысла практически никакого,как не делай нормальной производительности с нее не получишь.Да и при оптимизации результаты на  встроенных от десктопных будут отличаться.Как уже сказали выше,бесполезный труд,который в последствии вы вряд ли будете использовать.Разумнее сразу начинать делать то,с чем в итоге вы будете работать,а не пытаться из костылей шедевр собрать.

Страницы: 1 2 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.

Тема закрыта.