Показать сообщение отдельно
Старый 15.07.2009, 01:36   #1
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Как сделать текстуру с альфамаской.

Про просьбам трудящихся описываю подробно, как делать.
Итак, у нас есть две текстуры. Текстура диффузного рассеивания:

Текстура альфаканала:

И такая вот модель, на которую всё это безобразие надо надеть

Начинаем с того, что совмещаем диффуз и альфу в один файл. Дело в том, что такие форматы, как jpeg, bmp и прочие форматы изображений, к которым мы привыкли, не держдат альфаканала. Собсно, это и не требуется, так как, трудно представить, куда его использовать например, для фотографий и прочих "обывательских" задач. Оправдано его использование на веб-страницах. Таков, например, формат PNG. Прозрачность, кроме того, присутствует и в GIF, но там пиксель может быть либо прозрачным, либо нет, да и Блитз его в качестве текстуры грузить не умеет, так что рассматривать я его не буду.
Итак, у нас на выбор такие форматы, могущие хранить альфу:
PNG, TGA, DDS

Совмещать диффуз и альфу я буду при помощи Adobe Photoshop CS (но и более поздние версии подойдут) Начнём с того, что откроем наши картинки в фотошопе.

TGA

1. Выбираем окошко с открытой картинкой альфаканала
2. Выбираем всё Select -> All (ctrl+A)
3. Копируем в буфер обмена Edit -> Copy (Ctrl + C)
4. Выбираем окошко с открытой картинкой диффуза.
5. Находим окошко Channels. Оно может быть либо отдельным окошком, либо в качестве одной из вкладок (как на скриншоте)

Если вы не видите такого окошка, поставьте галочку Window -> Channels. Окошко должно появиться.
6. Нажимаем на кнопку New внизу окошка:

7. У вас появился новый канал Alpha 1, он весь чёрный. Именно сюда нужно и вставить альфаинформацию, которую мы ранее скопировали в буфер обмена. Делаем это: Edit -> Paste (Ctrl+V)
8. Сохраняем в формате TGA File -> Save As (Ctrl + Shift + S), выбираем имя файла и его формат.

9. Проследите, чтобы была нажата галка Alpha channels!

10. Дальнейшие параметры не меняйте, нажимайте ОК.
11. Готово!

DDS

Для того, чтобы сохранить текстуру в этот формат, вам нужен плугин для фотошопа для сохранения в DDS (см. в аттаче) Насколько мне известно, Фотошоп версии CS2 и выше уже имеет поддержку этого формата и плагин не нужен. Кроме того, текстура должна иметь размеры степения двойки: 32,64,128, 256, 512, 1024 и т.д., иначе сохранить не даст.

1. Выяснить, есть ли у вас в фотошопе поддержка DDS. Например, можно попытаться сохранить картинку и посмотреть, есть ли DDS в списке.
2. Если DDS в списке есть, то переходите сразу к пункту. Иначе открываем папку C:\Program Files\Adobe\Photoshop CS\Plug-Ins\File Formats или иную, зависит от того, где у вас установлен фотошоп и какова его версия.
3. Копируем туда файл dds.8bi (см. аттач)
4. Запускаем фотошоп, открываем наши картинки.
5. Проделываем пункты 1-7 как для TGA.
6. Сохраняем в DDS File -> Save As (Ctrl + Shift + S), выбираем имя файла и его формат.

Проследите, чтобы была нажата галка Alpha channels!

7. Проверьте, чтобы все переключатели, отмеченные красным, стояли как на скриншоте:

8. У меня кнопка Save недоступнааа!!!111
Проверьте переключатель 2D Texture.
9. У меня он недоступеен!!!111
Проверьте размеры текстуры (нужны размеры степени двойки 32, 64, 128... ну ты понел)
10. А у меня...
Проверьте ещё раз.
11. Готово!

PNG

Открываем картинки в фотошопе.

1. Выбираем окошко с открытой картинкой альфаканала
2. Выбираем всё Select -> All (ctrl+A)
3. Копируем в буфер обмена Edit -> Copy (Ctrl + C)
4. Выбираем окошко с открытой картинкой диффуза.
5. Находим окошко Layers. Оно может быть либо отдельным окошком, либо в качестве одной из вкладок (как на скриншоте)

Если вы не видите таког окошка, поставьте галочку Window -> Layers. Окошко должно появиться.
6. В нём на строчке Background кликаем правой кнопкой мыши и выбираем Dublicate layer, нажимаем OK.
7. Появился новый слой. В окошке выбираем опять Background и кликаем на кнопке с мусоркой внизу окошка Layers, на вопрос отвечаем Yes.

8. Находим окошко Channels. Оно может быть либо отдельным окошком, либо в качестве одной из вкладок (как на скриншоте)

Если вы не видите такого окошка, поставьте галочку Window -> Channels. Окошко должно появиться.
9. Нажимаем на кнопку New внизу окошка:

10. У вас появился новый канал Alpha 1, он весь чёрный. Именно сюда нужно и вставить альфаинформацию, которую мы ранее скопировали в буфер обмена. Делаем это: Edit -> Paste (Ctrl+V)
11. Нажимаем на кнопку Load channel as selection.

12. В окошке Channels выбираем строчку RGB.
13. Обращаем выделение Select -> Inverse selection (Ctrl+Shift+I)
14. Вычищаем Edit -> Clear (клавиша Delete)
15. Сохраняем в PNG

16. Дальнейшие параметры не меняем.
17. Готово!

Сохранение в B3D.

Понадобится установленный на Макс плугин B3D Pipeline (ссылка в названии). Как его устанавливать и прочее - смотрите по той же ссылке.

1. Открываем нужную модель в Максе.
2. Открываем редактор материалов, кликнув по кнопке: (клавиша M)
3. Выбираем первую свободную ячейку с серым шариком. Давим на кнопку Standard

4. Выбираем в списке B3D Brush.
5. Давим на самую верхнюю кнопку None

6. Выбираем Blitz3D Map
7. Давим на кнопку None:
http://img404.imageshack.us/img404/6003/mapj.png
8. Указываем путь к файлу текстуры с альфаканалом (tga, png, dds)
9. Ставим галку Masked

10. Выделяем объект в окне просмотра. (кликаем на него или выделяем рамочкой)
11. В редакторе материалов применяем материал на него при помощи такой кнопки:

Показать текстуру в окне просмотра (только диффуз) можно этой кнопкой:


12. Готово! При экспорте в b3d не забудьте указать галки Materials и Textures!

Вот так выглядит модель при загрузке её командой LoadMesh:
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Эти 29 пользователя(ей) сказали Спасибо ABTOMAT за это полезное сообщение:
3dr1aN (27.07.2009), Arton (07.12.2009), Atomikc (09.08.2009), CRASHER (27.08.2009), DeadElf (24.07.2009), falcon (15.07.2009), h1dd3n (15.07.2009), H@NON (15.07.2009), Harter (15.07.2009), impersonalis (15.07.2009), indri (15.07.2009), LLI.T.A.L.K.E.R. (05.04.2013), Mhyhr (05.08.2009), MiXaeL (15.07.2009), Mr_F_ (15.07.2009), newman (15.07.2009), Nex (15.07.2009), NitE (15.07.2009), Program23 (31.07.2009), Randomize (17.08.2009), Reizel (24.12.2009), Slavik (23.07.2009), Spiderman (15.07.2009), St.AnGer (29.07.2009), Tadeus (15.07.2009), tormoz (15.07.2009), Vlad_Bait (03.02.2010), Данил (15.07.2009), ІГРОГРАЙКО (17.07.2009)