HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > Конвертор уровней для сталкера
в разработке
Страницы (6): « 1 2 3 [4] 5 6 »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
KiQ
Житель форума

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

Рейтинг



Цитата:
Дядя Миша писал:
как они состыковывают цвет вертексов с референс-моделью

Через альфа-канал мб?

__________________
-Brain is dead-

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

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

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

Рейтинг



KiQ ты не понял сути вопроса.

Цвет вертексов - это отдельный массив в видеопамяти. Есть референсная моделька без цвета - это один 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: Записан
Сообщение: 198661

Старое сообщение 22-11-2020 11:47
-
ncuxonaT
каков стол, таков и стул

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

Рейтинг



А в ксаше как вертексное освещение сопоставляется с вбо модели?

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

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

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

Рейтинг



Это смотря в каком. Если в старом, то может посмотреть в исходниках паранои. Если в новом, то пока никак. Вот как раз размышляю на данную тему.

Вот у нас допустим модель. Референсная. Путём перемножения на матрицу, она ставится куда надо. И так далее. Всё хорошо. Но надо статическое освещение. Если таскать его в самой модели, непонятно как объединять два буффера для рендеринга. Может в D3D какие-то замуты были, но в GL навскидку я ничо не могу сказать. Ну да ладно, это не принцпиально.
Не очень-то и хотелось, как говориться. Моя идея заключается в том, чтобы использовать один и тот же тип вертекса как для повертексного, так и для лайтмапного освещения. Но с одной оговоркой. Для повертексного освещения мы делает в вершинном шейдере лукап по лайтмапным координатам и берём там 1 тексель. Этот тексель и будет нашим цветом вертекса. Ну а для лайтмапы - всё как обычно.
Т.е. вертекс не меняется, меняется только шейдер. Лайтмапа тоже остается прежняя. Там хватит места и для вертексных цветов и для обычных лайтмап.
В теории, мы можем даже получать повертексное освещение прямо из самой лайтмапы - потому что люксели на краях теоретически должны содержать именно тот цвет люкселя, который нам и нужен, собственно.
Это к слову, довольно распространённая практика, например, на мелких сурфейсах считается повертексное, а потом из суммы этих вертексов считается микро-лайтмапа на 1-4 люкселя.
Так что я полагаю метод удобный, хороший.
Единственное что меня тревожит - это потдержка VTF и скорость его работы. На современном железе, понятное дело, проблем не будет.
На старом, я точно помню, что сам VTF работал много где, а проблемы были с фетчингом во флоат-текстуру, поскольку не всё железо её тогда поддерживало корректно. Но мне ведь и не надо флоат-текстуры.
Вообщем остаётся только вопрос с производительностью.

Добавлено 22-11-2020 в 16:39:

Чтобы было понятнее насчёт типов вертекса. Вот, например в сталкере:

C++ Source Code:
1
struct  r1v_lmap	{
2
  Fvector3	P;
3
  u32			N;
4
  u32			T;
5
  u32			B;
6
  s16			tc0x,tc0y;
7
  s16			tc1x,tc1y;
8
};
9
struct  r1v_vert	{
10
  Fvector3	P;
11
  u32			N;
12
  u32			T;
13
  u32			B;
14
  u32			C;
15
  s16			tc0x,tc0y;
16
};

Один для лайтмапы, другой для повертексного. Первый 32 байта, второй 28 байт.
У меня получился навскидку вот такой тип вертекса
C++ Source Code:
1
// 28 bytes
2
struct ref_vertex_lmap
3
{
4
  vec3	point;
5
  color32	normal;		// normal + alpha or weight
6
  vec2	texcoord;
7
  hvec2	lightmap;
8
};

нормаль как четыре байта, три компоненты, пропущенные через BFN и один компонент можно использовать для альфы, террайны блендить.
Здесь всегда 28 байт. Базис можно рассчитать прямо в пиксельном шейдере, теперь такое модное поветрие. Помоему это гораздо удобнее, чем хранить его в вертексе. Ну то я потом тожы проверю, насколько это бьёт по производительности. Но по идее он даже лучше так должен получаться, фактически попиксельный базис. Учитывая, что сам TBN хранит компоненты в byte, там наверное тихий ужос в итоговом пространстве. Вообщем если вспомнить, насколько невнятый бамп был в сталкере, то и неудивительно, как бы.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 22-11-2020 13:39
-
ncuxonaT
каков стол, таков и стул

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

Рейтинг



Цитата:
Дядя Миша писал:
нормаль как четыре байта, три компоненты, пропущенные через BFN

BFN нормально интерполируются?
Цитата:
Дядя Миша писал:
Базис можно рассчитать прямо в пиксельном шейдере, теперь такое модное поветрие. Помоему это гораздо удобнее, чем хранить его в вертексе.

С хардварным скинингом артефактов не будет?

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

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

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

Рейтинг



Цитата:
ncuxonaT писал:
BFN нормально интерполируются?

