Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: MetroEX - универсальный инструмент для работы с ресурсами игр серии Метро
GAMEINATOR forums > Общие разделы > Создание и модификация игр. Геймдев.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
Skat
Цитата(iOrange @ 17.03.2019, 23:51) *
Во всех версиях включая последнюю - зум работает

А у меня нет.
abramcumner
У меня тоже зум не работает.
fox6666
Цитата(Skat @ 17.03.2019, 22:53) *
iOrange, В крайней версии исчезло масштабирование модели, или это всегда так было, не помню уже.

У меня тоже самое. В v0.28с работает. v0.29b - нет. Вместо масштабирования - скролл списка файлов. Win7 х64
Может библиотеки какой-то не хватает? unsure.gif
atanda
v0.29b, зум прекрасно работает.
win 10
NiutoN
А мою "игру" кто то смотрел? Как работает?

Подробности можете узнать здесь:
https://www.gameru.net/forum/index.php?showtopic=71945

П.С. Всех с прошедшим Днем Патрика)))))
OlegatoR
Цитата(NiutoN @ 18.03.2019, 12:22) *
А мою "игру" кто то смотрел? Как работает?
https://drive.google.com/file/d/1hATqUZYKNu...v2f2Hav_oF/view

Подробности в конце стр.20 этого форума...

П.С. Всех с прошедшим Днем Патрика)))))

Выделил в отдельную тему, тут не оффтопим: https://www.gameru.net/forum/index.php?showtopic=71945
mmyr
В v0.29b: если экспортировать папку с конвертацией, то экспортируются, в указанную мною папку, только модели, без текстур unsure.gif . А вот если экспортировать по отдельности каждую модель - всё отлично - и модели, и текстуры экспортируются. laugh.gif
iOrange
Цитата(Skat @ 18.03.2019, 10:38) *
А у меня нет.

Цитата(abramcumner @ 18.03.2019, 11:27) *
У меня тоже зум не работает.

Цитата(fox6666 @ 18.03.2019, 11:30) *
У меня тоже самое. В v0.28с работает. v0.29b - нет. Вместо масштабирования - скролл списка файлов. Win7 х64

Да что ж это такое... Видать WinForms шалит. Обещаю починить когда вернусь.

Цитата(mmyr @ 18.03.2019, 14:53) *
В v0.29b: если экспортировать папку с конвертацией

Так было во всех версиях, я уже ранее писал что планирую сделать опцию.
Изначально я так сделал ибо подумал что люди будут распаковывать весь архив целиком, и не хотел дублировать текстуры.
WolfHeart
Цитата(iOrange @ 18.03.2019, 16:26) *
Изначально я так сделал ибо подумал что люди будут распаковывать весь архив целиком, и не хотел дублировать текстуры.

Так если конвертировать весь архив, content, то все, вроде как получается, все находится по своим папкам, модели в meshes, текстуры в textures. Казалось бы все замечательно, можно так и оставить, но не тут то было... При загрузки модели в редактор, 3D Max, ищет текстуры в папке с моделью, а не в папке textures как это должно быть.
iOrange, Я это к чему... Думаю стоит предусмотреть, что-бы при конвертации одиночной модели, текстуры конвертировались в ту же папку что и модель, как это есть сейчас, а вот при пакетном конвертировании, думаю стоит текстуры конвертить как и положенно в папку textures, с сохранением иерархии и путей к ним прописаным в моделях.
Цитата(iOrange @ 18.03.2019, 16:26) *
Да что ж это такое... Видать WinForms шалит. Обещаю починить когда вернусь.

Не знаю, в чем причина, но у меня на Windows 10(x64) все прекрасно работает и маштабирование и прокрутка, как положенно каждая в своем окне.
На предыдущей странице выкладывал видео это подтверждаущее, продублирую его и на эту: https://yadi.sk/i/poFResuVR0499g
abramcumner
Цитата(WolfHeart @ 18.03.2019, 18:57) *
Win 10(x64)

У меня не работает на вин7 х64.
WolfHeart
Цитата(abramcumner @ 18.03.2019, 18:59) *
У меня не работает на вин7 х64.

pardon.gif
А у buffy, на вин 10 то-же все в порядке:
Цитата(buffy @ 18.03.2019, 13:03) *
v0.29b, зум прекрасно работает.
win 10

Напрашивается вывод... shuffle.gif
Шутка конечно. biggrin1.gif
jamakasi
Цитата(WolfHeart @ 18.03.2019, 18:57) *
iOrange, Я это к чему... Думаю стоит предусмотреть, что-бы при конвертации одиночной модели, текстуры конвертировались в ту же папку что и модель, как это есть сейчас, а вот при пакетном конвертировании, думаю стоит текстуры конвертить как и положенно в папку textures, с сохранением иерархии и путей к ним прописаным в моделях.

а еще лучше галочку добавить отдельно или рядом складывать.
iOrange
Цитата(jamakasi @ 18.03.2019, 19:03) *
а еще лучше галочку добавить отдельно или рядом складывать.

Цитата(iOrange @ 18.03.2019, 15:26) *
я уже ранее писал что планирую сделать опцию.

rolleyes.gif
mopsyatina
Цитата(iOrange @ 18.03.2019, 06:43) *
Мне завтра утром вылетать, поэтому мне бы выспаться...
Но вместо этого я выпил прилично Гиннеса (с Днем Патрика всех, кстати! drunk.gif ) и решил ... пошалить.

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

Учитывая что я ее (игру тобишь), очень люблю, перспектива остаться на ночь без взаимности меня не слишком радовала, и присмотрев архив patch_00, в котором всего 3 непонятных файла, я решил заменить его.
Забекапил оригинальный архив, заменил на свой .... и игра таки поддалась wink_old.gif

