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

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

Рейтинг



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

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

__________________
-Brain is dead-

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

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

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 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
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 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
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 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
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 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
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 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
Проживает: Город/село/деревня
Сообщений: 301

Рейтинг



>>то всё единая часть гигантского меша с координатами 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
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 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
Проживает: Город/село/деревня
Сообщений: 301

Рейтинг



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

Ссылка на лайтмапы. По-идее там плоскость и камень.
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
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 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
Проживает: Город/село/деревня
Сообщений: 301

Рейтинг



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

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

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

__________________

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

КСМ это форум украинских нацистов и в администрации нет адекватов.

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

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

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 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. Текущее время 16:18. Новая тема    Ответить
Страницы (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