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

Рендеринг. Кто как делает? (10 стр)

Страницы: 17 8 9 10 11 12 Следующая »
#135
20:09, 11 апр. 2016

gammaker
> Прокачка на шине кучи лишнего мусора каждый кадр очень сильно ударит по
> производительности.
Не заметил сильной просадки. Перевел все на один формат, и в итоге ФПС упал кадров на 7-10  -  на самой сложной сцене до перевода был 260, стал около 250. В пределах погрешности. Так что я пожалуй останусь на одном формате чем буду опять городить неведомую архитектуру с кучей разного говна.


#136
20:29, 11 апр. 2016

>>Стоит ли использовать единый формат вершин на весь движок, или для каждой цели использовать свой?
Юзаю свой на каждый тип данных. ну нет у статической геометрии развесовки костей. Конечно туда можно записать что-нибудь другое и переименовать макросом, если так уж хочется держать всё в униформе.

>>Поставь в шейдере portals_ps красный цвет и увидишь. Это окна в зданиях и тд
А, понятно. Ну здания не на каждой карте есть, видимо поэтому не везде присутствует.

>>И ещё есть смысл не делать всё interleaved в одном куске, а поделить на потоки. Например для shadow map не нужны тангенты и нормали
Держать две копии уровня в памяти, один с полным размером вертекса, другой чисто с позицией? Такой подход имеет право на жизнь, если копия уровня с одной лишь позицией будет низкой детализации, ну скажем физическая оболочка или для расчёта лайтмап. Её же можно использовать для ренлеринга шадовмап.

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

>>Перевел все на один формат, и в итоге ФПС упал кадров на 7-10 - на самой сложной сцене до перевода был 260, стал около 250
Да-да-да, вот это оно самое и есть. Подумаешь десять фпс сожрало. Потом еще где-нибудь 10 отожрёт. А потом еще и еще. Так всегда бывает.

#137
20:40, 11 апр. 2016

С одним форматом вершин архитектура рендера становится намного проще.

g-cont
> Да-да-да, вот это оно самое и есть. Подумаешь десять фпс сожрало. Потом еще
> где-нибудь 10 отожрёт. А потом еще и еще. Так всегда бывает.
Больше негде ничему падать, у меня деферед самое узкое место, и то, с кучей оптимизаций.

#138
20:55, 11 апр. 2016

mr.DIMAS
> Не заметил сильной просадки. Перевел все на один формат, и в итоге ФПС упал
> кадров на 7-10  -  на самой сложной сцене до перевода был 260, стал около 250.
У тебя наверное изначально неоптимальный формат был - всё во флоатах, хотя можно заменить на нормализованные шорты или даже более компактные типы. Если хорошенько пожать вершины, можно наверное 280 FPS получить. Но если 10% для тебя мало, то делай, как хочешь. Но это будет рендер специфичный для твоей игры, нормальный движок общего назначения из такого не выйдет.
И не факт, что у тебя достаточно много частиц или другой нагрузке, чтобы это сильно проявилось.

g-cont
> Держать две копии уровня в памяти, один с полным размером вертекса, другой
> чисто с позицией?
Я имел в виду не полный, а оставшуюся часть, без дублирования.

g-cont
> Такой подход имеет право на жизнь, если копия уровня с одной лишь позицией
> будет низкой детализации, ну скажем физическая оболочка или для расчёта
> лайтмап. Её же можно использовать для ренлеринга шадовмап.
Насколько я знаю, копию с пониженной детализацией нельзя использовать для shadow map.

#139
21:01, 11 апр. 2016

Вот именно что, зачем делать движок общего назначения? Если заниматься движкодрочерством, то пожалуйста. Я же пишу движок под конкретную игру, которая готова уже на 80%. Игру и движок пишу параллельно, уже третий год кстати. Не долго до гринлайта осталось...

#140
21:07, 11 апр. 2016

Вот исходники, кому интересно.

https://github.com/mrDIMAS/src

Рендерер в Engine.cpp

#141
21:14, 11 апр. 2016

mr.DIMAS
> Так что я пожалуй останусь на одном формате чем буду опять городить неведомую
> архитектуру с кучей разного говна.

Пока не будет у тебя 100-500 техник готовых и отлаженных даже не думай менять

#142
21:22, 11 апр. 2016

innuendo
> Пока не будет у тебя 100-500 техник готовых и отлаженных даже не думай менять
То есть ты за единый формат вершин?

#143
21:23, 11 апр. 2016

mr.DIMAS
> То есть ты за единый формат вершин?
Угу

#144
3:57, 12 апр. 2016

Andrey
> то он не рисуется, но зачастую это правило выполняется но на тяжелых
> загруженных сценах можно выкинуть значительно число объектов занимающих
> несколько пикселей на экране, ощутимо не влияющих на результат.
> Проверяй квадрат расстояния до камеры и выкидывай объекты из списка. Это
> уменьшит число DIP.
> Расстояние можно подобрать экспериментально. Но можно и посчитать по хитрой
> формуле, учитывающей площадь проекции объекта на экран что по сути примерное
> число видимых пикселей, допустимых для правильного визуального результат

В этом случае объекты быстро пропадают исчезают. Вся эта байда скрывается туманом и far plane

#145
7:34, 12 апр. 2016

mr.DIMAS
В Lost Planet единый формат на всю игру

>0 SHORT4N POSITION 0
>8 UBYTE4 BLENDINDICES 0
>12 UBYTE4N BLENDWEIGHT 0
>16 UBYTE4N NORMAL 0
>20 UBYTE4N TANGENT 0
>24 FLOAT16_2 TEXCOORD 0
>28 FLOAT16_2 TEXCOORD 1

кроме отдельный случаев

#146
9:18, 12 апр. 2016

mr.DIMAS
> Вот исходники, кому интересно.

Картинку бы, мне интересно.

#147
10:08, 12 апр. 2016

Mr. Rabbit
> Картинку бы, мне интересно.
У игры есть своя тема - http://www.gamedev.ru/projects/forum/?id=196388
В последнем посте можно скачать и поиграть. Но там версия без переработанного движка, однако они ничем не отличаются - у меня движок и игра отделены. Поэтому можно изменять движок не затрагивая игру (но перекомпилировать придётся - статическая линковка)

#148
10:22, 12 апр. 2016

Andrey

Я всё ещё жду ответы на вопросы:

1) Как передать 16 float4 на DX9 через интерполяторы ?
2) Покажи как ты пачками шлёшь на DX11

#149
10:31, 12 апр. 2016

Mr. Rabbit
> С одним форматом вершин архитектура рендера становится намного проще.
А в чем сложность нескольких форматов?

Страницы: 17 8 9 10 11 12 Следующая »
ПрограммированиеФорумГрафика

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