Фотография (именно фото, а не скриншот, дабы не говорили что фотошоп) результата:

Дисклеймер: не ищите в моих наскальных рисунках особого смысла и/или подтекста - это все на что хватило пьяного программиста посреди ночи




Для страждущих установить себе данный "мод" (+ бонусом та самая текстура с моими художествами)
инструкция

Качаем тут - http://s.gameru.net/metro/to_pack.zip
Файлы оригинальные patch_00.vfs0 и patch_00.vfx копируем в безопасное место
Берем их подмену из архива и кладем в папку с игрой где лежали оригинальные файлы
Запускаем, любуемся cool.gif
Удаляем этот шлак, возращаем на место оригинальные файлы


Через недельку вернусь - продолжим crazy.gif


ухх заживем) Даешь стулкир на движке метрохи biggrin.gif
JackieR
Цитата(iOrange @ 18.03.2019, 06:43) *
Мне завтра утром вылетать, поэтому мне бы выспаться...
Но вместо этого я выпил прилично Гиннеса (с Днем Патрика всех, кстати! drunk.gif ) и решил ... пошалить.

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

Учитывая что я ее (игру тобишь), очень люблю, перспектива остаться на ночь без взаимности меня не слишком радовала, и присмотрев архив patch_00, в котором всего 3 непонятных файла, я решил заменить его.
Забекапил оригинальный архив, заменил на свой .... и игра таки поддалась wink_old.gif

Фотография (именно фото, а не скриншот, дабы не говорили что фотошоп) результата:

Дисклеймер: не ищите в моих наскальных рисунках особого смысла и/или подтекста - это все на что хватило пьяного программиста посреди ночи




Для страждущих установить себе данный "мод" (+ бонусом та самая текстура с моими художествами)
инструкция

Качаем тут - http://s.gameru.net/metro/to_pack.zip
Файлы оригинальные patch_00.vfs0 и patch_00.vfx копируем в безопасное место
Берем их подмену из архива и кладем в папку с игрой где лежали оригинальные файлы
Запускаем, любуемся cool.gif
Удаляем этот шлак, возращаем на место оригинальные файлы


Через недельку вернусь - продолжим crazy.gif


Вот бы возможность менять помимо текстурок ещё и модельки... А то маркировка вагонов в Исходе, мягко говоря, стрёмная. dry.gif
Exodus:

Моё:
ed_rez
iOrange,
не намечается адаптация твоей утилиты под х32 систему?
iOrange
Цитата(ed_rez @ 19.03.2019, 21:50) *
не намечается адаптация твоей утилиты под х32 систему?

Нет

Теперь я знаю о Метро немного больше wink.gif



mark2580
Цитата(iOrange @ 21.03.2019, 02:10) *
Теперь я знаю о Метро немного больше wink.gif

Привет. Спасибо за прогу. У меня вопрос: планируется ли добавление хоть какого-то поиска, без него просто нереально искать ресурсы т.к. прога бывает экспортирует только 512 версию текстуры и вообще игнорирует z_crazy.gif _bump текстуру где находятся всякие маски отражений итп.
И кстати пока гуглил обнаружил что прога для Quake нового тож твоя, планируется ли прогресс в плане доставания моделей оттуда ? Народ до сих пор мучается с нинзя рипером.
Hunter01
Цитата(mark2580 @ 21.03.2019, 11:21) *
...и вообще игнорирует z_crazy.gif _bump текстуру где находятся всякие маски отражений итп.

по вопросу с _bump текстурами:
Цитата(iOrange @ 17.03.2019, 20:54) *
Я уже писал ранее - затык в том, что мне надо разобрать материалы, а сейчас не до них (хоть работы и ведутся).
Все будет, просто не так быстро.
mark2580
Цитата(Hunter01 @ 21.03.2019, 13:50) *
Цитата(mark2580 @ 21.03.2019, 11:21) *
...и вообще игнорирует z_crazy.gif _bump текстуру где находятся всякие маски отражений итп.

по вопросу с _bump текстурами:
Цитата(iOrange @ 17.03.2019, 20:54) *
Я уже писал ранее - затык в том, что мне надо разобрать материалы, а сейчас не до них (хоть работы и ведутся).
Все будет, просто не так быстро.


Ок. Понятно cool.gif
ximik163
.появился вопрос по поводу текстур с префиксом bump. в зелёном канале хранится глосс мапа, в синем-спекуляр, но какие карты хранятся в красном и альфе? иногда красный канал пустой, иногда там мапа, похожая на глосс, но с другой яркостью
Ant3ks
По-моему, Displacement map
ximik163
Цитата(Ant3ks @ 21.03.2019, 20:52) *
По-моему, Displacement map

да точно, это альфа.
SkyLoader
Цитата(ximik163 @ 21.03.2019, 19:46) *
.появился вопрос по поводу текстур с префиксом bump. в зелёном канале хранится глосс мапа, в синем-спекуляр

Я тоже думал, что так расположены карты в текстуре, но похоже, что не во всех материалах так сделано. С некоторыми моделями использование карт по данным каналам выглядит неестественно, сильно отражает.
Shoкer
Удалось подлезть в игровую консоль и логи smile.gif , достал немного интересного:

1) Версия игры и номер билда
Build GUID = 2019-02-22_14-55-21_491623_pc_epic_gm_to_patch0
Build GUID short = 2019-02-22_14-55-21_491623
uCore :: 4A platform build 5132, Feb 22 2019, 14:56:18

