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

Тест видимости. (4 стр)

Страницы: 1 2 3 4 5 6 Следующая »
#45
(Правка: 0:18) 0:15, 1 мая 2021

Andrey
Ну смотри, модель я тебе послал, так что когда будешь готов то попробуй. Интересно какая скорость у тебя получится. Задача стоит получить на этой модели время рендера в 5 мс при простом пиксельном шейдере, экране 2048 х 2048 и на карте типа 970. Время я смотрю по GpuView, там все хорошо видно. Без оптимизации у меня меньше 10 мс не получается, не смотря на сортировку по расстоянию и фрустум. Если удастся снизить время вдвое я буду очень рад.


#46
(Правка: 1:51) 1:48, 1 мая 2021

san
Просто рендер твоей модели без чего либо у меня укладывается в 2.55мс на GF980:

+ Показать

GF970 у меня нету, чтобы потестить, но я сомневаюсь, что на нём будет больше 5мс. Всё таки он не в 2 раза слабее 980.

p.s. И оклюжн куллинг для этой 3д модели - ничего тебе не даст. Разве что только тормозов подкинет. Когда ты в городе - полигоны сильно порежет фрустум куллинг. Когда смотришь сверху - оклюжн куллинг мало что отсечет, а свой импакт вносить будет. Так что оклюжном ты только: "ускоришь там, где итак быстро" и "замедлишь там, где медленно, и нужно оптимизировать".

#47
(Правка: 2:02) 2:00, 1 мая 2021

MrShoor
Включи MSAA x4. Без этого на при большом количестве прямых линий вылазит паскудное мельтешение при движении головой. Мои цифры при включенном MSAA, без него я даже не замерял. Просто забыл об этом сказать.

#48
(Правка: 2:02) 2:02, 1 мая 2021

san
> Включи MSAA x4. Без этого на при большом количестве прямых линий вылазит
> паскудное мельтешение при движении головой.
На FPS это практически не повлияет (потому ресайз окна - почти не влияет)

#49
(Правка: 2:07) 2:03, 1 мая 2021

MrShoor
> На FPS это практически не повлияет (потому ресайз окна - почти не влияет)
Ты включи, потом и будем разбираться. Чудес же нет.
Размер окна у меня примерно 2К х 2К, но пиксельный шейдер простой, там только чтение текстуры и умножение на dot к нормали.

#50
2:22, 1 мая 2021

san
> Ты включи, потом и будем разбираться. Чудес же нет.
Мне лень в код MSAA протягивать. Вот я тебе размер фреймбуфера просто увеличил в 2 раза по ширине и по высоте (посути суперсемплинг x4, должно быть еще тормознее чем MSAA x4)

+ Показать

2.66мс на рендер
#51
(Правка: 2:58) 2:28, 1 мая 2021

MrShoor
Ну смотри, чудес же нет. Вот смотри что я имею на AMD R9 Nano и в случае Oculus:

+ Показать

(это два гlаза, разумеется). High Priority Comput - это окулусовский пост-процесс.

Картинка у меня чуток получше чем твоя, но не суть важно:

+ Показать

Недеюсь ты не будешь меня уверять что рендер на DX11 в два раза быстрее чем на DX12?

P.S.
А как сделать разворачивающуюся картинку в форуме? Я что то не вижу.

#52
(Правка: 2:37) 2:36, 1 мая 2021

san
> Недеюсь ты не будешь меня уверять что рендер на DX11 в два раза быстрее чем на
> DX12?
Нет конечно, но возможно ты что-то еще делаешь, помимо просто рендера. Могу собрать тебе *.exe, посмотришь через RenderDoc и попробуешь найти что такого я не делаю, что делаешь ты. Заодно потестишь на своём железе, может у тебя драйвера фокусы творят, а может ты в коде ждёшь рейкаста на GPU.

> А как сделать разворачивающуюся картинку в форуме? Я что то не вижу.
Оберни картинку в spoiler

#53
(Правка: 2:56) 2:51, 1 мая 2021

MrShoor
Ну ты же видишь диаграмму. Там чистое вреня рендера. Начало работы GPU через 2.6 мс после старта процесса на CPU. Это нормально, учитывая сортировку кучи обьектов и подготовку всех матриц. Потом идет собственно рендер на GPU. 4.5 мс сжирает процесс Окулус, с ним я ничего не могу поделать. Но он идет в паралель, хотя и с повышенным приоритетом (используется LiquidVR, только там есть эта фича). Рендер двух глаз идет инстансами, скорость по сравнению с двумя отдельными рендерами практически не меняются, но на графике смотреть проще. CPU ждет конца этого процесса и дождавшись синк от хедсета запускает новый цикл. Собственно и все.

