Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Performance strategy for func_wall with +0/+A textures #687

Open
0x4E69676874466F78 opened this issue Dec 4, 2023 · 3 comments
Open

Performance strategy for func_wall with +0/+A textures #687

0x4E69676874466F78 opened this issue Dec 4, 2023 · 3 comments
Labels
performance Performance improvement needed potential bug

Comments

@0x4E69676874466F78
Copy link
Collaborator

0x4E69676874466F78 commented Dec 4, 2023

У нас существует проблема что все func_wall с +0/+A текстурами надо добавлять каждый кадр что даёт какие-то штрафы по производительности.
Мы могли бы проанализировать список энитити на наличие связи func_wall с любыми другими энтитями, для этого надо проверять что вот конкретная func_wall имеет ключ targetname и значение этого ключа (имя) используется какой-то другой энтитей, обычно целевое имя у ссылашющихся энтитей лежит в ключе target, но для страховки можно перебрать все ключи (хотя это может давать ложные срабатывания).

  1. Если targetname нигде упомянут то эта статическая модель.
  2. Если targetname у func_wall вообще не указан или пустой, то искать ничего не нужно и это статическая модель гарантировано (безопасно можем сразу добавить такое поведение).

Теоретически 1 вариант может сломать какие-то моды которые прямо из кода в обход энтитей перелючают func_wall, поэтому стоит оставить квар исключающий этот первый вариант. 2 вариант сломать ничего не должен (99,999%), но при желании тоже можно добавить квар (или сделать режим в рамках одного квара, типа значения 1, 2).

@0x4E69676874466F78 0x4E69676874466F78 added performance Performance improvement needed potential bug labels Dec 4, 2023
@w23
Copy link
Owner

w23 commented Dec 5, 2023

For this to work a lot more is needed:

  1. Distinguish between Animated|WithChangingEmissive and Switchable|WithChangingEmissive.
  2. Detect whether func_wall can be switched (based on targetname logic above).
  3. Only make the switchable static, not animated.

@0x4E69676874466F78
Copy link
Collaborator Author

Вроде бы что-то на эту тему уже было сделано базовое, но не помню что.

@w23
Copy link
Owner

w23 commented Apr 30, 2024

Вроде бы что-то на эту тему уже было сделано базовое, но не помню что.

ЕМНИП:
мы там ходили по цепочкам текстур и выясняли, одинаковые ли они там, или нет. И, вроде, большую часть не-анимируемых-анимированных текстур сумели-таки привести к статике.
Но остались случаи, когда там потенциально разные кадры в цепочке есть, но в реальности стейт-машина игры их никогда достичь не может. И по мотивам как раз этого случая данная ишья и была создана. И ей именно в этом варианте мы не занимались.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
performance Performance improvement needed potential bug
Projects
Status: 🆕 New
Development

No branches or pull requests

2 participants