В 2010 году у прошлых игр номер билда был 1830: https://www.gameru.net/forum/index.php?show...p;#entry1652958

2) Полный лог игры (в metroexodus.log лишь его огрызок) - https://pastebin.com/HnWEkXec

3) Список консольных команд, доступных в релизном билде: https://pastebin.com/3wnMm0ZE

Чего то сверхинтересного пока там не нашёл, многие команды визуально пока-что ни на что не влияют, но как минимум:
- Можно тонко настроить графику.
- В консоли есть команды map \ weather, рабочие и используются для загрузки уровней, смены погоды.
- Пока что самое интересное, если в user.ltx прописать photo_mode_type 0, то у фоторежима в игре пропадёт ограничение на дальность и появится возможность летать сквозь все препятствия.

Всего режимов 4 (0 - 3)
0 и 1 - не понял чем отличаются.
2 - похож на 0, но камера возвращается к игроку если далеко улететь
3 - стандартный режим

user.ltx лежит в C:\Users\<пользователь>\Saved Games\metro exodus, игра его постоянно перезаписывает поэтому возможно имеет смысл поставить режим "Только чтение".

4) Также пробую узнать какая информация хранится в .bin-файлах, есть хорошие подвижки но нужно время.

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

Для затравки, если ещё не выкладывали, то видимо вот в каком виде хранится информация о текстурах \ материалах.

Есть флаг treat_as_metal - возможно он отвечает как раз за отражабельность.

Код
type = u32
texture_type = u8
source_name = stringz
surf_xform = vec4f
format = u32
width = u32
height = u32
animated = bool
draft = bool
override_avg_color = bool
avg_color = color, vec4f
shader_name = choose
shader_name = stringz
gamemtl_name = choose
gamemtl_name = stringz
priority = u32
streamable = bool
bump_height = fp32
displ_type = u8
displ_height = fp32
parallax_height_mul = fp32
mipmapped = bool
reflectivity = fp32
treat_as_metal = bool
det_name = choose_array, str_shared
det_name = stringz
det_scale_u = fp32
det_scale_v = fp32
det_intensity = fp32
aux_params = color, vec4f
aux_params_1 = color, vec4f
bump_name = choose
bump_name = stringz
aux0_name = choose
aux0_name = stringz
aux1_name = choose
aux1_name = stringz
aux2_name = choose
aux2_name = stringz
aux3_name = choose
aux3_name = stringz
aux4_name = choose
aux4_name = stringz
aux5_name = choose
aux5_name = stringz
aux6_name = choose
aux6_name = stringz
aux7_name = choose
aux7_name = stringz


Ну и немного фотографий из фоторежима: https://images.gameru.net/gallery/album/11447/8116014 (на одной из них видно тело ГГ).

- - - - - -
Возможно стоит добавить в шапку.
Hellroon
Цитата(Shoкer @ 22.03.2019, 04:16) *
- Пока что самое интересное, если в user.ltx прописать photo_mode_type 0, то у фоторежима в игре пропадёт ограничение на дальность и появится возможность летать сквозь все препятствия.

Всего режимов 4 (0 - 3)
0 и 1 - не понял чем отличаются.
2 - похож на 0, но камера возвращается к игроку если далеко улететь
3 - стандартный режим

user.ltx лежит в C:\Users\<пользователь>\Saved Games\metro exodus, игра его постоянно перезаписывает поэтому возможно имеет смысл поставить режим "Только чтение".


о, пасеба. меня этот вопрос как раз интересовал.
ximik163
Цитата(SkyLoader @ 22.03.2019, 02:07) *
Цитата(ximik163 @ 21.03.2019, 19:46) *
.появился вопрос по поводу текстур с префиксом bump. в зелёном канале хранится глосс мапа, в синем-спекуляр

Я тоже думал, что так расположены карты в текстуре, но похоже, что не во всех материалах так сделано. С некоторыми моделями использование карт по данным каналам выглядит неестественно, сильно отражает.


проясняю одну особенность pbr(если ты не знаком). у канала спекуляр есть универсальное значение ~56. с такой силой отражают большинство материалов (диэлектрики 40-75), чуть выше драгоценные камни, а металлы начинаются со 180. так что если канал спекуляра в текстуре слишком яркий или тёмный, пробуй конвертировать или в линейное или srgb пространство или просто выставляй на глаз значение для диэлектриков. если проблема с roughness\glossiness, то пробуй просто инвертировать и, по необходимости, корректировать гамму (значения из линейного в srgb и наоборот: 0.45-2.2, 1-это, ясное дело, обычное значение). у allegorithmic есть довольно подробный гайд по pbr
П.С. не подскажешь путь до этой модели со скрина? сам посмотрю, что там с картами
Modera
Вопрос к знатокам 3D графики. В некоторых моделях исхода вместо тангентов и бинормалей записаны значения 0x000000 и 0xFFFFFF. Как работает нормалмаппинг в таком случае? Тангенты и бинормали где-то во время загрузки считаются?
Xottab_DUTY
Shoкer, как ты консоль-то включил?
autistic
Цитата(Modera @ 23.03.2019, 01:49) *
В некоторых моделях исхода вместо тангентов и бинормалей записаны значения 0x000000 и 0xFFFFFF. Как работает нормалмаппинг в таком случае? Тангенты и бинормали где-то во время загрузки считаются?

Вряд ли, игра должна оперировать уже рассчитанными заранее данными в редакторах. Скорее всего это 0,0,0 и 255,255,255, что сигнализирует о том, что тангенты и бинормали для данной модели отсутствуют. Но это не точно, надо смотреть.

