|
3D-программирование Вопросы, касающиеся программирования 3D мира |
24.02.2008, 23:54
|
#1
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Маска текстуры
Есть текстура травы, и маска. Необходимо с помощью маски сделать ненужные
участки на текстуре прозрачными.
Тобиш надо чтобы модель была в этом месте прозрачная. Подскажите как сделать?
Вот пример того, что мне надо, смотрите на траву (она плейн):
|
(Offline)
|
|
25.02.2008, 01:33
|
#2
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,742
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Маска текстуры
Аўтар, на скрине (RF Online, я не ошибся?) используется не маска, а альфа.
Смаый негеморный способ её юзать в блитзе - использовать форматы текстур с поддержкой альфа-канала (tga, png, dds)
В фотошопе открываем tga или dds (кроме png, с ним так не выйдет ) заходим в окошке Channdel в Alpha 1 и пихаем туда твою заранее нарисованную альфу, при сохранениии не забываем указать, что нам нужен альфа-канал.
В случае с png просто резинкой стираем там, где должно быть прозрачно.
При загрузке в Блитз юзаем флаг 2.
Не забываем о туннельном эффекте!
Если тебе нужна именно маска, то тут всё просто: пиксели на текстуре с цветом 0,0,0 (чёрный) означают прозрачные тексели.
Если у текстуры был альфа-канал, то маскироваться будет по нему, юзая пиксели с, опять же, чёрным цветом. Этот вариант предпочтительнее, т.к. позволяет избежать затемнения на и без того рваных краях маскированной текстуры.
При загрузке в Блитз используем флаг 4.
З.Ы.
Недостаток маски - рваные края
недостаток альфы - туннельный эффект
Тут уж выбирай сам, что тебе предпочтительнее.
З.З.Ы. ИМХО траву лучше делать маскированную и односурфейсную, иначе будешь париться с т.э. либо придётся делать каждый куст травый отдельным ентитём, что негативно скажется на производительности.
З.З.З.Ы. Есть либа для сортировки полигонов за авторством Тормоза и МихаилаВэ, которая помогает с туннельным эффектом. Опять же, сортировка поликов стоит FPS.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
25.02.2008, 02:02
|
#3
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Спасибо.
Скрин из Lineage 2.
Про маску либо я твое объяснение не понял, либо ты вопрос не понял.
У меня 2 текстуры, одна текстура растения, вторая маска.
В блитце можно замутить такое через 2 ети текстуры?
....
Ладно фиг с ней с маской, почти разобрался с альфой, буду её юзать.
Ещё раз спасибо.
....
Мда... Пока не всё идёт по плану...
....
Замучился уже, не получается (
Кто может мне объяснить как делать альфа канал в фотошопе на тга формате?
Последний раз редактировалось jimon, 25.02.2008 в 12:01.
|
(Offline)
|
|
25.02.2008, 03:01
|
#4
|
ПроЭктировщик
Регистрация: 23.09.2007
Сообщений: 126
Написано 11 полезных сообщений (для 16 пользователей)
|
Хм Линейка! Класные эффекты там... но опасная игруха! затягивает. как однаго маего друга затенула...
Для тровы используй Маску маска делается не из 2х текстуры а из й ты задаеш цвет тот что тебе нужно убрать и все!
Я бы на твоем месте сделал альфу (0. и маску для красивой травки..
юзай на форуе этот вопрос не раз поднимался ищи 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
Последний раз редактировалось jimon, 25.02.2008 в 12:02.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
25.02.2008, 03:05
|
#5
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Ответ: Маска текстуры
Чтото я сомневаюсь, что это мне подходит...
Меня интерисует как правильно сделать альфу по описанию автомата.
Что я делаю не так? Загружаю в фотожоп тга текстуру травы,
создаю маск канал альфа 1, копирую в него маску, сохраняю в тга формате,
при этом ставя галочку в альфу.
|
(Offline)
|
|
25.02.2008, 03:11
|
#6
|
ПроЭктировщик
Регистрация: 23.09.2007
Сообщений: 126
Написано 11 полезных сообщений (для 16 пользователей)
|
Ответ: Маска текстуры
Попробуй этот вариант то что я написал... Я думаю не пожелееш!
да кстати где смайлики это на самом деле 8 )
|
(Offline)
|
|
25.02.2008, 03:16
|
#7
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Если есть возможность юзать альфатекстуры, я не хочу применять лишние функции.
Будемс ждать автомата...
....
Мдаа теперь я знаю о какой дряблости говорил автомат (
Хотелось бы услышать про самый первый вариант, как правильно сделать.
Последний раз редактировалось jimon, 25.02.2008 в 12:03.
|
(Offline)
|
|
25.02.2008, 03:30
|
#8
|
ПроЭктировщик
Регистрация: 23.09.2007
Сообщений: 126
Написано 11 полезных сообщений (для 16 пользователей)
|
Ответ: Маска текстуры
Альфа это для прозрачных обьектов (типа для приведений или стекла)
а ты хочешь реал траву тебе по идеи нужно убрать ненужный цвет правильно?
MaskTextures тебе в этом поможет!
а полюбому необойтись без дополнительных функций!
|
(Offline)
|
|
25.02.2008, 03:37
|
#9
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Ответ: Маска текстуры
Эм. У меня 2 текстуры! Две!
Первая текстура травы, вторая маска.
И мне их надо прилепить на плейн так, чтобы всё что в маске
чёрное на самой текстуре не отображалось.
Както же это делается? Не зря ведь автор текстуры сделал к ней маску.
|
(Offline)
|
|
25.02.2008, 04:01
|
#10
|
ПроЭктировщик
Регистрация: 23.09.2007
Сообщений: 126
Написано 11 полезных сообщений (для 16 пользователей)
|
Хотя если так хечеш сделай как сказал ABTOMAT этот вариант тоже действует неплохо!
ts=LoadTexture ("44.png",2) грузи с таким пораметром!
Насчет фото шом png неплох.
чтоб сделать прозрачным в фото шопе просто ненужный цвет. удоли его через Ластик. сперва измени пораметр там где написано фон по нему 2 раза и переименуй на слой 0(примерно) и ластиком ненужный цвет удоли при сохранение когда появится окошко PNG Options
выбери Interlaced и все грузи текстуру...
...
Скорее это для 3д макса... а для языков програмирование в том числе Блиц используют 1ну текстуру без даполнений масок текстур...
...
это хотел?
Последний раз редактировалось jimon, 25.02.2008 в 12:03.
|
(Offline)
|
|
25.02.2008, 04:06
|
#11
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Ответ: Маска текстуры
Да знаю я как текстуры грузить...
Не надо мне удалять цвет, мне его маской скрыть надо.
Не весь зелёный скрылся.
И текстура тут одна, а я повторяю, у меня текстура и маска отдельно.
|
(Offline)
|
|
25.02.2008, 04:36
|
#12
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Ответ: Маска текстуры
Удаление цвета к красивости не приводит (
Нужна маска...
Где же ты товарищ автомат, рано спать ушёл...
|
(Offline)
|
|
25.02.2008, 12:57
|
#13
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,742
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Маска текстуры
Ну, спать я ушёл не рано, по моему часовому поясу было уже пол-первого, а уже завтра трудовой день)
В любом случае, я вернулся!
Тут всё верно! Щас сбацаю примерчик на блитзе! (Ждите примерно через полчаса-час)
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
25.02.2008, 13:22
|
#14
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,742
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Маска текстуры
Пример по альфа-каналу.rar
Вот-с, примерчик. Проверил - всё работает. Здесь юзаю DDS, как самый лучший формат для работы с графикой в Direct3D.
Если что непонятно, открывай фотошопом мои текстуры, смотри как оно сделано.
З.Ы. Для работы с DDS нужен Блитз версии 1.96 и выше.
(если нету, могу залить патч до версии 1.98)
З.З.Ы. Фотошоп КС2 открывает DDS, для более ранних версий нужен соотв. плугин.
dds.rar (распакуем, фигачим в папку Фотошоп\Plug-Ins\File Formats)
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
Последний раз редактировалось ABTOMAT, 25.02.2008 в 13:34.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
25.02.2008, 19:27
|
#15
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Ответ: Маска текстуры
Спасибо, выглядит хорошо!
ддс вот тока юзать в фотожопе немогу, но поставлю патч.
Поже будет время, сделаю свой куст и отпостюсь о том, что получилось.
Ещё раз спасибо.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Похожие темы
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
МАска и Альфа |
ЛысыЙ_Чук-Иванчук |
Создание текстур |
6 |
07.08.2010 23:58 |
Как явно задать масив? |
FLashMP |
2D-программирование |
6 |
25.12.2008 23:20 |
текстуры |
Samarik |
3D-программирование |
12 |
13.10.2008 09:42 |
Текстуры |
neoleg |
Болтовня |
3 |
01.08.2007 01:13 |
Маска |
Hellfalcon |
3D-программирование |
4 |
01.04.2007 22:35 |
Часовой пояс GMT +4, время: 08:16.
|