HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > XashNT: блог разработчика
Часть I
Страницы (240): « Первая ... « 24 25 26 27 [28] 29 30 31 32 » ... Последняя »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32190
Нанёс повреждений: 392 ед.

Рейтинг



Это операторы словами:
GL_EQUAL ==
GL_NOTEQUAL !=
GL_GREATER >
GL_LESS <
GL_GEQUAL >=
GL_LEQUAL <=

Добавлено 28-10-2019 в 13:46:

Цитата:
Crystallize писал:
По-моему ты с ума сойдёшь всё это документировать.

наоборот. Достаточно понять общие принципы, а дальше сработает экстраполяция.

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 185479

Старое сообщение 28-10-2019 10:46
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32190
Нанёс повреждений: 392 ед.

Рейтинг



Ну што, работа идёт потихоньку. С новой скриптовой системой фичи добавлять одно удовольствие. Бамп подключил со спекуляром, за час.
Собсно, справился бы за пять минут, но ведь новые части системы написаны, а еще толком не отлажены. Плюс некоторые уточнения концепции.
Конечно нельзя сказать, что всё гладко. К примеру самая главная проблема отрисовки брашей - она никуда не делась. Надо придумать как оптимизировать это дело. А дело тут вот в чём:
Модель - понятно, загрузил меш, загрузил его индексы и рисуй себе.
С брашами не так. Там конечно можно весь мир засунуть в один вбо, но рисовать-то придётся по видимым фейсам, накапливая их в промежуточном буффере. Это первая проблема, то что нужен такой массив. Вторая проблема, что для того, чтобы сказать драйверу, какие именно сурфейсы рисовать, нам очевидно надо проталкивать индексы по шине каждый кадр.
Их не надо хранить, они всегда производное от 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'

Сообщить модератору | | IP: Записан
Сообщение: 185580

Старое сообщение 30-10-2019 15:51
-
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



Забить на отсечение брашевых фейсов и рисовать единый вбо? С з препассом, например. Медленно получится?

Сообщить модератору | | IP: Записан
Сообщение: 185582

Старое сообщение 30-10-2019 16:18
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34498
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


ncuxonaT
У меня тут одна знакомая дочь офицера говорила по поводу з-препасса, что... ну ты понял.

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

Сообщить модератору | | IP: Записан
Сообщение: 185584

Старое сообщение 30-10-2019 16:37
-
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4415
Возраст: 34

Рейтинг



BSP геометрию при загрузке конвертить в модель

Сообщить модератору | | IP: Записан
Сообщение: 185587

Старое сообщение 30-10-2019 16:49
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32190
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
ncuxonaT писал:
Забить на отсечение брашевых фейсов и рисовать единый вбо? С з препассом, например. Медленно получится?

Забивать не с руки, для колидоров весь смысл именно в отсечении, а для ландшафта проще поставить гигантскую модель. Если бы я хотел забить, я бы сделал движок вообще без брашей. Но так неинтересно.

Цитата:
Crystallize писал:
BSP геометрию при загрузке конвертить в модель

Модели фундаментально отличаются от брашей, если ты еще не понял.
Способом их редактирования. В модели ты берёшь один меш в котором миллионы вертексов и натягиваешь на это ЕДИНУЮ текстуру. Для брашей всё строго наоборот, там ты нарисовал кубек и каждую грань покрасил в свою текстуру. Текстура поменялась - стоп конвейер, перезапуск отрисовки.
Текстуры нельзя склеить в атлас, т.к. они с тайлингом. Текстуры нельзя склеить в 2Д массив, т.к. во первых они все разного размера, во вторых 2д массивы довольно таки тормозны, на удивление, на старом железе. А где то их нет вообще.

Добавлено 30-10-2019 в 20:07:

ЗЫ, биндлесс текстур на старом железе нет тем более.

Добавлено 30-10-2019 в 20:09:

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

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 185590

Старое сообщение 30-10-2019 17:09
-
KiQ
Житель форума

