HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > XashNT: блог разработчика
Часть I
Страницы (255): « Первая ... « 88 89 90 91 [92] 93 94 95 96 » ... Последняя »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
 XaeroX
Crystice Softworks

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

Рейтинг



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


Цитата:
Дядя Миша писал:
то я вам обещаю и торжественно клянусь, никогда не забивать на проблемы реальных пользователей

...после того как заслали донат!

__________________

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

Старое сообщение 04-05-2020 15:50
-
Cybermax
Житель форума

Дата регистрации: May 2006
Проживает: ㅤ
Сообщений: 5128

Рейтинг



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

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

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

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

Рейтинг



Cybermax я этими вопросами не занимался, но можно иметь несколько сетевых моделей. Там как, если RPG игроков дохрена, но синхронизационные пакеты могут идти несколько раз в минуту. И классическая шутерная модель - игроков 32 штуки, но и пакеты идут 30-100 раз в секунду.

Добавлено 04-05-2020 в 20:16:

Кстати вот еще важный момент - разработчикам весьма важно иметь возможность допилить то, чего изначально не было. Скажем тот же VR подключить. И дело тут вовсе не в открытости\закрытости сорцев.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 04-05-2020 17:16
-
 Дядя Миша
racing for fish

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

Рейтинг



Ну чтож, по предварительным результатам опроса, да и по общим соображениями, я вижу, что в первую очередь надо направить усилия на внедрение динамической системы окклюзии, т.е. избавится от предрасчётов PVS, которые могут занимать сколько угодно времени. Вероятно в дальнейшем я избавлюсь и от BSP, но пока что это некритично, сборка карты занимает несколько секунд, ну максимум - пару минут на каком-нибудь сепульчере. Но динамический окклюдинг нужен обязательно, виз слишком часто не справляется.

Добавлено 05-05-2020 в 14:09:

Цитата:
XaeroX писал:
...после того как заслали донат!

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

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 05-05-2020 11:09
-
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 13504
Возраст: 33

Рейтинг



Дядя Миша
А какие методы ты знаешь эффективного отсечения невидимой игроку геометрии в реальном времени? Например вот знаю фрустум, и LODы (хотя это не совсем отсечение, но в каком то смысле), но не более.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!

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

Старое сообщение 05-05-2020 12:52
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



FiEctro я ж написал - софтварный рендеринг в Z-буффер. Окклюедеры рендерятся на CPU, чтобы не было лага с получением данных.
Рендер этот довольно простой, там же не надо накладывать текстуры, только растеризация небольшого числа прямоугольников, плюс сам буффер малого разрешения. Ну и желательно его векторизовать, но это я по рассказам, не по опыту.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 05-05-2020 14:09
-
SNMetamorph
Житель форума

Дата регистрации: Jun 2018
Проживает: Ижевск
Сообщений: 629

Рейтинг



Мне что-то всё таки кажется, что ни XashNT, ни волатила никому не будут интересны собственно как инструмент для разработки игр, по крайней мере в рамках HLFX. Хотя и сам очень надеюсь что так не случится. Но, всё-таки людям проще влиться туда, где уже есть некоторый набор ресурсов, документации/видеоуроков/статей, примеров игр откуда даже что-то можно стянуть к себе в проект.

__________________
Мой сайт
Xash3D Modding Discord

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

Старое сообщение 06-05-2020 04:11
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



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

Сохранил порталы в карту, вот так они выглядят. Да вы наверное и без меня знаете.

[ Вложение ]
c1a0d_q3_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: Записан
Сообщение: 193341

Старое сообщение 06-05-2020 09:22
-
 Дядя Миша
racing for fish

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

Рейтинг



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

[ Вложение ]
c1a0d_q3_0001.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: Записан
Сообщение: 193342

Старое сообщение 06-05-2020 09:28
-
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 13504
Возраст: 33

Рейтинг



В сорсе бы такие вещи делали детайлами. Кстати инструмент визуализации порталов классная штука.
Не знаю, может глупость сморожу, но что если отсекать ненужное не по геометрии, а по грубой Octree копии модели?
https://www.mathworks.com/matlabcentral/mlc-downloads/downloads/submissions/40732/versions/3/screenshot.jpg

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!

Отредактировано FiEctro 06-05-2020 в 10:04

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

Старое сообщение 06-05-2020 10:01
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



