HLFX.Ru Forum Страницы (41): « Первая ... « 14 15 16 17 [18] 19 20 21 22 » ... Последняя »
Показать все 608 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Наши проекты (https://hlfx.ru/forum/forumdisplay.php?forumid=1)
-- PrimeXT - логическое продолжение XashXT (https://hlfx.ru/forum/showthread.php?threadid=5371)


Отправлено SNMetamorph 17-04-2021 в 19:55:

Цитата:
Дядя Миша писал:
Достаточно по тем сурфейсам, которые видны из лифов, попавших в кадр. Но может случится ситуация, когда сурфейс не виден, а трава на нём видна. На этот случай можно увелчить bbox лифа.

Я там вообще сделал возможность использовать PVS-куллинг опционально. Т.е. рендер может бсп дерево не использовать вообще.

Добавлено 17-04-2021 в 23:55:

При каком условии R_AddGrassToChain должна возвращать true? Что-то не очень понятно, потому что она по факту для любого сюрфейса возвращает true, если хотя бы где-то на карте есть трава.

__________________
Мой сайт
Xash3D Modding Discord


Отправлено SNMetamorph 18-04-2021 в 07:36:

Ещё был баг с неимоверной кучей вызовов glEnable и glCullFace, эта пара вызывалась на каждый сурфейс при рендеринге мира в R_DrawWorldList
Был код такой:

C++ Source Code:
1
if( FBitSet( surf->flags, SURF_DRAWTURB ))
2
  GL_Cull(GL_NONE);
3
else
4
  GL_Cull(GL_FRONT);

Пофиксил вот так:
C++ Source Code:
1
int cull_type;
2
if( FBitSet( surf->flags, SURF_DRAWTURB ))
3
  cull_type = GL_NONE;
4
else
5
  cull_type = GL_FRONT;
6
 
7
if (cull_type != cached_cull_type) {
8
  GL_Cull(cull_type);
9
  cached_cull_type = cull_type;
10
}

Хотя мне вообще непонятно, зачем дергать куллинг для каждого сурфейса? В том месте кода же даже не рендеринг, а просто сбор нужных индексов.

__________________
Мой сайт
Xash3D Modding Discord


Отправлено Дядя Миша 18-04-2021 в 09:01:

Цитата:
SNMetamorph писал:
Ещё был баг с неимоверной кучей вызовов glEnable и glCullFace

Ну и что, fps вырос после исправления? И зачем было городить огород, если переменная для кэша имеется в самой функции GL_Cull.
Ты её прямо там бы мог задействовать, но я не стал, поскольку периодически наблюдается рассинхрон стейтов между движком и клиенткой, а у меня не было времени каждый случай разбирать от отдельности.

Добавлено 18-04-2021 в 12:01:

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

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено SNMetamorph 18-04-2021 в 09:39:

Цитата:
Дядя Миша писал:
Ты вообще за какую малосущественную ерунду цепляешься, которая ни на что не влияет.

Ну так это лишь одна из мелочей. Но это хоть и мелочь, но все таки оно тоже негативно влияло, навскидку в сложной сцене на карте hg_industrialzone у меня фпс с 124 поднялся до 139.

Добавлено 18-04-2021 в 13:38:

Цитата:
Дядя Миша писал:
Обещал же исследование, что удалось существенно повысить fps, с картинкоме и-тогдалие, до сих пор ждём.

Мне вот осталось разобраться с
Цитата:
SNMetamorph писал:
При каком условии R_AddGrassToChain должна возвращать true? Что-то не очень понятно, потому что она по факту для любого сюрфейса возвращает true, если хотя бы где-то на карте есть трава.

А потом уже можно будет сделать подробное сравнение с ванильным ксашмодом.

Добавлено 18-04-2021 в 13:39:

Цитата:
Дядя Миша писал:
А. В конце R_DrawBrushList будет вызов

C++ Source Code:
1
GL_SelectTexture( glConfig.max_texture_units - 1 ); // force to cleanup all the units
2
GL_CleanUpTextureUnits( 0 );
3
pglBindVertexArray( GL_FALSE );
4
GL_BindShader( NULL );
5
GL_Cull( GL_FRONT );

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

Добавлено 09-04-2021 в 11:25:


естественно там всё это есть.

А еще и с этим тоже можно поковыряться, возможно что неплохой прирост даст.

__________________
Мой сайт
Xash3D Modding Discord


Отправлено Дядя Миша 18-04-2021 в 11:23:

Цитата:
SNMetamorph писал:
навскидку в сложной сцене на карте hg_industrialzone у меня фпс с 124 поднялся до 139.

Крайне сомнительно. Перепроверь еще раз.

Цитата:
SNMetamorph писал:
Что-то не очень понятно, потому что она по факту для любого сюрфейса возвращает true, если хотя бы где-то на карте есть трава.

ну ты как тестировал? И что непонятно из кода самой функции?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено SNMetamorph 18-04-2021 в 17:58:

Всё, разобрался, теперь R_AddGrassToChain работает правильно.
Вот такая небольшая доработка понадобилась.

C++ Source Code:
if (leaf || !es->grasscount)
  return false;

__________________
Мой сайт
Xash3D Modding Discord


Отправлено Дядя Миша 18-04-2021 в 18:29:

Ну что, фрустум-тест не отрабатывал?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено SNMetamorph 19-04-2021 в 11:12:

Цитата:
Дядя Миша писал:
Ну что, фрустум-тест не отрабатывал?

Да, с этим проблема была. Теперь все круто

__________________
Мой сайт
Xash3D Modding Discord


Отправлено Дядя Миша 19-04-2021 в 11:28:

Цитата:
SNMetamorph писал:
Да, с этим проблема была

а что именно? Я вообще замечал, что фрустум иногда глючит, но так и не понял в чём там дело.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено SNMetamorph 19-04-2021 в 16:21:

Цитата:
Дядя Миша писал:
а что именно? Я вообще замечал, что фрустум иногда глючит, но так и не понял в чём там дело.

В общем, из-за неправильной проверки в R_AddGrassToChain она возвращала true даже для тех сурфейсов на которой травы не было, из-за этого в итоге остальные проверки видимости просто пропускались.
https://github.com/SNMetamorph/xash...world.cpp#L3175

__________________
Мой сайт
Xash3D Modding Discord


Отправлено ncuxonaT 20-04-2021 в 17:08:

Какие прогрессивные методы можно утащить в паранойю, чтобы ускорить рендер брашей?


Отправлено Дядя Миша 21-04-2021 в 05:45:

ncuxonaT наоборот, рендер в XashXT это упрощённая копипаста рендера из паранои.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено ncuxonaT 21-04-2021 в 06:13:

Дядя Миша и тем не менее даже без энтитей в некоторых местах больше 1000 дипов, и фпс здорово проседает. Например, на складе со стеллажами, где нужно искать папки.


Отправлено Дядя Миша 21-04-2021 в 06:23:

Вот склад со стеллажами. Видеокарта GT640.
153 DIP, 40 переключений шейдера. Ванильная параноя 1.51

Где там тысяча?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено SNMetamorph 21-04-2021 в 13:49:

Цитата:
Дядя Миша писал:
наоборот, рендер в XashXT это упрощённая копипаста рендера из паранои.

А что там упрощено в сравнении с параноей?

__________________
Мой сайт
Xash3D Modding Discord


Временная зона GMT. Текущее время 13:47. Страницы (41): « Первая ... « 14 15 16 17 [18] 19 20 21 22 » ... Последняя »
Показать все 608 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024