#three.js
#three.js
Вопрос:
Я привык к координатам карты UV в диапазоне от [0,1]
, однако, при проверке импортированного GLTF SkinnedMesh с помощью BufferGeometry, я заметил, что диапазон представляет собой 16-разрядное целое число без знака (Uint16Array):
Что меня дополнительно смущает, так это то, что normalized
атрибут имеет значение false. Согласно документам, похоже, что для этого должно быть установлено значение true
, если эти 16-битные значения нормализованы до диапазона [0,1]. И все же карта текстур UV работает нормально.
Как работает эта UV-карта? Каков его диапазон?
РЕДАКТИРОВАТЬ: Вот скриншот UV-карты в Blender:
Комментарии:
1. Методом проб и ошибок я обнаружил, что диапазон этой конкретной UV-карты равен 4096. (Базовое изображение имеет размер 256×256). Но я все еще не знаю, как определить диапазон УФ-излучения, посмотрев только на свойства атрибута UV.
2. Это действительно интересно. Я всегда видел UV в
[0-1]
диапазоне. Может быть, ожидается, что текстура будет разбита на плитки? Откуда вы взяли геометрию?3. Геометрия из FBX импортируется в Blender, затем экспортируется в формат GLTF. Я использую GLTFLoader для его загрузки.
4. Можете ли вы поделиться скриншотом того, как выглядят UV-изображения в редакторе UV Blender ? Возможно, они на самом деле увеличены, чтобы выйти за пределы стандартного
[0, 1]
диапазона.5. Мне кажется, что намерение состоит в том, чтобы выложить текстуру здесь. Но (если бы .normalized было true) квантование также было бы разумной теорией, чтобы сэкономить несколько КБ.