Была мысль проанализировать код шейдерных программ, но пока времени нет на это (сегодня полный рабочий день отработал, завтра работать, а потом еще всю неделю).
Тут в соседней теме предлагали помощь, похукать DLL, всякое такое. Если энтузиазм не пропал, можно попробовать сдампить код шейдерных программ, не даром же в папке с игрой лежат D3DCompiler_46.dll, d3dcompiler_47.dll и dxcompiler.dll.
Что и как перекрывать - it's up to you. Я бы для начала посмотрел таблицу экспорта этих библиотек (и не забудем d3dx11.dll) при помощи утилиты dumpbin.exe из комплекта инструментов Visual Studio.
Полученный байткод можно потом попробовать декомпилировать, станет сразу ясно где и какие форматы вершин используются.
iOrange
Цитата(Modera @ 22.03.2019, 22:49) *
Вопрос к знатокам 3D графики. В некоторых моделях исхода вместо тангентов и бинормалей записаны значения 0x000000 и 0xFFFFFF. Как работает нормалмаппинг в таком случае? Тангенты и бинормали где-то во время загрузки считаются?

Ну вроде как мой профиль, так что отвечу.
Ни в одном из известныхм мне форматов вершин игры нет tangent и bitangent. Вместо них 2 поля общего назначения, которые зависят от материала. Если модель нуждается в TBN, то тогда 2-е поле используется как tangent + знак, из чего восстанавливается базис уже.

Цитата(autistic @ 23.03.2019, 18:39) *
Если энтузиазм не пропал, можно попробовать сдампить код шейдерных программ

Вы пропустили мой пост о шейдерах - я писал где они и код на Rust для разбивки шейдерного кэша на отдельные шейдеры.
https://www.gameru.net/forum/index.php?act=...amp;pid=1652610

Цитата(autistic @ 23.03.2019, 18:39) *
станет сразу ясно где и какие форматы вершин используются.

Для таких энтузиастов ничего не жалко wink.gif Но могу и просто дать описание форматов если что.
шейдер

