forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Маска текстуры (http://forum.boolean.name/showthread.php?t=5794)

Crystal 24.02.2008 23:54

Маска текстуры
 
Есть текстура травы, и маска. Необходимо с помощью маски сделать ненужные
участки на текстуре прозрачными.
Тобиш надо чтобы модель была в этом месте прозрачная. Подскажите как сделать?

Вот пример того, что мне надо, смотрите на траву (она плейн):


ABTOMAT 25.02.2008 01:33

Ответ: Маска текстуры
 
Аўтар, на скрине (RF Online, я не ошибся?) используется не маска, а альфа.

Смаый негеморный способ её юзать в блитзе - использовать форматы текстур с поддержкой альфа-канала (tga, png, dds)

В фотошопе открываем tga или dds (кроме png, с ним так не выйдет :)) заходим в окошке Channdel в Alpha 1 и пихаем туда твою заранее нарисованную альфу, при сохранениии не забываем указать, что нам нужен альфа-канал.

В случае с png просто резинкой стираем там, где должно быть прозрачно.

При загрузке в Блитз юзаем флаг 2.

Не забываем о туннельном эффекте!

Если тебе нужна именно маска, то тут всё просто: пиксели на текстуре с цветом 0,0,0 (чёрный) означают прозрачные тексели.

Если у текстуры был альфа-канал, то маскироваться будет по нему, юзая пиксели с, опять же, чёрным цветом. Этот вариант предпочтительнее, т.к. позволяет избежать затемнения на и без того рваных краях маскированной текстуры.

При загрузке в Блитз используем флаг 4.

З.Ы.

Недостаток маски - рваные края
недостаток альфы - туннельный эффект


Тут уж выбирай сам, что тебе предпочтительнее.

З.З.Ы. ИМХО траву лучше делать маскированную и односурфейсную, иначе будешь париться с т.э. либо придётся делать каждый куст травый отдельным ентитём, что негативно скажется на производительности.

З.З.З.Ы. Есть либа для сортировки полигонов за авторством Тормоза и МихаилаВэ, которая помогает с туннельным эффектом. Опять же, сортировка поликов стоит FPS.

Crystal 25.02.2008 02:02

Спасибо.
Скрин из Lineage 2.
Про маску либо я твое объяснение не понял, либо ты вопрос не понял.
У меня 2 текстуры, одна текстура растения, вторая маска.
В блитце можно замутить такое через 2 ети текстуры?

....

Ладно фиг с ней с маской, почти разобрался с альфой, буду её юзать.
Ещё раз спасибо.



....

Мда... Пока не всё идёт по плану...



....

Замучился уже, не получается (
Кто может мне объяснить как делать альфа канал в фотошопе на тга формате?


-=SCiP=- 25.02.2008 03:01

Хм Линейка! Класные эффекты там... но опасная игруха! затягивает. как однаго маего друга затенула...
Для тровы используй Маску маска делается не из 2х текстуры а из й ты задаеш цвет тот что тебе нужно убрать и все!
Я бы на твоем месте сделал альфу (0.8)и маску для красивой травки..
юзай на форуе этот вопрос не раз поднимался ищи FilterTexture!

Вот... с этого форума скачал я.
Код:

Function MaskTextures(Texture,R,G,B)
 Local MColor = (R Shl 16) Or (G Shl 8) Or B
 Local MSizeX = TextureWidth (Texture)
 Local MSizeY = TextureHeight (Texture)
 Local MBuffer = TextureBuffer (Texture)
LockBuffer (MBuffer)
  For x = 0 To MSizeX
  For y = 0 To MSizeY
Pixel = ReadPixel (x,y, MBuffer) And $00FFFFFF
  If (Pixel = MColor) Then
    WritePixel (x,y, Pixel, MBuffer)
  Else
    WritePixelFast (x,y, Pixel Or $FF000000,MBuffer)
    EndIf
  Next
    Next
UnlockBuffer (MBuffer)
End Function


Crystal 25.02.2008 03:05

Ответ: Маска текстуры
 
Чтото я сомневаюсь, что это мне подходит...
Меня интерисует как правильно сделать альфу по описанию автомата.
Что я делаю не так? Загружаю в фотожоп тга текстуру травы,
создаю маск канал альфа 1, копирую в него маску, сохраняю в тга формате,
при этом ставя галочку в альфу.


-=SCiP=- 25.02.2008 03:11

Ответ: Маска текстуры
 
Попробуй этот вариант то что я написал... Я думаю не пожелееш!
да кстати где смайлики 8) это на самом деле 8 )

