не квадратный наклоняемый атлас эффективен - PullRequest
1 голос
/ 13 апреля 2019

У меня есть модель здания с гранями 6K, и я хочу текстурировать с помощью довольно высокой детализации 512x512 текстур (которые составляют около 32 см х 32 см), и я хотел бы быть как можно более мобильным, но не обязательно со старыми телефонами, но для телефонов с поддержкой GearVR.

Модель имеет в основном длинные горизонтальные четверки, например

|-----------|---|----------------|
|-----------|---|----------------|
|-----------|   |----------------|
|-----------|   |----------------|
|-----------|---|----------------|
|-----------|---|----------------|

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

Кроме того, если бы плитки были 512x512 текстурами, я мог бы сложить 8 из них в неквадратную (но степень двух) текстуру 512x4096.

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

Это разумно, или я должен держать их как отдельные текстуры 512x512? Разве отдельные текстуры не означают 8-кратные вызовы отрисовки, что будет гораздо хуже, чем неквадратная текстура 512x4096?

enter image description here

enter image description here

1 Ответ

0 голосов
/ 18 апреля 2019

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

https://www.youtube.com/watch?v=IziIY674NAw

Информация об отделочных листах, которую я нашел, не охватывала «не квадрат», что является основным вопросом.Но из нескольких источников я обнаружил, что некоторые устройства не поддерживают non-quare, а некоторые поддерживают, а некоторые не очень хорошо сжимают сжатие на неквадратных, поэтому это проблема «проверьте целевые устройства».

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

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

Другое решение более нестандартное, но некоторые люди создали собственные шейдеры, которые используют информацию о цвете вершины в сетке, чтобы выбрать, какую часть текстуры использовать, а затем выложить плитку оттуда.Видимо, накладные расходы оказались довольно низкими, и это был успех, поэтому хорошо иметь представление о «планах резервного копирования».Однако это будет специфическая оптимизация для движка / среды / устройства, а не обычная практика моделирования.

http://www.gamasutra.com/blogs/MarkHogan/20140721/221458/Unity_Optimizing_For_Mobile_Using_SubTile_Meshes.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...