Дата регистрации: Aug 2010
Проживает: Смоленск, Москва
Сообщений: 2087

Рейтинг



Дядя Миша текстуры можно собрать в атлас с GL_NEAR, а фильтрацию делать в шейдере, но это, конечно извращение немножк

__________________
-Brain is dead-

Сообщить модератору | | IP: Записан
Сообщение: 185591

Старое сообщение 30-10-2019 17:17
- За что?
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 4133

Рейтинг



Цитата:
Дядя Миша писал:
В модели ты берёшь один меш в котором миллионы вертексов и натягиваешь на это ЕДИНУЮ текстуру

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

Сообщить модератору | | IP: Записан
Сообщение: 185592

Старое сообщение 30-10-2019 17:24
- За что?
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4415
Возраст: 34

Рейтинг



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

нифкурил

Сообщить модератору | | IP: Записан
Сообщение: 185593

Старое сообщение 30-10-2019 17:24
- За что?
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 4133

Рейтинг



Crystallize
Если текстурные координаты за пределами единичного квадратика, то на атласе они бы брали чужие текстуры.

Сообщить модератору | | IP: Записан
Сообщение: 185594

Старое сообщение 30-10-2019 17:29
- За что?
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4415
Возраст: 34

Рейтинг



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

Отредактировано Crystallize 30-10-2019 в 17:38

Сообщить модератору | | IP: Записан
Сообщение: 185595

Старое сообщение 30-10-2019 17:36
- За что?
KiQ
Житель форума

Дата регистрации: Aug 2010
Проживает: Смоленск, Москва
Сообщений: 2087

Рейтинг



Crystallize для каждого атласа заводить texture region по количеству изначальных текстур, которые будут клампить оффсет?

__________________
-Brain is dead-

Сообщить модератору | | IP: Записан
Сообщение: 185596

Старое сообщение 30-10-2019 17:41
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32190
Нанёс повреждений: 392 ед.

Рейтинг



Crystallize это всё было бы хорошо в теории, если бы не существовало пирамидальной фильтрации, анизотропной фильтрации и других страшных слов.

Добавлено 30-10-2019 в 20:53:

Цитата:
KiQ писал:
а фильтрацию делать в шейдере

пирмаидалку вручную делать? нафиг-нафиг. Сам бы попробовал штоли.

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 185597

Старое сообщение 30-10-2019 17:53
-
KiQ
Житель форума

Дата регистрации: Aug 2010
Проживает: Смоленск, Москва
Сообщений: 2087

Рейтинг



Ну так а это, сортировать видимые фейсы в текстурные списки?

__________________
-Brain is dead-

Сообщить модератору | | IP: Записан
Сообщение: 185598

Старое сообщение 30-10-2019 18:14
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32190
Нанёс повреждений: 392 ед.

Рейтинг



Первые эксперименты по оптимизации.
Чёт какой-то COF получился.

Добавлено 30-10-2019 в 22:01:

Цитата:
KiQ писал:
видимые фейсы в текстурные списки?

что такое текстурные списки?

Добавлено 30-10-2019 в 23:34:

Вообще я подозреваю, мне просто нужно что-то из функционала GL посвежее. Я попробовал так же через glDrawArrays рисовать, ему индексов вообще не нужно. Но это deprecated по идее. Да и не всегда оно быстрее.

Добавлено 30-10-2019 в 23:42:

Гм. Похоже всё еще хуже. glDrawArrays просто экономит время, которое я трачу на генерацию индексов на CPU. И при сравнении оказалось, что это весьма незначительная часть процесса. Настолько незначительная, что разница даже в дебаге минимальна. Ну она есть конечно, скажем в релизе там 1100 фпс, а в дебаге 1030 фпс. Но и только.

[ Вложение ]
c1a0d_0000.jpg

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 185600

Старое сообщение 30-10-2019 20:42
-
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 11:12. Новая тема    Ответить
Страницы (240): « Первая ... « 24 25 26 27 [28] 29 30 31 32 » ... Последняя »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > XashNT: блог разработчика
Часть I
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

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