Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

materials: packing textures #469

Open
0x4E69676874466F78 opened this issue Mar 6, 2023 · 3 comments
Open

materials: packing textures #469

0x4E69676874466F78 opened this issue Mar 6, 2023 · 3 comments
Labels
dev-tools Tools helpful for development enhancement New feature or request materials

Comments

@0x4E69676874466F78
Copy link
Collaborator

0x4E69676874466F78 commented Mar 6, 2023

Для упаковки текстур потребуется скрипт, задача которого позвать Compressonator и сжать в dds/ktx2
При этом скрипт будет ещё звать например libvps (быстро) или imagemagick (медленно), чтобы metal_map и roughness_map упаковать в один файл metalroughness.png
На тему в каком канале что хранить это под вопросом, я пока не понял как оптимальнее.
Cкрипт ещё будет обходить mat файлы и переписывать строки

"metal_map" "${name}_metal.png"
"roughness_map" "${name}_roughness.png"

на

"metal_map" "${name}_metalroughness.ktx2:green"
"roughness_map" "${name}_metalroughness.ktx2:red"

Это просто пример. Здесь green и red это устное соглашение, по идее не нужно пихать в шейдер лишнюю логику выбора каналов, но если без удорожания можно сделать выборку каналов то это будет неплохо (наверное).
Ещё можно схлопнуть в "metalroughness_map" "${name}_metalroughness.ktx2" но это мне меньше нравится.

@0x4E69676874466F78
Copy link
Collaborator Author

Этой хернёй наверное я могу сам заняться, как подойдёт необходимость.

@0x4E69676874466F78
Copy link
Collaborator Author

Подразумевается унифицировать схему упаковки SNMetamorph/PrimeXT#160

@SNMetamorph
Copy link

Подразумевается унифицировать схему упаковки SNMetamorph/PrimeXT#160

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

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

"metal_map" "1.dds"
"roughness_map" "2.dds"

А можно вот так

"combined_map" "abc.dds" // this texture contains roughness/metalness/etc. in it, packed in different color channels 

Первое удобно для непосредственно процесса создания контента. Второе, на этапе когда весь контент уже готов, позволяет эффективно упаковать текстуры и сэкономить приличное количество видеопамяти и дискового пространства.

@0x4E69676874466F78 0x4E69676874466F78 moved this to 🆕 New in HLRT Jun 4, 2023
@w23 w23 moved this from 🆕 New to 🔖 Ready in HLRT Sep 18, 2023
@0x4E69676874466F78 0x4E69676874466F78 added enhancement New feature or request dev-tools Tools helpful for development materials labels Sep 29, 2023
@w23 w23 moved this from 🔖 Ready to 🗒 Next in HLRT Sep 30, 2023
@w23 w23 moved this from 🗒 Next to 🔖 Ready in HLRT Sep 30, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dev-tools Tools helpful for development enhancement New feature or request materials
Projects
Status: 🔖 Ready
Development

No branches or pull requests

2 participants