Код
vs_5_0
dcl_global_flags refactoringAllowed
dcl_constant_buffer cb0[4].xyzw, immediateIndexed
dcl_constant_buffer cb3[10].xyzw, immediateIndexed
dcl_constant_buffer cb5[13].xyzw, dynamicIndexed
dcl_constant_buffer cb6[12].xyzw, dynamicIndexed
dcl_input v0.xyz
dcl_input v1.xyzw
dcl_input v2.w
dcl_input v3.x
dcl_input v4.xyzw
dcl_input v5.xyzw
dcl_input v6.xy
dcl_input v7.xyzw
dcl_input v8.xyzw
dcl_input v9.xyzw
dcl_input v10.xyw
dcl_input_sgv v11.x, instance_id
dcl_input v12.xyzw
dcl_input v13.xyzw
dcl_input v14.xyzw
dcl_input v15.xyzw
dcl_input v16.xyzw
dcl_input v17.xyzw
dcl_input v18.xyzw
dcl_input v19.xyzw
dcl_input v20.xyzw
dcl_input v21.xyzw
dcl_input v22.xyzw
dcl_input v23.x
dcl_output_siv o0.xyzw, position
dcl_output o1.xyzw
dcl_output o2.xyzw
dcl_output o3.xyzw
dcl_output o4.xyzw
dcl_output o5.x
dcl_output o6.xyzw
dcl_output o7.xyz
dcl_temps 15
imad r0.xyzw, v11.xxxx, cb5[0].xxxx, v4.zyxw
and r1.xy, v10.xyxx, l(65535, 65535, 0, 0)
ushr r1.zw, v10.xxxy, l(0, 0, 16, 16)
f16tof32 o7.xyz, r1.xzyx
f16tof32 r1.x, r1.w
mul r2.xyzw, v5.zzzz, cb5[r0.x+1].xyzw
iadd r1.yz, r0.xxxx, l(0, 1, 2, 0)
mul r3.xyzw, v5.zzzz, cb5[r1.y+1].xyzw
mul r4.xyzw, v5.zzzz, cb5[r1.z+1].xyzw
mul r5.xyzw, v5.zzzz, cb6[r0.x].xyzw
mul r6.xyzw, v5.zzzz, cb6[r1.y].xyzw
mul r7.xyzw, v5.zzzz, cb6[r1.z].xyzw
lt r0.x, l(0), v5.y
if r0.x
mad r2.xyzw, v5.yyyy, cb5[r0.y+1].xyzw, r2.xyzw
iadd r1.yz, r0.yyyy, l(0, 1, 2, 0)
mad r3.xyzw, v5.yyyy, cb5[r1.y+1].xyzw, r3.xyzw
mad r4.xyzw, v5.yyyy, cb5[r1.z+1].xyzw, r4.xyzw
mad r5.xyzw, v5.yyyy, cb6[r0.y].xyzw, r5.xyzw
mad r6.xyzw, v5.yyyy, cb6[r1.y].xyzw, r6.xyzw
mad r7.xyzw, v5.yyyy, cb6[r1.z].xyzw, r7.xyzw
lt r0.x, l(0), v5.x
if r0.x
mad r8.xyzw, v5.xxxx, cb5[r0.z+1].xyzw, r2.xyzw
iadd r9.xyzw, r0.zzww, l(1, 2, 1, 2)
mad r10.xyzw, v5.xxxx, cb5[r9.x+1].xyzw, r3.xyzw
mad r11.xyzw, v5.xxxx, cb5[r9.y+1].xyzw, r4.xyzw
mad r12.xyzw, v5.xxxx, cb6[r0.z].xyzw, r5.xyzw
mad r13.xyzw, v5.xxxx, cb6[r9.x].xyzw, r6.xyzw
mad r14.xyzw, v5.xxxx, cb6[r9.y].xyzw, r7.xyzw
mad r2.xyzw, v5.wwww, cb5[r0.w+1].xyzw, r8.xyzw
mad r3.xyzw, v5.wwww, cb5[r9.z+1].xyzw, r10.xyzw
mad r4.xyzw, v5.wwww, cb5[r9.w+1].xyzw, r11.xyzw
mad r5.xyzw, v5.wwww, cb6[r0.w].xyzw, r12.xyzw
mad r6.xyzw, v5.wwww, cb6[r9.z].xyzw, r13.xyzw
mad r7.xyzw, v5.wwww, cb6[r9.w].xyzw, r14.xyzw
endif
endif
utof r0.xyz, v0.xyzx
mul r1.yzw, r0.xxyz, l(0, 3.05185e-005, 3.05185e-005, 3.05185e-005)
ge r8.xyz, l(32767, 32767, 32767, 0), r0.xyzx
mad r0.xyz, r0.xyzx, l(3.05185e-005, 3.05185e-005, 3.05185e-005, 0), l(-2, -2, -2, 0)
movc r0.xyz, r8.xyzx, r1.yzwy, r0.xyzx
mul r0.xyz, r0.xyzx, v10.wwww
mov r0.w, l(1)
dp4 r8.x, r2.xyzw, r0.xyzw
dp4 r8.y, r3.xyzw, r0.xyzw
dp4 r8.z, r4.xyzw, r0.xyzw
dp4 o3.x, r5.xyzw, r0.xyzw
dp4 o3.y, r6.xyzw, r0.xyzw
dp4 o3.z, r7.xyzw, r0.xyzw
and r0.x, v3.x, l(255)
ubfe r0.yzw, l(0, 8, 8, 8), l(0, 16, 8, 16), v3.xxxx
utof r5.xyzw, r0.yzxw
mad r0.xyz, v1.zyxz, l(2, 2, 2, 0), l(-1, -1, -1, 0)
dp3 r2.x, r2.xyzx, r0.xyzx
dp3 r2.y, r3.xyzx, r0.xyzx
dp3 r2.z, r4.xyzx, r0.xyzx
itof r0.xy, v6.xyxx
mul r0.xy, r0.xyxx, cb0[3].zwzz
mul r1.yzw, r5.xxyz, l(0, 0.00392157, 0.00392157, 0.00392157)
mad o1.w, r5.w, l(0.00196078), l(0.5)
mul o2.w, r1.x, v1.w
iadd r3.xyzw, v15.zzyy, l(1, 2, 1, 2)
mov r0.z, v15.y
mul r4.xyzw, v19.yyyy, cb5[r0.z+1].xyzw
mov r0.z, v15.z
mad r4.xyzw, v19.zzzz, cb5[r0.z+1].xyzw, r4.xyzw
mul r5.xyzw, v19.yyyy, cb5[r3.z+1].xyzw
mad r5.xyzw, v19.zzzz, cb5[r3.x+1].xyzw, r5.xyzw
mul r6.xyzw, v19.yyyy, cb5[r3.w+1].xyzw
mad r3.xyzw, v19.zzzz, cb5[r3.y+1].xyzw, r6.xyzw
mov r0.z, v15.x
mad r4.xyzw, v19.xxxx, cb5[r0.z+1].xyzw, r4.xyzw
iadd r6.xyzw, v15.xxww, l(1, 2, 1, 2)
mad r5.xyzw, v19.xxxx, cb5[r6.x+1].xyzw, r5.xyzw
mad r3.xyzw, v19.xxxx, cb5[r6.y+1].xyzw, r3.xyzw
mov r0.z, v15.w
mad r4.xyzw, v19.wwww, cb5[r0.z+1].xyzw, r4.xyzw
mad r5.xyzw, v19.wwww, cb5[r6.z+1].xyzw, r5.xyzw
mad r3.xyzw, v19.wwww, cb5[r6.w+1].xyzw, r3.xyzw
mul r6.xyz, v10.wwww, v12.xyzx
mov r6.w, l(1)
dp4 r4.y, r4.xyzw, r6.xyzw
dp4 r4.z, r5.xyzw, r6.xyzw
dp4 r4.x, r3.xyzw, r6.xyzw
add r3.xyz, -r4.yzxy, r8.xyzx
dp3 r0.z, r3.xyzx, r3.xyzx
sqrt r0.z, r0.z
add r3.xyz, -r8.zxyz, r4.xyzx
dp3 r0.w, r3.xyzx, r3.xyzx
rsq r0.w, r0.w
mul r3.xyz, r0.wwww, r3.xyzx
mul r4.xyz, r2.xyzx, r3.xyzx
mad r4.xyz, r2.zxyz, r3.yzxy, -r4.xyzx
dp3 r0.w, r4.xyzx, r4.xyzx
rsq r0.w, r0.w
mul r4.xyz, r0.wwww, r4.xyzx
mul r5.xyz, r3.xyzx, r4.xyzx
mad r3.xyz, r3.zxyz, r4.yzxy, -r5.xyzx
dp3 r0.w, r3.xyzx, r3.xyzx
rsq r0.w, r0.w
iadd r4.xyzw, v16.zzyy, l(1, 2, 1, 2)
mov r1.x, v16.y
mul r5.xyzw, v20.yyyy, cb5[r1.x+1].xyzw
mov r1.x, v16.z
mad r5.xyzw, v20.zzzz, cb5[r1.x+1].xyzw, r5.xyzw
mul r6.xyzw, v20.yyyy, cb5[r4.z+1].xyzw
mad r6.xyzw, v20.zzzz, cb5[r4.x+1].xyzw, r6.xyzw
mul r7.xyzw, v20.yyyy, cb5[r4.w+1].xyzw
mad r4.xyzw, v20.zzzz, cb5[r4.y+1].xyzw, r7.xyzw
mov r1.x, v16.x
mad r5.xyzw, v20.xxxx, cb5[r1.x+1].xyzw, r5.xyzw
iadd r7.xyzw, v16.xxww, l(1, 2, 1, 2)
mad r6.xyzw, v20.xxxx, cb5[r7.x+1].xyzw, r6.xyzw
mad r4.xyzw, v20.xxxx, cb5[r7.y+1].xyzw, r4.xyzw
mov r1.x, v16.w
mad r5.xyzw, v20.wwww, cb5[r1.x+1].xyzw, r5.xyzw
mad r6.xyzw, v20.wwww, cb5[r7.z+1].xyzw, r6.xyzw
mad r4.xyzw, v20.wwww, cb5[r7.w+1].xyzw, r4.xyzw
mov r7.x, v12.w
mov r7.yz, v13.xxyx
mul r7.xyz, r7.xyzx, v10.wwww
mov r7.w, l(1)
dp4 r5.y, r5.xyzw, r7.xyzw
dp4 r5.z, r6.xyzw, r7.xyzw
dp4 r5.x, r4.xyzw, r7.xyzw
add r4.xyz, -r5.yzxy, r8.xyzx
dp3 r1.x, r4.xyzx, r4.xyzx
sqrt r1.x, r1.x
add r4.x, r0.z, r1.x
add r5.xyz, -r8.zxyz, r5.xyzx
dp3 r0.z, r5.xyzx, r5.xyzx
rsq r0.z, r0.z
mul r5.xyz, r0.zzzz, r5.xyzx
mul r6.xyz, r2.xyzx, r5.xyzx
mad r6.xyz, r2.zxyz, r5.yzxy, -r6.xyzx
dp3 r0.z, r6.xyzx, r6.xyzx
rsq r0.z, r0.z
mul r6.xyz, r0.zzzz, r6.xyzx
mul r7.xyz, r5.xyzx, r6.xyzx
mad r5.xyz, r5.zxyz, r6.yzxy, -r7.xyzx
dp3 r0.z, r5.xyzx, r5.xyzx
rsq r0.z, r0.z
mul r5.xyz, r0.zzzz, r5.xyzx
mad r3.xyz, r3.xyzx, r0.wwww, r5.xyzx
ne r0.z, l(0, 0, 0, 0), v21.z
if r0.z
iadd r5.xyzw, v17.zzyy, l(1, 2, 1, 2)
mov r0.z, v17.y
mul r6.xyzw, v21.yyyy, cb5[r0.z+1].xyzw
mov r0.z, v17.z
mad r6.xyzw, v21.zzzz, cb5[r0.z+1].xyzw, r6.xyzw
mul r7.xyzw, v21.yyyy, cb5[r5.z+1].xyzw
mad r7.xyzw, v21.zzzz, cb5[r5.x+1].xyzw, r7.xyzw
mul r9.xyzw, v21.yyyy, cb5[r5.w+1].xyzw
mad r5.xyzw, v21.zzzz, cb5[r5.y+1].xyzw, r9.xyzw
mov r0.z, v17.x
mad r6.xyzw, v21.xxxx, cb5[r0.z+1].xyzw, r6.xyzw
iadd r9.xyzw, v17.xxww, l(1, 2, 1, 2)
mad r7.xyzw, v21.xxxx, cb5[r9.x+1].xyzw, r7.xyzw
mad r5.xyzw, v21.xxxx, cb5[r9.y+1].xyzw, r5.xyzw
mov r0.z, v17.w
mad r6.xyzw, v21.wwww, cb5[r0.z+1].xyzw, r6.xyzw
mad r7.xyzw, v21.wwww, cb5[r9.z+1].xyzw, r7.xyzw
mad r5.xyzw, v21.wwww, cb5[r9.w+1].xyzw, r5.xyzw
mov r9.xy, v13.zwzz
mov r9.z, v14.x
mul r9.xyz, r9.xyzx, v10.wwww
mov r9.w, l(1)
dp4 r6.y, r6.xyzw, r9.xyzw
dp4 r6.z, r7.xyzw, r9.xyzw
dp4 r6.x, r5.xyzw, r9.xyzw
add r5.xyz, -r6.yzxy, r8.xyzx
dp3 r0.z, r5.xyzx, r5.xyzx
sqrt r0.z, r0.z
add r4.x, r0.z, r4.x
add r5.xyz, -r8.zxyz, r6.xyzx
dp3 r0.z, r5.xyzx, r5.xyzx
rsq r0.z, r0.z
mul r5.xyz, r0.zzzz, r5.xyzx
mul r6.xyz, r2.xyzx, r5.xyzx
mad r6.xyz, r2.zxyz, r5.yzxy, -r6.xyzx
dp3 r0.z, r6.xyzx, r6.xyzx
rsq r0.z, r0.z
mul r6.xyz, r0.zzzz, r6.xyzx
mul r7.xyz, r5.xyzx, r6.xyzx
mad r5.xyz, r5.zxyz, r6.yzxy, -r7.xyzx
dp3 r0.z, r5.xyzx, r5.xyzx
rsq r0.z, r0.z
mad r3.xyz, r5.xyzx, r0.zzzz, r3.xyzx
mov r4.y, l(3)
else
mov r4.y, l(2)
endif
ne r0.z, l(0, 0, 0, 0), v22.z
if r0.z
iadd r5.xyzw, v18.zzyy, l(1, 2, 1, 2)
mov r0.z, v18.y
mul r6.xyzw, v22.yyyy, cb5[r0.z+1].xyzw
mov r0.z, v18.z
mad r6.xyzw, v22.zzzz, cb5[r0.z+1].xyzw, r6.xyzw
mul r7.xyzw, v22.yyyy, cb5[r5.z+1].xyzw
mad r7.xyzw, v22.zzzz, cb5[r5.x+1].xyzw, r7.xyzw
mul r9.xyzw, v22.yyyy, cb5[r5.w+1].xyzw
mad r5.xyzw, v22.zzzz, cb5[r5.y+1].xyzw, r9.xyzw
mov r0.z, v18.x
mad r6.xyzw, v22.xxxx, cb5[r0.z+1].xyzw, r6.xyzw
iadd r9.xyzw, v18.xxww, l(1, 2, 1, 2)
mad r7.xyzw, v22.xxxx, cb5[r9.x+1].xyzw, r7.xyzw
mad r5.xyzw, v22.xxxx, cb5[r9.y+1].xyzw, r5.xyzw
mov r0.z, v18.w
mad r6.xyzw, v22.wwww, cb5[r0.z+1].xyzw, r6.xyzw
mad r7.xyzw, v22.wwww, cb5[r9.z+1].xyzw, r7.xyzw
mad r5.xyzw, v22.wwww, cb5[r9.w+1].xyzw, r5.xyzw
mul r9.xyz, v10.wwww, v14.yzwy
mov r9.w, l(1)
dp4 r6.y, r6.xyzw, r9.xyzw
dp4 r6.z, r7.xyzw, r9.xyzw
dp4 r6.x, r5.xyzw, r9.xyzw
add r5.xyz, -r6.yzxy, r8.xyzx
dp3 r0.z, r5.xyzx, r5.xyzx
sqrt r0.z, r0.z
add r4.x, r0.z, r4.x
add r4.y, r4.y, l(1)
add r5.xyz, -r8.zxyz, r6.xyzx
dp3 r0.z, r5.xyzx, r5.xyzx
rsq r0.z, r0.z
mul r5.xyz, r0.zzzz, r5.xyzx
mul r6.xyz, r2.xyzx, r5.xyzx
mad r2.xyz, r2.zxyz, r5.yzxy, -r6.xyzx
dp3 r0.z, r2.xyzx, r2.xyzx
rsq r0.z, r0.z
mul r2.xyz, r0.zzzz, r2.xyzx
mul r6.xyz, r2.xyzx, r5.xyzx
mad r2.xyz, r5.zxyz, r2.yzxy, -r6.xyzx
dp3 r0.z, r2.xyzx, r2.xyzx
rsq r0.z, r0.z
mad r3.xyz, r2.xyzx, r0.zzzz, r3.xyzx
endif
div r0.z, r4.x, r4.y
div o5.x, v23.x, r0.z
dp3 r0.z, r3.xyzx, r3.xyzx
rsq r0.z, r0.z
mul r2.xyz, r0.zzzz, r3.xyzx
mad o1.xy, r0.xyxx, l(0.000488281, 0.000488281, 0, 0), cb0[3].xyxx
mov r8.w, l(1)
dp4 r0.x, v7.xyzw, r8.xyzw
dp4 r0.y, v8.xyzw, r8.xyzw
dp4 r0.z, v9.xyzw, r8.xyzw
mov r3.x, v7.y
mov r3.y, v8.y
mov r3.z, v9.y
dp3 r1.x, r3.xyzx, r3.xyzx
sqrt o3.w, r1.x
mov r0.w, l(1)
dp4 o0.x, cb3[6].xyzw, r0.xyzw
dp4 o0.y, cb3[7].xyzw, r0.xyzw
dp4 o0.z, cb3[8].xyzw, r0.xyzw
dp4 o0.w, cb3[9].xyzw, r0.xyzw
dp3 r3.x, v7.xyzx, r2.xyzx
dp3 r3.y, v8.xyzx, r2.xyzx
dp3 r3.z, v9.xyzx, r2.xyzx
dp3 r0.w, r3.xyzx, r3.xyzx
rsq r0.w, r0.w
mul o4.xyz, r0.wwww, r3.xyzx
mov o1.z, l(0)
mov o2.xyz, r0.xyzx
mov o4.w, v2.w
mov o6.xyz, r1.yzwy
mov o6.w, l(1)
ret

