![]() |
Страницы (255): « Первая ... « 24 25 26 27 [28] 29 30 31 32 » ... Последняя » Показать все 3825 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Наши проекты (https://hlfx.ru/forum/forumdisplay.php?forumid=1)
-- XashNT: блог разработчика (https://hlfx.ru/forum/showthread.php?threadid=5297)
Это операторы словами:
GL_EQUAL ==
GL_NOTEQUAL !=
GL_GREATER >
GL_LESS <
GL_GEQUAL >=
GL_LEQUAL <=
Добавлено 28-10-2019 в 13:46:
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Ну што, работа идёт потихоньку. С новой скриптовой системой фичи добавлять одно удовольствие. Бамп подключил со спекуляром, за час.
Собсно, справился бы за пять минут, но ведь новые части системы написаны, а еще толком не отлажены. Плюс некоторые уточнения концепции.
Конечно нельзя сказать, что всё гладко. К примеру самая главная проблема отрисовки брашей - она никуда не делась. Надо придумать как оптимизировать это дело. А дело тут вот в чём:
Модель - понятно, загрузил меш, загрузил его индексы и рисуй себе.
С брашами не так. Там конечно можно весь мир засунуть в один вбо, но рисовать-то придётся по видимым фейсам, накапливая их в промежуточном буффере. Это первая проблема, то что нужен такой массив. Вторая проблема, что для того, чтобы сказать драйверу, какие именно сурфейсы рисовать, нам очевидно надо проталкивать индексы по шине каждый кадр.
Их не надо хранить, они всегда производное от surf->firstvertex (можете в ксаш-моде посмотреть), но положение это не спасает. Во первых их надо накопить в массиве. Во вторых их надо загрузить в видеопамять. Хреново вообщем. Пока карты стандартные халфовские это ни на что не влияет. Но взять ту же спонзу или карты рейда, и выходит что мы за кадр проталкиваем порядка 40 тысяч индексов. Конечно не вертексов, конечно это быстрее.
Но всё равно. Там где могло бы быть 2000 фпс, остаётся всего 300-400.
А с лайт-проходами и прочим, падение будет еще сильнее. Плюс это только рендерер. Вообщем имеет место быть мультипликационный эффект падения производительности. Надо придумать что с этим сделать.
Самое очевидное решение - вообще не использовать сложную брашевую архитектуру оставим на усмотрение дизайнерам. Если бы таких карт в природе не было, я бы может и не парился. Но они есть. И с этим надо что-то делать.
Добавлено 30-10-2019 в 18:51:
Из влобных решений - можно попробовать завести VBO для каждого фейса, но чёт мне кажется это плохая идея.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Забить на отсечение брашевых фейсов и рисовать единый вбо? С з препассом, например. Медленно получится?
ncuxonaT
У меня тут одна знакомая дочь офицера говорила по поводу з-препасса, что... ну ты понял.
__________________
BSP геометрию при загрузке конвертить в модель
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша текстуры можно собрать в атлас с GL_NEAR, а фильтрацию делать в шейдере, но это, конечно извращение немножк
__________________
-Brain is dead-
Crystallize
Если текстурные координаты за пределами единичного квадратика, то на атласе они бы брали чужие текстуры.
nemyax А, ну это понятно. Ну при тайлинге отдельно хранимой текстуры рендер же доходит до конца массива пикселей и потом сбрасывает координаты на начало и начинает рисовать следующий тайл той же текстуры. Ну а в атласе значит надо для каждой текстуры хранить границы в которых она находится в атласе, и так же циклиться между ними. Это по идее, в атласах наверное есть заморочка почему это невозможно, или ещёченить.
Это в общем такая фундаментальная проблема что не ждёшь что она ещё где-то не решена.
Crystallize для каждого атласа заводить texture region по количеству изначальных текстур, которые будут клампить оффсет?
__________________
-Brain is dead-
Crystallize это всё было бы хорошо в теории, если бы не существовало пирамидальной фильтрации, анизотропной фильтрации и других страшных слов.
Добавлено 30-10-2019 в 20:53:
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Ну так а это, сортировать видимые фейсы в текстурные списки?
__________________
-Brain is dead-
Первые эксперименты по оптимизации.
Чёт какой-то COF получился.
Добавлено 30-10-2019 в 22:01:
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Временная зона GMT. Текущее время 15:21. | Страницы (255): « Первая ... « 24 25 26 27 [28] 29 30 31 32 » ... Последняя » Показать все 3825 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024