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


Отправлено KiQ 09-04-2021 в 07:12:

SNMetamorph сделай проверку на соответствие текущего шейдера и шейдера эньтьи и переключай только если current_shader != entity_shader. Ну или просто сделать сортировку ещё и по шейдерам

__________________
-Brain is dead-


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

А. В конце 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:

Цитата:
KiQ писал:
сделай проверку на соответствие текущего шейдера и шейдера эньтьи и переключай только если current_shader != entity_shader. Ну или просто сделать сортировку ещё и по шейдерам

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

__________________
My Projects: download page

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

Цитата:

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


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

Цитата:
Дядя Миша писал:
А. В конце 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:


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

То есть этот весь сброс стейтов можно убрать из функции R_DrawBrushList и сунуть в место которое находится непосредственно после рендеринга энтитей?

__________________
Мой сайт
Xash3D Modding Discord


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

Можно, но надо тестить. У меня не было на это уже времени.

__________________
My Projects: download page

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

Цитата:

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


Отправлено nemyax 11-04-2021 в 16:49:

SNMetamorph
Вот тут репа PrimeXT?
https://github.com/SNMetamorph/xashxt-fwgs


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

Опять CR\LF покоцали, ну сами и сравнивайте.

Добавлено 11-04-2021 в 20:46:

C++ Source Code:
1
static void R_AppendSurface(mextrasurf_t *esurf)
2
{
3
  for (int vert = 0; vert < esurf->numverts - 2; vert++)
4
  {
5
    ASSERT(numTempElems < (MAX_MAP_ELEMS - 3));
6
    tempElems[numTempElems++] = esurf->firstvertex;
7
    tempElems[numTempElems++] = esurf->firstvertex + vert + 1;
8
    tempElems[numTempElems++] = esurf->firstvertex + vert + 2;
9
  }
10
}

Хоть бы спросил, почему там макрос, а не функция.

Добавлено 11-04-2021 в 20:50:

А с травой што?

__________________
My Projects: download page

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

Цитата:

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


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

Цитата:
Дядя Миша писал:
А с травой што?

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

Дядя Миша писал:
Хоть бы спросил, почему там макрос, а не функция.

Ну наверное чтоб лишние вызовы не делать? Хотя хз насколько это вообще на производительность влияет.

Добавлено 14-04-2021 в 23:19:

Цитата:
nemyax писал:
Вот тут репа PrimeXT?
https://github.com/SNMetamorph/xashxt-fwgs

Пока да, но потом перенесу в https://github.com/SNMetamorph/PrimeXT

__________________
Мой сайт
Xash3D Modding Discord


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

Цитата:
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 15-04-2021 в 06:44:

Цитата:
Дядя Миша писал:
Функция - лишние движения по стеку.

Тогда наверно лучше вместо макроса сделать инлайновую функцию

__________________
Мой сайт
Xash3D Modding Discord


Отправлено nemyax 15-04-2021 в 07:33:

Цитата:
SNMetamorph писал:
Тогда наверно лучше вместо макроса сделать инлайновую функцию

Нету гарантии, что заинлайнится.


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

Цитата:
nemyax писал:
Нету гарантии, что заинлайнится.

Гарантия есть, но я не помню при каких условиях. Макрос надёжнее в этом плане, хоть и выглядит не так красиво.

Добавлено 15-04-2021 в 11:14:

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

__________________
My Projects: download page

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

Цитата:

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


Отправлено SNMetamorph 15-04-2021 в 14:28:

Цитата:
nemyax писал:
Нету гарантии, что заинлайнится.

Для этого есть forceinline или что-то такое

__________________
Мой сайт
Xash3D Modding Discord


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

Цитата:
SNMetamorph писал:
Для этого есть forceinline

они deprecated

__________________
My Projects: download page

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

Цитата:

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


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

Сложно. Ну вот пофиксил я длайты вместе с декалями, а теперь пришел черёд травы. Проблема в том, что там нужно снова пройтись по всем сурфейсам (не только по видимым, как я понял) и для каждого применить R_AddGrassToChain. И так каждый кадр, как-то оно медленно будет, мне кажется

Добавлено 15-04-2021 в 21:12:

Цитата:
SNMetamorph писал:
Сложно. Ну вот пофиксил я длайты вместе с декалями, а теперь пришел черёд травы. Проблема в том, что там нужно снова пройтись по всем сурфейсам (не только по видимым, как я понял) и для каждого применить R_AddGrassToChain. И так каждый кадр, как-то оно медленно будет, мне кажется

Похожая история и со скайбоксом была, но я как-то пофиксил ранее, хотя там уже другой баг вылез.

__________________
Мой сайт
Xash3D Modding Discord


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

Цитата:
SNMetamorph писал:
Проблема в том, что там нужно снова пройтись по всем сурфейсам (не только по видимым, как я понял)

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

__________________
My Projects: download page

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

Цитата:

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


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

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