Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > FAQ

FAQ Туториалы и часто задаваемые вопросы

Ответ
 
Опции темы
Старый 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)
Старый 15.07.2009, 13:20   #2
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Как сделать текстуру с альфамаской.

альтернативный вариант получения тексы с альфой (по крайней мере так делал я)): копируем диффуз на новый созданный имедж с альфой, затем Layers->Add Layer Mask->Reveal All, получаем маску (в layers появится справа от картинки самого слоя). Жмём Алт+ЛКМ по картинке маски и попадаем в её редактирование - пейстим сюда наше чб изображение маски.
Снова жмём Алт+ЛКМ по картинке слоя чтобы перейти обратно в его редактирование.
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо Mr_F_ за это полезное сообщение:
ABTOMAT (15.07.2009), Colossus (03.08.2009), DeadElf (24.07.2009)
Старый 05.04.2013, 00:11   #3
LLI.T.A.L.K.E.R.
Мастер
 
Аватар для LLI.T.A.L.K.E.R.
 
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений
(для 504 пользователей)
Ответ: Как сделать текстуру с альфамаской.

поднимаю на всякий случай
(Offline)
 
Ответить с цитированием
Старый 05.04.2013, 10:04   #4
Platon
Знающий
 
Регистрация: 04.08.2006
Адрес: Россия
Сообщений: 297
Написано 39 полезных сообщений
(для 70 пользователей)
Ответ: Как сделать текстуру с альфамаской.

Дело в том, что такие форматы, как jpeg, bmp и прочие форматы изображений, к которым мы привыкли, не держдат альфаканала.
bmp поддерживает 32-битное изображение ( и RLE он поддерживает, т.е. можно его юзать как альтернативу формата TGA ), поэтому альфу там можно хранить и блиц ее нормально загружает.
К слову в jpeg тоже можно хранить альфа-канал, но конечно блиц такого не поддерживает.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ABTOMAT (05.04.2013)
Старый 05.04.2013, 11:56   #5
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Как сделать текстуру с альфамаской.

Про BMP не знал.
Про JPEG — это часть стандарта или самодеятельность?
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

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

(Offline)
 
Ответить с цитированием
Старый 05.04.2013, 13:50   #6
Platon
Знающий
 
Регистрация: 04.08.2006
Адрес: Россия
Сообщений: 297
Написано 39 полезных сообщений
(для 70 пользователей)
Ответ: Как сделать текстуру с альфамаской.

Сообщение от ABTOMAT Посмотреть сообщение
Про JPEG — это часть стандарта или самодеятельность?
Самодеятельность
Там есть неиспользуемые в большинстве случаев чанки с маркерами APP#, если не ошибаюсь их 8 штук, первый иногда юзается для хранения метаданных.
(Offline)
 
Ответить с цитированием
Старый 06.04.2013, 03:37   #7
MadMedic
ПроЭктировщик
 
Регистрация: 05.08.2006
Сообщений: 183
Написано 107 полезных сообщений
(для 410 пользователей)
Re: Как сделать текстуру с альфамаской.

Про JPG и альфа канал. Есть два способа.
1) Хранить альфа слой в мета данных попиксельно - полная самодеятельность. Используется , например, в игре суперкорова. В аттаче jpg картинка, если открыть hex редактором (или хотя бы блокнотом) то последние 64х64 байтов - это альфа канал. В аттаче также соответствующая ей png с общепринятой альфой
2) Хранить информацию об альфе в виде векторной маски, также в метаданных. Используется реже, но используется и вроде как является принятым стандартом. Как правило в графических редакторах только.
Изображения
  
(Offline)
 
Ответить с цитированием
Старый 10.12.2013, 10:33   #8
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,019
Написано 2,312 полезных сообщений
(для 5,349 пользователей)
Ответ: Как сделать текстуру с альфамаской.

Попробовал все три способа, с png (с bmp тоже) не получилось. Лучше её просто с прозрачностью для альфы грузить.

TGA и dds отлично работают с альфой. Однако tga как маска, почему-то не работает (в хорсе всё пашет).

DDS попробовал самым последним, т. к. грузил через 9-й макс, у него на семёрке dds плагин не работает. К счастью у меня установлен ещё 2008-й.

DDS пашет на блице как альфа, так и маска, но надо в плагине при сохранение ставить не DXT3, а DXT5.

Вывод: маска таким сделанная таким образом получается без чёрных пикселей.
Прозрачность не везде заюзать можно, ибо противный туннельный эффект, проблему решил с помощью этой библиотеки, спокойно работает на последней версии блица.

P. S. Библиотека выше нифига не помогает в случае с ашадовом.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оцените текстуру Данил Болтовня 11 16.01.2009 18:24
Развертка под текстуру Самурай Создание текстур 9 11.12.2008 19:19
Как отрендерить в текстуру? ABTOMAT 3D-программирование 13 16.06.2007 16:40
Глюки с рендером в текстуру Мах-7! Diplomat 3D Моделирование 5 18.04.2006 23:41


Часовой пояс GMT +4, время: 15:02.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com