HLFX.Ru Forum Страницы (41): « Первая ... « 9 10 11 12 [13] 14 15 16 17 » ... Последняя »
Показать все 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)


Отправлено Дядя Миша 07-02-2021 в 21:08:

75 зеркал?

Добавлено 08-02-2021 в 00:08:

Если есть подозрение на баги, надо в первую очередь тестировать оригинал, а не форк.

__________________
My Projects: download page

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

Цитата:

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


Отправлено SNMetamorph 10-02-2021 в 14:49:

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

Да, надо будет сравнить. Пока что правда из-за учебы снова нет времени, потом постараюсь как нибудь выделить.

__________________
Мой сайт
Xash3D Modding Discord


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

Цитата:
Дядя Миша писал:
75 зеркал?

Ага, поглядел через r_speeds 7, ни одного зеркала нету, надо понять почему оно невалидно сбросы считает иногда.

Добавлено 11-02-2021 в 23:09:

Разобрался почему невалидная инфа отображалась: у меня помимо R_DrawWorldList счетчики еще и инкрементировались в R_DrawBrushList (которая вызывается для каждой брашевой энтити). Теперь картина более ясная стала.

__________________
Мой сайт
Xash3D Modding Discord


Отправлено SNMetamorph 21-02-2021 в 15:59:

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

Добавлено 21-02-2021 в 19:52:

Цитата:
Дядя Миша писал:
Хы. Mod_ResortFaces должен вызываться каждый кадр. Там недоделато.

А можно про это подробнее? Как это в целом должно работать?

Добавлено 21-02-2021 в 19:59:

Цитата:
SNMetamorph писал:
Теперь надо попытаться что-то с сортировкой сделать, чтобы переключения текстур были выше по приоритету чем переключения шейдеров.

Сейчас попробовал - переключений текстур убавилось буквально на 20-30, зато добавилось 50 переключений шейдеров. Вернул всё обратно.

__________________
Мой сайт
Xash3D Modding Discord


Отправлено Дядя Миша 21-02-2021 в 16:41:

SNMetamorph
tr.params_changed должен отслеживать модификацию кваров. Ну можешь в параное глянуть.

__________________
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-02-2021 в 20:19:

В общем, по рендерингу мира картина уже более-менее ясна. В основном сброс буфера происходит из-за смены текстур, коих на более-менее крупных картах немало, и от этого никуда не деться. Они же в текущей ситуации и дают основную просадку FPS. В принципе, тут есть два решения:
1. Группировать все текстуры сурфейсов мира в атлас (придется много всего переделывать)
2. Использовать bindless textures (поддержка есть только в видеокартах >2013 года)

Добавлено 22-02-2021 в 00:19:

Теперь надо изучить рендеринг брашевых энтити, там вроде есть что-то довольно тормозючее.

__________________
Мой сайт
Xash3D Modding Discord


Отправлено Дядя Миша 22-02-2021 в 06:30:

Переключение текстур на фпс почти не влияет. Смена шейдера - самая дорогая операция.

__________________
My Projects: download page

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

Цитата:

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


Отправлено SNMetamorph 22-02-2021 в 08:01:

Цитата:
Дядя Миша писал:
Переключение текстур на фпс почти не влияет. Смена шейдера - самая дорогая операция.

Ну переключений шейдеров совсем немного, а текстуры по 200-300 раз за кадр на больших картах меняются, в итоге импакт по производительности очень большой.

__________________
Мой сайт
Xash3D Modding Discord


Отправлено Дядя Миша 22-02-2021 в 09:24:

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

Для быстрой прикидки можно выключить всю отрисовку энтить и сравнить фпс. Mod_HeadnodeVisible очень тормозной если дерево слишком большое.

Т.е. в первую очередь - исключи влияние механизмов проверки видимости, которые в какой-то момент начинают наоборот затормаживать всю работу.

__________________
My Projects: download page

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

Цитата:

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


Отправлено SNMetamorph 22-02-2021 в 09:33:

Цитата:
Дядя Миша писал:
Вообще, как я уже говорил - далеко не факт, что проблема именно в отрисовке. Ты для начала посмотри сколько нодов и лифов в дереве на этой карте. Отпрофилируй ENGINE_CHECK_VISIBILITY там могут быть совершенно сумашедшие значения.

Для быстрой прикидки можно выключить всю отрисовку энтить и сравнить фпс. Mod_HeadnodeVisible очень тормозной если дерево слишком большое.

