Для тех, кто любит рисовать текстуры

Автор dSpair, 06 ноября 2004 01:00:29

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Zontik

Наконец-то и у меня вопрос.
У меня три разных версии Фотошопа, последняя из которых (на работе) - CS4. И ни одна из них не умеет нормально работать с PNG, отсекая альфа-канал при сохранении. В чем тут прикол, а?
Дайте глазам отдохнуть! Тёмное место

Chuzhoi

Не знаю. У меня не было проблем с сохранением PNG (имеется в виду 24 бит, не так ли?). Правда, для PNG я всегда пользуюсь Save for web (Ctrl+Shift+Alt+S). В диалоговом окне нужно поставить галочку Transparency.

Кстати, что понимается под альфа-каналом? Именно прозрачность, или дополнительные каналы на вкладке "Channels"? Я подразумеваю именно прозрачность.

Zontik

На фига мне прозрачность, не поддающаяся контролю? Альфа-канал - он виден, он понятен, с ним можно что-то делать. А что такое "прозрачность"?
У меня как обычно: сделал текстуру, зашел в игру, посмотрел, вернулся, поправил. Еще раз посмотрел, еще раз поправил. А как править "прозрачность"? Как Элвис в Пэйнтшопе, что ли? Спасибо, уж лучше старый добрый (и громадный) TGA.
Хотя есть еще надежда, что я чего-то не понимаю. И это действительно так. Save for web разве не подразумевает максимально возможное сжатие? Если да - и если без потери качества - тогда в чем смысл такой опции, ее просто незачем отключать? А если с потерей, тогда без комментариев.
Насчет битности ничего сказать не могу, мне выбора не предлагалось.
Дайте глазам отдохнуть! Тёмное место

Chuzhoi

Контролируемая прозрачность легко делается с помощью Layer -> Add layer mask. Потом просто сидишь и рисуешь черно-белую маску для слоя. Или для нескольких слоев.
Если ты пытаешься сохранить дополнительные каналы в качестве альфа-канала, то я вообще удивлен, что у тебя раньше что-то получалось.

24-битный PNG не поддерживает сжатия с потерей качества (только lossless, то есть банальное архивирование). Поэтому качество передается максимально возможное, как и в TGA. Я думаю, и объем получается примерно тот же, что и в TGA - так что какой формат использовать, дело вкуса. А TGA, кстати, поддерживает сжатие?

8-битный PNG практически аналогичен GIF.

Zontik

Суди сам. Файл размера 256х256 точек в TGA весит ровно 256 Кб, независимо от содержимого. Как я понимаю, архивирование перекладывается на плечи ZIP.
ЦитироватьЕсли ты пытаешься сохранить дополнительные каналы в качестве альфа-канала, то я вообще удивлен, что у тебя раньше что-то получалось.
TGA именно так и работает, причем с незапамятных времен. Может, дело в привычке, но мне это кажется единственным логичным способом. Альфа-канал, так ведь он называется?
На днях делал distant art с прозрачностью. Разумеется, в TGA. Но так как хотелось покачественней, а новый движок позволяет, я слегка (раз в 8) увеличил максимальные до недавнего времени размеры. Файл получился огромный (2 Мб), меня это напрягло и я решил обновить мировоззрение. Попытался сохранить в PNG и получил полное отсутствие прозрачности (теперь понимаю, почему). После этого сохранил в DDS и получил сокращение объема почти в 4 раза. Правда, открыть и посмотреть этот файл можно теперь только в Фотошопе (мои проблемы, впрочем, и я это знаю). Зато нормальный, полноценный альфа-канал остался на своем законном месте.
При сохранении у меня было спрошено, какой вид прозрачности я бы хотел получить. Разумных вариантов было три. Первый - я так понял, "пиксельная", на уровне "черное - белое". Я выбрал второй - Explicit Alpha, с пометкой DXT3, так как хотелось получить чуть-чуть размытые края. А есть еще DXT5 - Interpolated Alpha. Не знаешь ли ты, что это за вариант?
P.S. В результате узнал, что означают эти загадочные буквы - DDS, после чего наконец-то перестал их путать с другими.
Дайте глазам отдохнуть! Тёмное место

Chuzhoi

В DXT3 используется 4-битный альфа-канал без сжатия (т. е. 16 уровней). В DXT-5 - полноценный 8-битный, но при этом сжатый с некоторой потерей качества. Какой вариант лучше - зависит от ситуации. Если тебе нужно получить четкие края (например, наложить текст на какой-нибудь фон), то, возможно, лучше будет DXT3. Но для полноценной - плавной - прозрачности (типа стекла) лучше использовать DXT5.

Zontik

Понял, что ничего не пойму, пока не пощупаю руками. Но теперь по крайней мере ясно, в какую сторону смотреть, спасибо.
Дайте глазам отдохнуть! Тёмное место

Chuzhoi

Ну, скажем так: если ты используешь для стекла или воды DXT3, то, скорее всего, ты увидишь на просвет ступенчатый градиент (т. к. в DXT3 всего 16 уровней альфы). Поэтому для таких вещей лучше DXT5.
DXT3 больше подходит для "дискретной" прозрачности (типа каких-нибудь решеток и т. п.) - в том случае, если тебя однобитная прозрачность не устраивает и ты хочешь немного подразмыть края (поэтому я рискну предположить, что твой выбор в данном случае был правилен).
Если же ты для решетки будешь использовать DXT5, то, возможно (но не факт), ты увидишь на границах между прозрачным и непрозрачным характерные для DXT артефакты сжатия (квадраты 4*4 пиксела).
Тем не менее, в большинстве случаев используется DXT5.

Zontik

Градиент? Откуда он возьмется? Если стекло прозрачное, то оно прозрачное, здесь 16 уровней нужны только для того, чтобы выбрать один из них. Или речь идет о границах (стекло в раме, к примеру, и все в одной текстуре)? Так для края даже 16 уровней - и то переизбыток.
Я опять не понимаю чего-то важного.
Дайте глазам отдохнуть! Тёмное место

Chuzhoi

Если ты используешь постоянную прозрачность по всей площади стекла, то, конечно, тебе хватит и одного уровня из 16 (или из 256). Ну... хорошо. Давай возьмем другой пример - сгусток дыма (то есть один из партиклов, из которых состоит дым). В середине он менее прозрачен, а по краям прозрачность увеличивается вплоть до полной. И здесь как раз требуется плавный градиент, и 16 уровней (из которых реально будут использованы 3 или 4) явно недостаточно, так как на просвет ты увидишь ступеньку.

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

Zontik

То есть эти 16 уровней - фиксированные? Теперь понял, пример хороший.
Дайте глазам отдохнуть! Тёмное место

Chuzhoi


clearing


clearing


clearing