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

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


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

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