А это все дело используется в отрисовке через отсортированный список сурфейсов который в Mod_ResortFaces собирается? Там же оно один раз генерится при загрузке уровня, а потом список никак не меняется. Я правда не пойму как потом некоторые сурфейсы куллятся в функции R_DrawWorldList

__________________
Мой сайт
Xash3D Modding Discord


Отправлено Дядя Миша 22-02-2021 в 10:34:

Список тут непричём. Это список отсортированных индексов. Из него видимые сурфейсы попадают в другой список, и вот он уже рисуется.
Проведи простой тест - r_norefresh 1
Если фпс не сильно подымется, дело вообще не в отрисовке.

__________________
My Projects: download page

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

Цитата:

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


Отправлено SNMetamorph 22-02-2021 в 13:58:

Цитата:
Дядя Миша писал:
Проведи простой тест - r_norefresh 1
Если фпс не сильно подымется, дело вообще не в отрисовке.

С 50 кадров поднялся до 170, немало.

Добавлено 22-02-2021 в 15:45:

Цитата:
Дядя Миша писал:
Mod_HeadnodeVisible очень тормозной если дерево слишком большое.

Ну это же опять таки от процессора зависит?

Добавлено 22-02-2021 в 17:22:

Как
Цитата:
SNMetamorph писал:
А это все дело используется в отрисовке через отсортированный список сурфейсов который в Mod_ResortFaces собирается? Там же оно один раз генерится при загрузке уровня, а потом список никак не меняется. Я правда не пойму как потом некоторые сурфейсы куллятся в функции R_DrawWorldList

Как щас выяснил, весь куллинг сурфейсов выполняется в двух строках в цикле:

C++ Source Code:
1
void R_DrawWorldList( void )
2
{
3
  ...
4
  for( int i = 0; i < world->numsortedfaces; i++ )
5
  {
6
    int surf_index = world->sortedfaces[i];
7
    if( !CHECKVISBIT( RI->visfaces, surf_index ))
8
      continue;
9
  }
10
  ...
11
}
12
 

Осталось разобраться как заполняется собственно сам RI->visfaces

Добавлено 22-02-2021 в 17:35:

Как я понимаю, R_RecursiveWorldNode пробегает по BSP-дереву, помечает видимые лифы и добавляет сурфейсы в некий список (который в R_DrawWorldList не используется) и как раз таки заполняет RI->visfaces
А в свою очередь R_WorldMarkVisibleFaces делает то же самое, только бегает не по дереву, а тупо последовательно по списку лифов на карте?

Добавлено 22-02-2021 в 17:58:

Сейчас потыкали всем народом квар gl_recursive_world_node, который как раз переключает функции R_RecursiveWorldNode и R_WorldMarkVisibleFaces, в итоге вообще ни у кого нет никакой разницы по производительности. Единственное что я заметил, у меня R_WorldMarkVisibleFaces выполняется малость быстрее.

__________________
Мой сайт
Xash3D Modding Discord


Отправлено Дядя Миша 22-02-2021 в 14:30:

Цитата:
SNMetamorph писал:
Ну это же опять таки от процессора зависит?

Если рекурсия слишком глубокая, это на любом проце удар по производительности. Ну как цикл while( 1 ); загрузит проц на 100% независимо от его мощности.

Цитата:
SNMetamorph писал:
Сейчас потыкали всем народом квар gl_recursive_world_node

вас там еще и много

Цитата:
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 22-02-2021 в 14:46:

Цитата:
Дядя Миша писал:
Если рекурсия слишком глубокая, это на любом проце удар по производительности. Ну как цикл while( 1 ); загрузит проц на 100% независимо от его мощности.

То есть предпочтительнее таки отказаться от R_RecursiveWorldNode в пользу R_WorldMarkVisibleFaces?

Цитата:
Дядя Миша писал:
вас там еще и много

Из русских мб человек 10 наберется, из тех кого я знаю. А еще есть пару иностранцев.

__________________
Мой сайт
Xash3D Modding Discord


Отправлено Дядя Миша 22-02-2021 в 14:53:

Цитата:
SNMetamorph писал:
То есть предпочтительнее таки отказаться от R_RecursiveWorldNode в пользу R_WorldMarkVisibleFaces?

сложный вопрос на самом деле. Лучше всего не допускать раздутого дерева, но на халфовском формате это нереально. Я писал симплификатор дерева для NT, он очень хорошо справлялся, но для меня это давно уже неактуально.

__________________
My Projects: download page

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

Цитата:

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


Временная зона GMT. Текущее время 08:36. Страницы (41): « Первая ... « 9 10 11 12 [13] 14 15 16 17 » ... Последняя »
Показать все 608 сообщений этой темы на одной странице

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