Насколько я имею представление о работе интерполяторов, они сразу превращаются во флоаты, так что непринципиально.

Цитата:
ncuxonaT писал:
С хардварным скинингом артефактов не будет?

я пока не проверял еще. Ну хочешь попробуй первым, расскажешь как оно.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 22-11-2020 15:26
-
ncuxonaT
каков стол, таков и стул

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

Рейтинг



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

У меня нет скининга. Но я проверил перформанс, на фуллхд без овердрова теряется примерно 0,1 мс.

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

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

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

Рейтинг



ncuxonaT ага, ок

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 22-11-2020 16:35
-
 Дядя Миша
racing for fish

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

Рейтинг



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

Компилятор имеет режимы работы разные, драфт и продакшен.
Драфт - для предварительной оценки в этом режиме многие вещи просто не делаются. В основном тяжелые.
Вот какой момент выяснил - есть галка Implicit Lighting. Она ставится для ландшафтов. Чёрт его знает, почему она названа Implicit, когда это Explicit - т.е. наоборот явное освещение. Для этого режима не генерируются координаты лайтмапы, а берутся прямо текстурные координаты. И назначается явное имя лайтмапы пользователем. То есть там кто-то в английском не силён и всё перепутал из-за чего я был введён в заблуждение и долгое время не мог понять что это вообще такое. А оно оказывается вон что.
Далее, сцена в сталкере состоит из четырёх слоёв. Ну я так условно её называю, наверное на уровне самого движка такого разделения и нету.
Это слои детализации. Первый слой - это ландшафт на открытых уровнях.
У него всегда это неявное освещение в отдельную лайтмапу. И он всегда как одна лайтмапгруппа. И для него так же применяется детальная четырёх слойная карта с четырьмя детальными текстурами. Причём эти четыре текстуры менять вообще нельзя, он намертво что ли прописаны где-то. Ну неважно.
Второй слой детализации - собственно основная архитектура. Домики там всякие, арки, тоннели, некоторые машинки. Это всё единая часть гигантского меша с координатами 0 0 0. Наверное их как-то разбивают по группам, но я заморачиваюсь, экспорчю в один гигантский static.smd
На эту архитектуру тоже накладывается лайтмапа, которая хранится в lmap1 - lmap<тритыщискуем>

Третий слой детализации - MU-модели. MU как подсказал тов. Camblu (ex. Nim-Bitum) это сокращение от Multiple Usage. Вот здесь я пока не разобрался. По дефолту на них применяется повертексное освещение. Как оно хранится и как рисуется я не знаю. Да мне это и не особенно интересно. Но лайтмапы на них нету. В эту категорию относятся все модели, которые встречаются на карте более одного раза. Иногда модель может быть одна на карте, но она же будет на других картах. В первую очередь это деревья, автобусы, военная техника, запчасти от автомобилей. Ну вообщем-то всё что угодно такого плана. Здесь для меня самый любопытный момент - может ли сталкер накладывать на них лайтмапу. Теоретически наверное может. Но в компиляторе я такой код не видел. Может просто плохо искал. А может надо принудительно включить такую модель в static mesh, а по другому никак. Не знаю. Но если вы знаете - обязательно напишите.

И наконец четвертый слой детализации - это всякая несолидная мелочь, которой еще больше. Травка, мелкие камушки и прочая пердь.
Для этих отдельный файл используется и хранятся они по своему как-то.
А генерятся по специальной карте ландшафта вроде бы. Единственное что мне непонятно - на кой черт хранить их позиции, если их легко рассчитать при загрузке карты, это очень быстро. Ну как бы ладно. Зачем-то сделали вот так.

Добавлено 25-11-2020 в 15:47:

Да, так я вот что сказать-то хотел. Без второго и третьего слоя детализации уровни смотрятся очень убого, как будто и взаправду там голдсорс какой.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 25-11-2020 12:47
-
Camblu_Buildovich
Житель форума

Дата регистрации: Jan 2011
Проживает: Город/село/деревня
Сообщений: 313

Рейтинг



>>то всё единая часть гигантского меша с координатами 0 0 0
Не знаю, на каком шаге оно становится гигантским мешем, ибо в исходниках уровней оно разбито на разные меши. Вот, как на кордоне из билда 1935 - 1 меш фабрика, 1 меш - домики в деревне новичков. Кроме того, части этого меша могуть сразу быть вшитыми в террейн.

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

Но один гигантский меш из них по-идее получиться не может, если предварительно не сгруппировать их в один меш.


Под координатами, судя по всему имелся ввиду т.н pivot (точка, где рисуется гизмо). То есть "центр модели" всегда в нулевых координатах, а сам меш может быть вообще далеко от центра. Это всё от того, что в те годы никто не умел в т.н. модульные меши, и весь уровень делали сразу в 3д редакторе. И домеки, и тоннели. И потом можно быстро это всё вставить в сдк, не подгоняя ничего. и заселять локацию, расставлять физ объекты и прочее.

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