Modera
Цитата(iOrange @ 25.03.2019, 00:01) *
Ну вроде как мой профиль, так что отвечу.
Ни в одном из известныхм мне форматов вершин игры нет tangent и bitangent. Вместо них 2 поля общего назначения, которые зависят от материала. Если модель нуждается в TBN, то тогда 2-е поле используется как tangent + знак, из чего восстанавливается базис уже.

Да, всё так. Только непонятно как работают детальные текстуры-нормалмапы на моделях в которых нет тангентов.
Вот например модель ящика с песком, в ней имеются нормали и тангенты( зелёненькие и красненькие).

А вот модель бетонного забора, в ней тангентов нет. А детальная текстура есть.


Или детальные текстуры как-то по другому устроены? scratch_one-s_head.gif
iOrange
Цитата(Modera @ 25.03.2019, 01:04) *
Или детальные текстуры как-то по другому устроены?

Ну детальным текстурам не особо нужен TBN, они всего лишь отклоняют существующую нормаль.
Т.е. - если у объекта есть TBN и нормалмапа, то они будут "отклонять" ее, если нет - то геометрическую нормаль.


ATTENTION

Чтобы понять необходимость следующего шага, было бы здорово чтобы те, кто хотел бы работать совместно над проектом MetroEX отписались сюда либо в личку.
Есть некая существующая кодобаза, и куча записей "на полях" о функционировании тех или иных частей движка.
Нужны программисты, которые будут не просто копипастить код, а готовы к плодотворному совместному сотрудничеству.
Желательные области знаний:
  • С++ 17 / C# 6 / Rust / Intel assembly AMD64
  • Компрессия данных
  • Графика
  • Анимация
  • Звук
  • Физика
  • Игровая логика


