Флейм
GameDev.ru / Флейм / Форум / Почему так мало? (2 стр)

Почему так мало? (2 стр)

Страницы: 1 2 3 4 5 6 7 Следующая »
innuendoПостоялецwww14 мая 20189:25#15
Great V.

как тут уже сказали, инстансинг сам по себе имеет накладные расходы, построй график FPS от числа инстансов на простой модели, у мну помнится оптимально было в районе 100-200

Правка: 14 мая 2018 13:58

Great V.Пользовательwww14 мая 201812:00#16
innuendo
Ну... Хотелось бы какого-то обоснования этих "расходов", а то вот так сходу не вериться.
И даже если у меня инстансинг за 200 будет работать лучше чем за 1000, то это не значит что у моего соседа все будет так же. Как определять? Эмпирически?

А вообще появилось еще пару идей:
1. Запаковать все в единый вершинный и индексный буфер. Избавлюсь от смен буферов и минимизирую переключения вершинных массивов.
2. Заюзать MultiDraw-методы. По крайней мере на командах сэкономлю.
3. Может все таки стоит попробовать текстуры или SSBO? Может маленький размер UBO убивает весь профит от распараллеливания?
4. Само распараллеливание надо сделать боле рациональным. Т.е. не разбивать на 8 потоков расчет 6-ти матриц, а использовать дополнительные потоки только при каком-то минимальном объеме информации, чтобы окупить затраты на синхронизацию.

innuendoПостоялецwww14 мая 201812:02#17
Great V.
> а то вот так сходу не вериться.

кто мешает тесты провести?

Great V.
> Может маленький размер UBO убивает весь профит от распараллеливания?

делай разделение по группам инстансинга при добавлении или обновлении сцены - каждый кадр только frustum culling

Правка: 14 мая 2018 12:07

Great V.Пользовательwww14 мая 201812:42#18
innuendo
> кто мешает тесты провести?
Я не о том, что я не верю в замеры скорости работы.
Просто у меня нет каких-то объективных объяснений этим "расходам на инстансинг". С чего им быть?
Я не говорю что их нет. Просто я не понимаю откуда им вообще взяться, потому и выглядит сомнительно. Может это я как-то специфически накосячил и прирост не такой большой, как мог бы быть?

> делай разделение по группам инстансинга при добавлении или обновлении сцены
Я что-то не улавливаю о чем ты. Что за группы инстансинга?

> каждый кадр только frustum culling
Опять.
Отсечения невидимой геометрии - это потом. Пока считаем что рисуем только видимые объекты.
Это не тема "как ускорить рендер вообще". Это тема "как ускорить вывод видимой геометрии".
Где-то так.

gammakerПостоялецwww14 мая 201812:57#19
innuendo
> как тут уже сказали, инстансинг сам по себе имеет накладные расходы, построй
> график FPS от числа инстансов на простой модели, у мну помниться оптимально
> было в районе 100-200
Я несколько лет назад на нетбуке с AMD Radeon 6310M рисовал миллион частиц как миллион инстансов квада и получал 30 FPS - быстрее были только point sprites - 40 FPS. Причём я пробовал рисовать их двумя способами - через glDrawArrays и с инстансингом, FPS одинаковый был.
А GS выдавал всего 20 FPS, так что point sprites зря выпилили в DX10+.
Great V.Пользовательwww16 мая 201823:59#20
А вообще я забыл еще несколько пунктов:
1. Оптимизация вершинных атрибутов.
Сейчас у меня вершина это: Position(Float32x3) + Tangent(Float32x3) + Binormal(Float32x3) + Normal(Float32x3) + TexCoord(Float32x2). Итого - 14 floatов или 56 байт.
А ведь можно: Position(Float16x3) + TangentSpaceAngles(Float8x3) + TexCoord(Float16x2). Итого - 5 16-битных floatов и 3 8-битных. Итого - 13 байт. Разница более чем в 4 раза.
2. Ранний тест глубины.
Для него можно вообще использовать только вершинный шейдер + только аттрибуты позиции.

Правка: 17 мая 2018 0:00

PlayerDarkПостоялецwww17 мая 201811:27#21
А какое у тебя железо ты не написал.
ArchiDevilПостоялецwww17 мая 201814:16#22
Профилировщики, конечно, просто так придумали.
MrShoorУчастникwww17 мая 201819:37#23
Great V.
Ты блин догадался, по инстансингу к иннуенде за советом обратиться. Это же его больное место. Пару лет назад тут была жаркая дискуссия, где иннуендо "учил" правильному инстансингу по пейперам, и даже демку от nvidia перекомпилировал, чтобы показать как надо в правильный инстансинг. Показал. На nvidia железе на голой синтетике получил полтора процента прирост, на остальном железе либо в минус ушел, либо без изменений.
Так что ходить к иннуендо за советом по инстансингу не самая здоровая идея.
Ты бы его еще про менеджмент памяти спросил, он бы тебе рассказал про иннуендо-фрагментацию в 64 битном адресном пространстве, лол.

Правка: 17 мая 2018 19:38

MrShoorУчастникwww17 мая 201819:40#24
Great V.
А вообще самый верный вариант был бы приложить сюда этот самый твой проект с инстансингом. А то пост в духе: "я написал какую-то программу, она тормозит. Кто нибудь знает почему?"
Great V.Пользовательwww17 мая 201819:41#25
MrShoor
Давай тогда ты помогай, раз иннуенда не в теме.
Great V.Пользовательwww17 мая 201819:50#26
MrShoor
> А вообще самый верный вариант был бы приложить сюда этот самый твой проект с
> инстансингом.
Ну ок, вечерком закину.

> А то пост в духе: "я написал какую-то программу, она тормозит. Кто нибудь знает
> почему?"
А я специально задавал вопрос без конкретики. А то здешние умники никогда по делу не говорят, а отвлекаются на различные раздражительные для них вещи в коде.

Правка: 17 мая 2018 19:50

MrShoorУчастникwww17 мая 201819:51#27
Great V.
> а отвлекаются на различные раздражительные для них вещи в коде.
Это можно игнорить.
innuendoПостоялецwww17 мая 201819:55#28
MrShoor
> Ты бы его еще про менеджмент памяти спросил, он бы тебе рассказал про
> иннуендо-фрагментацию в 64 битном адресном пространстве, лол.

весеннее обострение ? физическая память всё что угодно, даже блокнот :) что ты там сказал, когда я тебя уделал кучей ссылок - моего мнения не изменит :)

до сих пор желею что не сделал скрин твоего поста про EMS память - курам насмех

Про фрагментацию - я тебе показал пример, тебе этого не понять

Правка: 17 мая 2018 20:02

innuendoПостоялецwww17 мая 201819:56#29
MrShoor
> Так что ходить к иннуендо за советом по инстансингу не самая здоровая идея.

не забыл как обделался про инстансиг в баттлфилде ? несколько дней я показыл ссылку, рассказывал - на пятый день до жирафа дошло

MrShoor
> На nvidia железе на голой синтетике получил полтора процента прирост, на
> остальном железе либо в минус ушел, либо без изменений.

я понимаю, трудно читать чужие буковы - я так и написал, это дока был для NVIDIA, AMD были другие рекомендации

буквопис

Правка: 17 мая 2018 19:59

Страницы: 1 2 3 4 5 6 7 Следующая »

/ Форум / Флейм / Программирование

2001—2018 © GameDev.ru — Разработка игр