>>MU как подсказал тов. Camblu (ex. Nim-Bitum)
Это я, да.

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

Для всех MU мешей генерятся thumbnails, которые сшиваются затем в т.н. лод-файл. Это картинка, которая затем режется, и накладывается на биллборды. Емнип в сталкере всего 2 уровня лода. Обычный меш, упрощенный, и биллборд.

>>Иногда модель может быть одна на карте, но она же будет на других картах.
Один уровень - один лод-файл.

>>может надо принудительно включить такую модель в static mesh, а по другому никак. Не знаю. Но если вы знаете - обязательно напишите.
Сегодня попробую, отпишусь.

И наконец четвертый слой детализации - это всякая несолидная мелочь... мелкие камушки и прочая пердь.
Как минимум, в билдах у нее была коллизия. В 1511 билде можно покататься по агро на машинке, и детейлы коллайдят с шинами, из-за чего возникает чувство родных дорог, хотя сама дорога - гладкая

__________________

Цитата:
MR wild Alex писал:Многоувожаймый XaeroX , очень интересно почиму вы со своими друзьями не можите создать движок для HL на основе всех предыдущих проэктов (Xash,SoHL,HLFX) это ведь для
вашей команды не так сложно.

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

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

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

Рейтинг



Цитата:
Camblu_Buildovich писала:
в исходниках уровней оно разбито на разные меши

их можно реконструировать обратно, но это не слишком быстро. В единый меш сшивается геометрия, не имеющая дубликатов.

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

группировка материалам - это лишь один из этапов и самый простой.

Цитата:
Camblu_Buildovich писала:
Емнип в сталкере всего 2 уровня лода

Это в старых билдах. В релизных появился Progessive Mesh.

Цитата:
Camblu_Buildovich писала:
Сегодня попробую, отпишусь.

попробуй да, любопытно.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 11-12-2020 09:13
-
Camblu_Buildovich
Житель форума

Дата регистрации: Jan 2011
Проживает: Город/село/деревня
Сообщений: 313

Рейтинг



Цитата:
Дядя Миша писал:
попробуй да, любопытно.

Ссылка на лайтмапы. По-идее там плоскость и камень.
https://mega.nz/file/q9JDHSaJ#X5GY8...yT4QZ7-akbh5Vfw

Добавлено 11-12-2020 в 12:22:

Судя по всему, MU модели в сталкере определяются по compile shader в настройках.
Если поставить не def_vertex - в статистике уровня будет вот так
Map size X x Z: [13 x 19]
Max static vertex per m^2: 18
Total static vertices: 394
Max mu vertex per m^2: 0
Total mu vertices: 0


Судя по всему я забыл, как их подсчитать.

Добавлено 11-12-2020 в 12:53:

А нет, всё верно.
Итого, если выставлено MU - то лайтмапа не запекается. Запекается только лод.

__________________

Цитата:
MR wild Alex писал:Многоувожаймый XaeroX , очень интересно почиму вы со своими друзьями не можите создать движок для HL на основе всех предыдущих проэктов (Xash,SoHL,HLFX) это ведь для
вашей команды не так сложно.

Отредактировано Camblu_Buildovich 11-12-2020 в 10:31

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

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

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

Рейтинг



Camblu_Buildovich если натыкать йолок да побольше. И всем им назначить шейдер с лайтмапой. Они так и пойдут в статическую часть?
И насколько хорошо при этом будут выглядеть?

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 11-12-2020 13:09
-
Camblu_Buildovich
Житель форума

Дата регистрации: Jan 2011
Проживает: Город/село/деревня
Сообщений: 313

Рейтинг



Цитата:
Дядя Миша писал:
Camblu_Buildovich если натыкать йолок да побольше. И всем им назначить шейдер с лайтмапой. Они так и пойдут в статическую часть?
И насколько хорошо при этом будут выглядеть?

Не в шейдоре дело. Если у дерева есть флаг MU (я давно к сдк не прикасался толком, поэтому не сразу нашел этот флаг, и решил, что мне приглючилось) - то лайтмапа не генерируется. Только лод уровня.

Я просто поторопился с выводами, и не смог потом отредактировать пост.

__________________

Цитата:
MR wild Alex писал:Многоувожаймый XaeroX , очень интересно почиму вы со своими друзьями не можите создать движок для HL на основе всех предыдущих проэктов (Xash,SoHL,HLFX) это ведь для
вашей команды не так сложно.

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

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

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

Рейтинг



Цитата:
Camblu_Buildovich писала:
Если у дерева есть флаг MU

Ну хорошо, пусть флаг. Ты засунь деревья на карту как статики. И посмотри насколько криво на них легла лайтмапа. Просто любопытно.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 11-12-2020 17:39
-
Тема: (Опционально)
Ваш ответ:



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


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

Временная зона GMT. Текущее время 12:39. Новая тема    Ответить
Страницы (6): « 1 2 3 [4] 5 6 »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > Конвертор уровней для сталкера
в разработке
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

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

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

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

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