На данный момент есть один формучанин, который изъявил желание присоединиться к разработке MetroEX, так что надеюсь, что с его присоединением разработка пойдет бодрее.
Modera
Цитата(iOrange @ 25.03.2019, 03:38) *
Цитата(Modera @ 25.03.2019, 01:04) *
Или детальные текстуры как-то по другому устроены?

Ну детальным текстурам не особо нужен TBN, они всего лишь отклоняют существующую нормаль.
Т.е. - если у объекта есть TBN и нормалмапа, то они будут "отклонять" ее, если нет - то геометрическую нормаль.

Вон оно как оказывается. Спасибо за разъяснение smile.gif
iOrange
Еще одно важное объявление:

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

Спасибо
mark2580
Цитата(iOrange @ 25.03.2019, 06:58) *
Еще одно важное объявление:

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

Спасибо

А где вариант "нужен поиск !!!"
atanda
Не понимаю зачем откладывать то, что уже сделано?
iOrange
Цитата(buffy @ 25.03.2019, 15:33) *
Не понимаю зачем откладывать то, что уже сделано?

Тут другое непонятно - как минимум несколько человек в этой теме требовали исходники, но никто еще не изъявил желания присоединиться к разработке. unknw.gif
slik
Цитата(iOrange @ 25.03.2019, 16:59) *
Тут другое непонятно - как минимум несколько человек в этой теме требовали исходники, но никто еще не изъявил желания присоединиться к разработке.

