Всем привет!
Решил поделиться некоторым опытом конвертирования текстур в необходимый формат. Способов несколько, точнее два. Наверняка большинство из вас и без меня знает, как и что делать, но все же такой туториальчик будет, я думаю, полезен.
Как известно, «умолчальный» формат текстур для Сима является DXT3/Alfa-Channel. Именно в этом формате шкурки грузятся быстрее всего, что легко проверить. Создайте несколько вариантов одной ливреи, но в разных форматах. Уже в меню выбора ВС будет заметно, что быстрее подгружается именно текстура в DXT3/Alfa-Channel. При этом наличие/отсутствие MipMap уровней не играет роли.
Однако не все репайнтеры делают текстуры в таком формате. Но это не является проблемой, поскольку шкурки можно и нужно перевести в требуемый вам формат.
Вариант один.
Вам потребуется утилита ImageTool. Она входит в дистрибуив FS2002. Также её можно взять по адресу: ftp://ftp.flightsim.ru/imagetool.zip
Итак, открываете файл с искомой текстурой при помощи ImageTool. Далее Image>Fomat и выбираете DXT3, если исходная текстура в другом формате. Все просто! Но у этого метода есть недостатки. Во-первых, нет возможности создать альфа-канал, если его не было в исходной bmp-шке, и во-вторых иногда при выдергивании МипМап-уровней или конвертировании 32bit в DXT3 также теряется альфа-канал.
Но для большинства случаев этод метод приемлим.
Вариант два.
Потребуется совершенно другая утилита. Сайт авторов располагается здесь: http://fly.to/mwgfx/
Прямая ссылка на прогу: http://www.mnwright.btinternet.co.uk/download/dxtbmpx.EXE
Итак, запускаете утилитку, далее жмете File>Load Extended Image и выбираете файл, который хотите конвертить. Важно следующее: если вы не хотите испольховать MipMap-уровни, то следует убрать галку из меню Prefs>Use Mipmap. Делать это надо ПРИ КАЖДОМ ЗАПУСКЕ УТИЛИТЫ, ибо данная настройка не запоминается. Далее, если исходник в формате 32bit/Alfa-Channel, то просто сохраните текстуру. Жмите File>Save Extended Image, в ниспадающем меню выбетире формат сохраняемой текстуры «DXT3 with Alfa», укажите папку и название файла, которое вы сохраняете. Я обычно выбирая исходный файл и на вопрос «Такой файл уже существует. Заменить его?» отвечаю «Да».
Если исходник не имеет Альфа-канала, то его надо создать. Меню Alfa>Create Alfa Channel. Я выбираю зеленый альфа-канал (Green), поскольку черный (Black) иногда неправильно распределяется, хромируя черные надписи или шасси 😀 . Ну, что делать дальше, вы уже знаете. После создания альфа-канала сохраняете свою текстуру в формате DXT3 with Alfa.
Вот собственно и всё.
Таким образом лично мне удалось значительно улучшить фпс-ки в ДМД, ведь основной траф там не соотсветствовал стандарту по формату текстур.
Эта статья будет также размещена на сайте www.traffic.avsim.su
Модераторов прошу оставить этот тред здесь, не перемещая его в «Текстуры». И, если можно, прикрепите его, шоб наверху всегда был. Ну или в FAQ по трафу можно вставить.
2 Петрович.
Спасибо за мини-туториал, полезная информация. Приятно понять, что что-то делаешь правильно, даже когда дошел своим умом, а точнее усидчивостью 😀
Если можно, два вопроса.
1. Замечено, что шкурка в формате DXT1 (w/o alfa) занимет меньше места. При этом зачастую трафиковые модели имеют текстуры в 8-битном или 32-битном формате без альфа-канала. Я обычно переводил их в DXT1 без альфы, получая минимальный размер. Действительно ли перевод подобных текстур в DXT3 с созданием альфы даст выигрыш по производительности, несмотря на чуть больший размер (по сравнению с DXT1 без альфы)?
2. Можно ли более подробно про МипМап-уровни? Нужно ли их создавать, и если да, то в каких случаях это имеет смысл? А в каких нет?
Петрович, у меня тут проблемка с FSP A330-200 (именно с двухсоткой).
Некоторые текстуры просто размываются в симе, особенно когда смотришь на крафт в больших портах. Такое впечатление, что комп изо всех сил напрягается, чтобы эту текстурку прорисовать.
Все остальные модели работают на ура. Только 330-200 глючит. Я уже с texture-coverter экпериментировал, который шел в комлекте с ФС2002 — ничего не помогло.
2 Петрович
1. Альфа канал при конвертировании Imagetool-ом теряется только если он однотонный. Т.е. вся площадь альфа слоя имеет один цвет.
2. При выдергивании МипМап альфа слой не теряется, если он был в оригинальной текстуре, не смотря на то что в свойствах написано Alpha — none.
Если сохранить полученное изображение с наибольшей резолюцией и потом открыть его снова, то альфа в нем присутствует.
3. К сожалению DTXBmp портит текстуры при сохранении их в DTX3 формате, придает им зеленоватый оттенок и гранулирует плавные переходы цвета. При чем качество изображения снижается при каждом следуещем сохранении.
Комплексное использование обеих программ позволяет получить наивысшее качество текстур, а так же решить проблему с альфа каналом.
Мой вариант:
1. В меню DTXBmp выбираем Prefs/Include Mips (убираем галку).
2. В меню выбираем File/Load Extended Image.
3. Загружаем текстуру.
4. Если альфа канал однотонный, в меню выбираем Alpha/Send Alpha to Editor. Иначе переходим к пункту 8.
5. В граф. редакторе в любом месте, где не произойдет накладки на изображение, рисуем прямоугольник Gray — 50% (127,127,127) небольшого размера (10Х20 пикселов или около того). На этом этапе можно внести и любые другие желаемые изменения альфа канала.
6. Сохраняем изображение.
7. В меню DTXBmp выбираем Alpha/Refresh Alpha.
8. В меню выбираем File/Save Extended Image
9. Save as type устанавливаем на Extended 32 bit (888-8)
10. Сохраняем результат. (Не забываем указать правильное имя файла и папку).
11. В Imagetool открываем ранее сохраненную текстуру.
12. В меню выбираем Image/Format/DTX3
13. Убеждаемся, что альфа присутствует.
14. Сохраняем текстуру.
Гемор, конечно, за то гарантирует качество текстуры и сохранность альфа канала. 😉
1. Только что проверил, вариант DXT3/Alfa подгружается быстрее, чем DXT1 w/o Alfa. Однако вариант DXT1/Colorkey грузится также быстро, как и DXT3, но весит ровно в два раза меньше (512Кб против 1048Кб).
Вообще, DXT1, как у нас говорят 😀 , филогенетически более древний, чем DXT3. Они, я так понимаю, «выросли» из разных версий DirectX. Я в этом не спец, по этому ничего не могу сказать. Но FS2002 и FS2004 по разному себя ведут. В FS2002 неправильный альфа-канал иногда мог захромировать самолет целиком, или сделать его абсолютно черным. В FS2004 никогда такого не видел.
Вероятно, что чем меньше размер текстуры, тем лучше. Но DXT1 имеет несколько меньшее качество, чем DXT3.
2. МипМап-уровни это своего рода текстурные ЛОДы. На большом расстоянии на самолет вешается уровень, скажем 256х256, а не 1024х1024. При этом шкурка выглядит расплывчатой. Избавиться от этой раслывчатости поможет установка в настройках сима мип-мапинга на максимум. В новом симе при установке в настройках мип-мапинга на максимум появляется неприятная рябь и зернистость. Поэтому я ставлю мип-мапинг на 4-5. Но иногда текстуры грузятся расплывчатые (с меньшим разрешением) и при небольшом удалении от самолета. Шоб от этого избавиться, я удаляю мипмап-уровни в текстурах.
Димон, все текстуры себя так ведут или только некоторые? Не обратил внимая, есть ли зависимость от модели (GE/RR/PW)? Пришли мне какую-нть проблемную текстуру, погляжу что там с ней.
suckmykiss()inbox.ru
Господа, а чем же хорош тогда DXT 5 ? 😀
2 Stranger:
Действительно гемор 😀
Возможно ты прав, но я пока не сталкивался с проблемами вроде потери качества текстуры.
2 ALL:
В крайней версии утилиты (v4.00.79 — именно на неё дана ссылка) немного изменён интерфейс. Но приципы остаются те же.
Открывается файл через меню File>Open.
Создание альфаканала — без изменений.
Мипмап-уровни — убрать галку из чекбокса «Include When Saving» справа на панельке «Mip Maps».
Сохранение — меню File>Save, формат DXT3 подразумевает использование альфа-канала.