Создал обратные порталы, так наверное более наглядно.

Цитата:
FiEctro писал:
а по грубой Octree копии модели?

Можно просто квантизовать всё пространство на AABB и рисовать сегментами. Но есть проблема - у нас же эти брашы уже и так разбиты на отдельные полигончики, ниже некуда. Для гигантских моделей, типа ЧАЭС это вполне рабочий метод, но сами модели придётся посечь на такие же сегменты. Что в свою очередь может негативно сказаться на бамп-маппинге или наложении лайтмапы.

Ладно. Для начала я хочу просто попробовать выполнять BasePortalVis в реалтайме и для отдельно взятого кластера. Это очень быстро, а вот будет ли достаточно эффективно...

[ Вложение ]
c1a0d_q3_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: Записан
Сообщение: 193351

Старое сообщение 06-05-2020 10:23
-
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 13504
Возраст: 33

Рейтинг



Цитата:
Дядя Миша писал:
но сами модели придётся посечь на такие же сегменты. Что в свою очередь может негативно сказаться на бамп-маппинге или наложении лайтмапы.


А разве при разбиении нельзя сохранить нормали вертексов в исходном состоянии?

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!

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

Старое сообщение 06-05-2020 10:51
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



Цитата:
FiEctro писал:
А разве при разбиении нельзя сохранить нормали вертексов в исходном состоянии?

не поможет. Интерполяция осуществляется внутри треугольника, а не между ними.

Опробовал я SimpleFlood в рантайме. Работает, даже фпс садит гораздо меньше, чем ожидалось бы. Но тут в действие вступает сразу несколько факторов. Если бы эта видимость бралась ну скажем только для рендерера, для камеры - то это одно. Виз он же для движка практически бесплатный, поэтому его юзают все, кому не лень, монстры постоянно проверяют, не появился ли игрок в зоне видимости, код AI дополнительно проверяет наличие игрока, на тему, надо ли играть секвенции или меня никто не видит, серверный кадр строит толстый PVS чтобы отсечь невидимые клиенту энтити. Т.е. за кадр эта штука может вызываться несколько десятков раз, а там рекурсия (пускай и весьма простая) и цикл на numportals * 2. Т.е. всё это просадит фпс куда быстрее чем даст профит от отсечения. Плюс предрасчёты при загрузке карты - сами по себе занимают какое-то время. Ну на c1a0d это полсекунды. Но вообще - неограниченно. BasePortalVis далеко не всегда управляется быстро. Иногда и до минуты маслает в мультитреде.
Вообще конечно использование именно этого кода не вполне корректно, если мы хотим, например посчитать видимость для фрустума камеры. Но тут вылезает другая тонкость - кластеры всё же достаточно большие, т.е. перерасчёт видимости происходит, когда игрок перемещается в другой кластер. Очевидно, если это делать для фрустума, то перерасчёты будут для малейшего движения мышкой. Однако есть одна категория объектов, у которых фрустум не меняется - это лайты. Собсно, в даркплейсе после ряда экспериментов именно для них и оставили портал-флоу.

Добавлено 06-05-2020 в 19:00:

Решил я поизучать как в д3 сделано. А там надо сказать такое обманчивое впечатление, потому что тричетверти компилятора - это по сути паста из ку3. А оставшийся код - это дамп в текстовые форматы, ну я никогда там особо не ковырялся, полагая что оно не представляет интереса. А вот как раз-таки и зря. В дуум3 уже никакие видимые сурфейсы к лифам не цепляются, там идёт группировка по ариям, т.е. большим блокам. И ариа-порталы могут работать в двух режимах. Классический - на двери и визпортал, ограничивающий видимость. И дерево для рендеринга уже не используется, самих арий достаточно немного (лимит на 1024 штуки), они могут быть какого угодно размера - ну скажем на всю карту. Второй любопытный момент связан с тем, что геометрия может разрезаться по размеру этих самых арий. И тут, как я уже говорил - начинаются швы на бампе. Так вот там какая-то хитрая система добавления т-джунков, которая это предотвращает. Впрочем, если маппер не поставил ни одного ареапортала, сами понимаете, это будет довольно тормозно.
Возможно имеет смысл поддерживать оба варианта - классический с визом и "модерновый". Благо что для этого не требуется каких-то фундаментальных изменений, достаточно лишь порезать геометрию.