Просто еще даже не вечер по восточно-европейскому времени smile.gif Я вполне непротив присоединится, даже очень за. Не под все пункты пожеланий подхожу, тем интереснее будет копнуть там где еще не копал.
ColorCode
Здравствуйте! Пилится проект обложка для проигрывателя AIMP, большая просьба загрузить (распакованные в PNG) текстуры (включая аннимации) элементов UI и шрифты. И если не затруднит найти вот этот аппарат
буду крайне благодарен.
Vasia1917
Если в итоге, когда уважаемый iOrange допилит инструмент и кто-то возьмётся за патч с сжатыми текстурами для слабых компов, да поставят ему памятник за место Ильича!
iOrange
Цитата(Vasia1917 @ 26.03.2019, 14:26) *
Если в итоге, когда уважаемый iOrange допилит инструмент и кто-то возьмётся за патч с сжатыми текстурами для слабых компов, да поставят ему памятник за место Ильича!

Текстуры и так все пожаты. Или имеется ввиду уменьшение разрешения? Сомневаюсь что это хоть сколько поможет слабым компам.
abramcumner
Цитата(Vasia1917 @ 26.03.2019, 15:26) *
и кто-то возьмётся за патч с сжатыми текстурами для слабых компов,

Для слабых компов надо р1 из ТЧ подставить. Еще и покруче выглядеть будет.
Skat
ColorCode, https://yadi.sk/d/CBfq1I6Tj2ZE4w
iOrange
Цитата(Skat @ 26.03.2019, 18:05) *

Ребята, вы можете хотя бы делать это в личке уже? В шапке черным по белому написано. Спасибо
apan65
Для меня наоборот большой вопрос к разрабам нахера было пихать текстуры в таком парашном разрешении в пк версию, не могли что ли текстуры в оригинальном разрешении добавить для экстрим настроек?
iOrange
Цитата(apan65 @ 26.03.2019, 18:23) *
в таком парашном разрешении в пк версию

2048 нормальное разрешалово. Зачем нагружать билд дополнительным весом которым будет пользоваться 0.1% юзеров?
Vasia1917
Цитата(iOrange @ 26.03.2019, 16:19) *
Цитата(Vasia1917 @ 26.03.2019, 14:26) *
Если в итоге, когда уважаемый iOrange допилит инструмент и кто-то возьмётся за патч с сжатыми текстурами для слабых компов, да поставят ему памятник за место Ильича!

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

512 в 256 ещё как поможет. Хотите взяться? biggrin.gif
iOrange
Цитата(autistic @ 26.03.2019, 23:28) *
Дополнительно можно посмотреть что за аргументы приходят сюда

Можно поинтересоваться - зачем? Если нужны шейдеры - могу поделиться. Примерно около 5 тысяч их у меня, дизассемблированных.
Вертексные, пиксельные, компьют.

Edited: шейдеры приаттачил
переименовать в shaders.7z, форум не давал аттачить почему-то, а в реальном zip весит в 10 раз тяжелее
Нажмите для просмотра прикрепленного файла
iOrange
Интересно было наблюдать за ходом голосования, на момент закрытия опроса - результаты были такие:
25 голосов, 12 за создание патч-архивов, 13 - за анимации.
Анимации победили, и именно они и войдут в v0.3.



PS. Еще у меня хорошие новости - к разработке MetroEX присоединились abramcumner и slik, и уже успели внести свою лепту в устранение багов, добавление фичей и тестировании, за что им огромное спасибо! bravo7kg.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2020 IPS, Inc.