Crystal 25.02.2008 03:16

Если есть возможность юзать альфатекстуры, я не хочу применять лишние функции.
Будемс ждать автомата...

....

Мдаа теперь я знаю о какой дряблости говорил автомат (
Хотелось бы услышать про самый первый вариант, как правильно сделать.


-=SCiP=- 25.02.2008 03:30

Ответ: Маска текстуры
 
Альфа это для прозрачных обьектов (типа для приведений или стекла)
а ты хочешь реал траву тебе по идеи нужно убрать ненужный цвет правильно?
MaskTextures тебе в этом поможет!
а полюбому необойтись без дополнительных функций!

Crystal 25.02.2008 03:37

Ответ: Маска текстуры
 
Эм. У меня 2 текстуры! Две!
Первая текстура травы, вторая маска.
И мне их надо прилепить на плейн так, чтобы всё что в маске
чёрное на самой текстуре не отображалось.
Както же это делается? Не зря ведь автор текстуры сделал к ней маску.


-=SCiP=- 25.02.2008 04:01

Вложений: 1
Хотя если так хечеш сделай как сказал ABTOMAT этот вариант тоже действует неплохо!
ts=LoadTexture ("44.png",2) грузи с таким пораметром!
Насчет фото шом png неплох.
чтоб сделать прозрачным в фото шопе просто ненужный цвет. удоли его через Ластик. сперва измени пораметр там где написано фон по нему 2 раза и переименуй на слой 0(примерно) и ластиком ненужный цвет удоли при сохранение когда появится окошко PNG Options
выбери Interlaced и все грузи текстуру...
...
Скорее это для 3д макса... а для языков програмирование в том числе Блиц используют 1ну текстуру без даполнений масок текстур...
...
это хотел?

Crystal 25.02.2008 04:06

Ответ: Маска текстуры
 
Да знаю я как текстуры грузить...
Не надо мне удалять цвет, мне его маской скрыть надо.

Не весь зелёный скрылся.
И текстура тут одна, а я повторяю, у меня текстура и маска отдельно.

Crystal 25.02.2008 04:36

Ответ: Маска текстуры
 
Удаление цвета к красивости не приводит (
Нужна маска...
Где же ты товарищ автомат, рано спать ушёл...


ABTOMAT 25.02.2008 12:57

Ответ: Маска текстуры
 
Ну, спать я ушёл не рано, по моему часовому поясу было уже пол-первого, а уже завтра трудовой день)

В любом случае, я вернулся!



Тут всё верно! Щас сбацаю примерчик на блитзе! (Ждите примерно через полчаса-час)

ABTOMAT 25.02.2008 13:22

Ответ: Маска текстуры
 
Пример по альфа-каналу.rar

Вот-с, примерчик. Проверил - всё работает. Здесь юзаю DDS, как самый лучший формат для работы с графикой в Direct3D.

Если что непонятно, открывай фотошопом мои текстуры, смотри как оно сделано.

З.Ы. Для работы с DDS нужен Блитз версии 1.96 и выше.
(если нету, могу залить патч до версии 1.98)
З.З.Ы. Фотошоп КС2 открывает DDS, для более ранних версий нужен соотв. плугин.
dds.rar (распакуем, фигачим в папку Фотошоп\Plug-Ins\File Formats)

Crystal 25.02.2008 19:27

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

FrankH 25.02.2008 23:54

Ответ: Маска текстуры
 
Тему в юмор :-D . ДДС не всегда самый лучший. Альфа выглядит лучше, но тупит больше. Если использовать маску, проще сделать ее близкой к цвету текстуры и вырезать этот цвет(либ для этого не надо), тогда не будет черной окантовки, и травы такой можно сделать больше чем с альфой. Зачем вторая текстура так и не понял.. наверное после макса хочется чтоб было две.. :)
ABTOMAT, фотошоп(покрайней мере тот что у меня стоит) с .PNG вобще не умеет работать, вместо альфы сохраняет что попало.
Если нужна альфа, то на месте автора я бы кинул тексу с прозрачностью в максе на энвайронмент и рендернул в ДДС или ПНЖ.. делов на пару минут и все с альфой.