Добавлено 06-05-2020 в 21:37:

Ну вот подразобрался. Объясню всё подробно, но сначала небольшой экскурс на тему, почему жы в наше время так сильно тормозят старые кушные форматы. Кто-то полагает что дело в БСП, кто-то думает что они просто устарели. Если говорить кратко, то в старых форматах нарушился баланс оптимизации. Поясню. Есть несколько типов оптимизации.
1. Не делать вообще ничего - бывают случаи, когда весь код можно полностью выкинуть без ущерба для функционала. Чаще всего - когда нагородили лишнева. Или же код писался вчерную для теста.

2. Посчитать всё заранее - компиляция. Баланс между процессорным временем и памятью.

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

4. запуск тяжёлого кода предваряется лёгкой для выполнения проверкой.
Вот здесь как раз наш случай. По факту в старых форматах мы столкнулись с совершенно идиотской ситуацией, когда проверка на видимость стала дольше отрисовки. Почему такое произошло?

Очевидный ответ - форматы разрабатывались с учётом софтварного рендеринга, т.е. с отрисовкой на процессоре. Отправка данных на видеокарту капитально перебалансировала всю систему. Но к счастью шины у видеокарт тогда были узкие, прокачка данных была достаточно дорогой, поэтому для intermediate-режима мы наоборот получили прирост производительности. Собсно проблемы начались, когда нам захотелось иметь миллионы полигонов в кадре. Дерево, как я уже говорил очень подробное. Каждый полигон лежит на ноде. А если не помещается - будет разрезан и всё равно положен. При возможности делать очень большие уровни подобный подход сам по себе превратился в тормоз.
1. рекурсия по слишком большому дереве тормознее линейного перебора
2. отдельное отсечение каждого полигона фрустумом если не дороже, то зачастую сопоставимо с их отрисовкой (особенно если их очень много).
3. всё это крайне херово оптимизируется, из-за особенностей текстурирования брашей. Проблематично сделать три-стрипы, к примеру.
Возможность засунуть всю геометрию в единый VBO проблемы не решило - ну потому что мы по прежнему проверяем каждый полигончик отдельно на попадание во фрустум, а потом шлём его индексы на видеокарты.
В Ку3 лифы сделали больше размером, видимо как раз согласуясь с возможностями тогдашнего железа. Но это же зависит даже не просто от возможности добавлять детальные полигоны в лифы. Смысл в том, что рисовать даже по лифам - затратнее чем одним вызовом. Но вот при текущей организации не получается ни то ни другое. Потому что как ни крути, PVS всё же справляется со своими задачами неплохо, а отрисовке группами мешает тот факт, что сами брашы не предназначены для эффективной отрисовки. Я бы конечно мог просто их выбросить нахрен и вообще, но.. мы же хотим кубать, правильно?
И для меня уже пару лет это было. ну не то чтобы неразрешимым противоречием, просто я не мог определиться, как лутьше поступить. То ли выкинуть BSP совсем, порезать всё на квадраты и выполнить иерархическую окклюзию. То ли октри заюзать. Вообщем размышлял я до сегодняшнего дня, пока совершенно случайно не углубился в изучение дуум-тришной организации ареа-порталов (а там же нет виза, как вы помните). Конечно я весь этот код видел и раньше, но в том-то и дело, я просто был изначально уверен, что вся эта замута нужна в основном для построения и оптимизации теневых объемов (что вообщем-то правда - там действительно есть этот код). Но вот ту основную идею, которую я там сегодня разглядел...

Продолжение следует

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 06-05-2020 18:37
-
 XaeroX
Crystice Softworks

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

Рейтинг



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


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

...расставлять порталы между ариями будет маппер. Та-дам!

__________________

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

Старое сообщение 06-05-2020 18:52
-
 Дядя Миша
racing for fish

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

Рейтинг



Цитата:
XaeroX писал:
...расставлять порталы между ариями будет маппер. Та-дам!

Хочешь прикол? Мапперы эти порталы уже 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: Записан
Сообщение: 193370

Старое сообщение 06-05-2020 19:37
-
Тема закрыта Дядя Миша 04-08-2024 в 10:49
Временная зона GMT. Текущее время 22:50. Новая тема    Ответить
Страницы (255): « Первая ... « 88 89 90 91 [92] 93 94 95 96 » ... Последняя »   Предыдущая тема   Следующая тема
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