#54
2:58, 1 мая 2021

HolyDel
> И это не распространённая практика. Называется Software Occlusion Culling.
umbra же примерно так работает (если там ничего не изменилось), а она в 90% всех крупных проектов. Там, конечно, порталы и тяжелый препроцессинг сцены, но сути это не меняет.

Andrey
> Не, я тут предлагал Occlusion Culling полностью без CPU.
Это я понял. Но что делать, если информация о видимости все же нужна? Как стримить текстуры, если мы не знаем какие объекты видны? Как обновлять кости персонажей, если нельзя отсечь тех, которые не видны? Как решить обновлять ли динамичную тень, если не понятно виден фрастум тени из камеры или нет? Что-то мне не верится, что все это можно организовать без задержек используя только ГПУ.

san
> Apfel1994
> > Можно это делать в низком разрешении или использовать "неточный" zbuffer
> Да какая разница? Вообще-то GPU для того и создан что бы процессор этой работой
> не занимался.
Можно мне тоже модель? Потещу софтварный кулинг раз такое дело.

#55
(Правка: 3:00) 2:59, 1 мая 2021

san
> Ну ты же видишь диаграмму.
Ну ты же тоже видишь мой скрин? 2.6мс на рендер на GF980

#56
(Правка: 3:35) 3:12, 1 мая 2021

MrShoor
Ну и как ты это обьясняешь?
ОК, у меня AMD не основная карта ну и что? Это же не может замедлять рендер в 2 раза? На диаграмме видно, что идет непрерывная загрузка карты. CPU тут ни при чем. Другой геометрии кроме этой у меня нет. Ну ОК, я ее вывожу дважды. Но одном чохом, поскольку инстансами (впрочем это как раз неважно). Да, тут еще Oculus SDK сидит, ее 4.5 мс снижает скорость еще почти в 2 раза против твоих цифр. Получается 2.6 мс х 2 + 4.5 = 9.7. Но все равно цифры не сходятся, где же остальные 6 мс?

>Могу собрать тебе *.exe,
Ну кинь, интересно же что там может быть. Может и исходник кинешь если это не сильно большой секрет? Я его использовать не буду ибо работаю все равно на DX12, но так проще будет разобраться.
Если исходник жалко, то хоть сделай выбор адаптера. Каждый раз перетыкать кабеля как-то не очень удобно.

P.S.
Я еще пропустил 2.6 мс от Окулуса (они там идут ближе к концу).  Что он делает почти 6 мс я не очень понимаю. Вроде я раньше такого поведения не наблюдал, но вся разаница - только обьем геометрии. Хотя Окулусу я отправляю только готовую картинку. Короче все страньше и страньше...

#57
3:33, 1 мая 2021

san
> Ну и как ты это обьясняешь?
Я же уже выше сделал несколько предположений постом выше: https://gamedev.ru/code/forum/?id=260460&page=4&m=5380633#m52

Поэтому я предлагал тебе собрать выслать свой exe-шник, чтобы ты мог оттестить на своём железе. Чтобы понять куда вообще копать.

#58
(Правка: 4:27) 3:40, 1 мая 2021

MrShoor
Так кинь, я дописал в предыдущем посте.  Там же добавил о некоторых странностях. Я взял весь код от Алхимика и поменял только сцену. Разумеется пропали все зеркала, стекло и прочие изыски.  Откуда сейчас полезли 6 мс high priority compute от Окулуса я не понимаю. Но даже с учетом этого цифры не пляшут. Хотя уже и не так сильно.

Вот смотри, это сцена Алхимика:

+ Показать

Ну время рендера в 2 раза меньше, это фиг с ним. Но обрати внимание на Окулус. Он всего 1 мс.
То же железо, та же программа. Разница только в сцене. Причем во втором случае сцена сложнее (стекло, заркала) хотя там меньше треугольников (500.000 против 5.000.000).

Вот как она выглядит:

+ Показать

#59
4:04, 1 мая 2021

san
Держи:
https://drive.google.com/drive/folders/1yyJJXbZ3pcIDqcLOzUaaZZga9… p?usp=sharing

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