Crystal 26.02.2008 00:13

Ответ: Маска текстуры
 
Ну дык если просто, туториал в студию.

Crystal 26.02.2008 01:56

Ответ: Маска текстуры
 
Возникла проблема, не могу в ддс экспортировать.
В плагине не работает кнопка SAVE!


HolyDel 26.02.2008 12:44

Ответ: Маска текстуры
 
попробуй DXT5 для альфы и 1 bit Alpha для маски.
Поищи на форуме, уже не раз писались функции для генерации текстуры с альфой из двух файлов, на одном картинка, на другом альфа.

Crystal 28.02.2008 01:49

Ответ: Маска текстуры
 
Цитата:

попробуй DXT5 для альфы и 1 bit Alpha для маски.
Флажки чтоли поставить?
Я уже все флажки и галки перетыкал, кнопка сейв не активируется.

Люди, не могу экспортировать в ддс. Быть может кто-нибудь согласиться
из моих текстур и масок сделать ддс файл? Я пришлю по почте.

FrankH 28.02.2008 03:31

Ответ: Маска текстуры
 
Цитата:

Сообщение от Blitzerg (Сообщение 77988)
Ну дык если просто, туториал в студию.

1. Открываем Макс, создаем плейн во фронтальном вьюпорте и приближаем вьюпорт так чтобы плейн закрыл его полностью.
2. Жмем "М"(лат.) и применяем материал к плейну, кидаем в селфиллюминейшн материала диффуз-текстуру а в опасити альфа-текстуру, ставим обоим в настройках координат Environ->Screen(это установит тексу по центру рендер-камеры), в БлиннБейсикПараметрс свитке ставим галочку на Self-Illumination->Color и сводим Diffuse+Ambient цвета на черный, чтобы не рендернуть лишнего.
3. Жмем F10 и выбираем разрешение нашей текстуры, далее(тут лучше выбрать например Ментал и выставить хотябы 1 семпл на пиксель для более точной передачи) рендер и сохраняем в нужный формат(если формат с альфой или однобитной маской то в текстуре будет альфа или маска)
4. Если текстур много сохраняем сцену и меняем текстуры+разрешение рендера и рендерим.
П.С. в Максе поменьше настроек ДДС, но основные есть, а главное кнопочка работает.(хотя в плагине к фотошопу тоже работает)

ABTOMAT 28.02.2008 17:03

Ответ: Маска текстуры
 
Blitzerg, чтобы появилась кнопка Save текстура должна быть размером степени двойки (256*256 например, т.е. 2^8)
Также перед экспортом слей всё в один слой, установи RGB-цвет (Image - Mode - RGB Color), если этого не было сделано по умолчанию

-=SCiP=- 01.03.2008 16:46

Ответ: Маска текстуры
 
Blitzerg
Слышал про NVIDIA Photoshop_Plugins а точнее
NVIDIA Normal Map Filter
Это дополнение (Plugins) для ФотоШопа! Потом появляется импортеры и экспортеры ддс + ты можеш создовать текстуры света или дифузи...
Для более реалестификации...

-=SCiP=- 01.03.2008 18:10

Ответ: Маска текстуры
 
