» Подготовка текстур
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

Подготовка текстур

English

О подготовке текстур

Нод FileTexture (EX9.Texture) поддерживает графические форматы BMP, JPG, TIF, TGA, PNG, DDS. Текстуры из файлов загружаются в память. Для оптимизации использования памяти (и соответственно лучшей скорости загрузки и качества отображения), готовьте текстуры в размере 16x16, 32x32, 64x64, 128x128, 256x256, 512x512, 1024x1024, 2048x2048 или 4096x4096 пикселей.
Чем меньше размер текстуры, тем быстрее она загружается и обрабатывается.

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

Создаем текстуры с альфа-каналом (прозрачностью)

PNG (.png) - cамый удобный формат для прозрачных текстур. Если вы работаете в фотошопе, вам даже не нужно создавать дополнительный альфа-канал, потому что прозрачность слоя автоматически сохраняется как прозрачность по альфа-каналу.
TARGA (.tga) - так же возможен. При подготовке текстуры .tga в фотошопе, не забудьте создать отдельный канал для альфа-канала и объединить все слои.
JPEG (.jpg) и BITMAP (.bmp) не поддерживают альфа-канал.

Как vvvv работает с разрешением текстур? Похоже, что картинка немного искажена.

Действительно искажена. DirectX оптимально работает с квадратными текстурами, 16х16, 32х32 и т.д. Нод FileTexture (EX9.Texture) делает это автоматически во время загрузки текстуры. У этого нода есть пины для установки разрешения и пропорций, но могут быть ограничения размера в видеокарте.
Чтобы оптимально использовать картинку очень высокого разрешения или в вытянутой пропорции, разрежьте ее на квадраты и используйте спред из квадратов, применив каждый фрагмент к нужному квадрату (как, например, в обычных паззлах).

Принудительное изменение размера текстуры значительно увеличивает время загрузки и может понизить качество отображения текстуры. Так что, это очень хорошая привычка делать квадратные текстуры (32, 64, 128, 256, 512, 1024 пикселей), чтобы не тратить ресурс видеокарты на преобразования.

Форматы сжатия (компрессия)

При одновременной загрузке большого количества текстур, рекомендуется использовать форматы с компрессией для экономии памяти. Установить формат сжатия для текстуры можно в Инспекторе, выбрав нод FileTexture (EX9.Texture).

Формат сжатия DXT включает в себя форматы DXT1, DXT2, DXT3, DXT4 и DXT5. DXT1 дает наибольшее сжатие, используя 4-бита на каждый пиксель, но он не обрабатывает альфа-канал (если он есть, то ему уделяется 1-бит). DXT2/3 очень близки к DXT1, но используют дополнительные 4-бита для альфа-канала, что вдвое увеличивает размер занимаемого места в памяти. В формате DXT2 все данные предварительно умножаются на альфа-канал, а в DXT3 - нет. Форматы DXT4/5 отличаются от DXT2/3 тем, что при сжатии изображения исключают интерполяцию альфа данных. DXT2 / 3 / 4 / 5 дают уровень сжатия 4:1, а DXT1 - 8:1 без использования альфа-канала или 6:1.

Сравнение форматов сжатия

FOURCC Description Alpha premultiplied Compression ratio Picture Type
DXT1 Opaque / 1-bit Alpha N/A 8:1 / 6:1 Simple non-alpha
DXT2 Explicit alpha Yes 4:1 Sharp alpha
DXT3 Explicit alpha No 4:1 Sharp alpha
DXT4 Interpolated alpha Yes 4:1 Gradient alpha
DXT5 Interpolated alpha No 4:1 Gradient alpha

подробное описание на английском: Wikipedia DXT file format

anonymous user login

Shoutbox

~3d ago

joreg: vvvvTv S02E01 is out: Buttons & Sliders with Dear ImGui: https://www.youtube.com/live/PuuTilbqd9w

~10d ago

joreg: vvvvTv S02E00 is out: Sensors & Servos with Arduino: https://visualprogramming.net/blog/2024/vvvvtv-is-back-with-season-2/

~10d ago

~10d ago

fleg: hey there! What's the best tool for remote work? Teamviewer feels terrible. Thanks!

~24d ago

joreg: Last call: 6-session vvvv beginner course starting November 4: https://thenodeinstitute.org/courses/ws24-5-vvvv-beginners-part-i/

~1mth ago

joreg: Missed the last meetup? You can rewatch it here: https://www.youtube.com/live/MdvTa58uxB0?si=Fwi-9hHoCmo794Ag

~1mth ago

theurbankind: When is the next big event, like node festival ?

~1mth ago

~1mth ago

joreg: Join us for the next vvvv meetup on Oktober 17th: https://visualprogramming.net/blog/2024/25.-vvvv-worldwide-meetup/

~2mth ago

joreg: 6 session beginner course part 2 "Deep Dive" starts January 13th: https://thenodeinstitute.org/courses/ws24-5-vvvv-beginners-part-ii/