http://developer.nvidia.com/object/p...s_plugins.html

Черный крыс 01.03.2008 21:42

Ответ: Маска текстуры
 
С двумя текстурами - это тоже хороший вариант....тоесть максимально красивый получиться.

1-я текстура - карта прозрачности. !!! - только надо чтобы те места, которые будут прозрачными закрашивать в белый цвет, а не прозрачные - черным.

2-я текстура - карта света. это сама текстура на черном фоне.

- Рисуется так. - Сначала 1-я текстура с мультипликативным блендом. Затем текстура 2 с аддитивным блендом. И будет те щастье!

Alex_Noc 06.08.2008 21:48

Ответ: Маска текстуры
 
Люди у меня тоже проблема с рванными краями в маске возникла - перепробовал уже все - ниче не помогло - а тема эта так и не нашла решения - ибо пример Автомата был удален. У меня вобщем проблема в том что небо динамическое - но и забор должен быть с альфой - или маской а может и с тем и тем. Помогите уже незнаю хоронить мне проект или еще подождать :). С огромной уважуйхой :) - заранее спасибище :).

ABTOMAT 06.08.2008 23:00

Ответ: Маска текстуры
 
Вложений: 1
А вот и пример из того поста:cool:

ffinder 06.08.2008 23:58

Ответ: Маска текстуры
 
ABTOMAT:
что есть туннельный эффект?

Alex_Noc 07.08.2008 00:03

Ответ: Маска текстуры
 
Во во Автомат 6) - все дело в самой картинке :) ее надо правильно сделать. Я всеже добрался до глюка как у Blitzerg vbmenu_register("postmenu_78254", true); . Вобщем завтра отпишусь подробненько как сделать чистую маску. Но пока намекну что - все дело в самой картинке. :) а завтра - потому что должен проверить ибо у меня щас есть некая проблема - и если метод который я нашел позволит решить проблему то отпишусь. а щас всем спокуха! (Спокойной ночи!):)

Alex_Noc 07.08.2008 15:18

Ответ: Маска текстуры
 
Всем привет - вобщем проблема почему то не решилась методом которым решилась вроде вчера - но зато все же удалось решить ее другим методом. Собственно АВТОМАТ в примере таки заюзал его 6). И так само решение :
Текстура должна быть в формате DDS - DXT3 ARGB 8 bpp | explicing alpha
Чем размер больше тем меньше пикселей будет искриться при погашении света.
Для того чтобы ночью например небыло видно белой окантовки вокруг маски - я лично просто поставил цвет энтити(на который ложим маскированную текстуру) 127,127,127 - это решило проблему. Как работать с ддс вроде уже описывалось выше. Так что подглядите туды :). Метод правильный на 100%. Чтобы записывалась текстура - она должна быть кратна 2 , ибыть сжатой (Flatten image - на любой слой правой кнопярой и в самом низу будет флатен) . Альфаканал должен быть включен (глазик рядом стоять в каналах). теперь можно сохраняться. Кстати текстуру можно сделать 1 - в которой будет и маска (по альфаканалу) и цвет. Вроде так все -задавай те вопросы есил кто не понял.

ABTOMAT 07.08.2008 15:31

Ответ: Маска текстуры
 
Чтобы не было окантовки надо рисовать объект не на чёрном фоне, а на фоне цвета его самого (например, ёлку - на зелёном фоне) И сделать альфаканал. Даже в режиме маскированной текстуры не будет окантовки т.к. маска будет рассчитываться из альфаканала а не по чёрным пикселям

BlackDragon 07.08.2008 18:15

Ответ: Маска текстуры
 
Чтото я немного непонял, как это сделать в фотошопе? Можно по подробней?

Alex_Noc 07.08.2008 18:50

Ответ: Маска текстуры
 
Ты фотошоп хорошо знаешь? А то мож не стоит мучаться тебе обьснять - когда лучше залезть на сайт по фотошопу и научиться хоть принципам создания маски.


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot