[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 41234»
Форум Panda3D - по русски » Panda3D » Общие вопросы » TextureStage и Terrain (наложение текстур по слоям.)
TextureStage и Terrain
DrEmeridoДата: Понедельник, 16.05.2011, 13:09 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 9
Награды: 0
Репутация: 0
Статус: Offline
Добрый день.
Я на вашем форуме новенький.
Вопрос в следующем:
Необходимо натянуть на рельеф несколько текстур исходя из альфа-канала.
Если кто сталкивался с такой проблемой и решил ее, пожалуйста помогите советом.
 
ninthДата: Понедельник, 16.05.2011, 16:43 | Сообщение # 2
Admin
Группа: Администраторы
Сообщений: 1554
Награды: 5
Репутация: 46
Статус: Offline
Не совсем понял что значит исходя из альфа канала. Тебе нужно просто наложить несколько текстур с альфой друг на друга или...
Подозреваю что хочешь использовать маску наложения? Т.е. указывать где какую текстуру накладывать с помощь другой тестуры-маски. Если да, то где-то видел вариант - могу поискать. Сразу оговорюсь что работать это будет через шейдеры.
 
DrEmeridoДата: Понедельник, 16.05.2011, 16:54 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 9
Награды: 0
Репутация: 0
Статус: Offline
Да, если можно с примером.
Я в 3Д новичок, и по поводу этой проблемы уже бьюсь 3 дня.
Буду очень благодарен.

PS: И вообще какие еще есть варианты мульти-текстурирования и какой вариант лучше с точки зрения реализации/ресурсоемкости?

Сообщение отредактировал DrEmerido - Понедельник, 16.05.2011, 17:07
 
serg-kkzДата: Понедельник, 16.05.2011, 18:11 | Сообщение # 4
Генерал-лейтенант
Группа: Модераторы
Сообщений: 679
Награды: 3
Репутация: 16
Статус: Offline
Вот если ты имел ввиду это, а по маске мне самому интересно знать.

В моём примере лишняя строка

layer2.setColor(Vec4(1, 0, 0, 1))

Прикрепления: Texture.rar(553Kb)


ООП  -  

Сообщение отредактировал serg-kkz - Понедельник, 16.05.2011, 18:49
 
DrEmeridoДата: Понедельник, 16.05.2011, 18:47 | Сообщение # 5
Рядовой
Группа: Пользователи
Сообщений: 9
Награды: 0
Репутация: 0
Статус: Offline
Нет, это то все понятно.
Нужно достичь следующего:
есть 4 картинки: 2 текстуры и 2 маски.
текстуры накладываются на некий объект по эти маскам и разделены на слои с возможностью изменения их порядка.
 
serg-kkzДата: Понедельник, 16.05.2011, 19:05 | Сообщение # 6
Генерал-лейтенант
Группа: Модераторы
Сообщений: 679
Награды: 3
Репутация: 16
Статус: Offline
Я понял о чем ты, парядок можно и в этом примере поменять.

ООП  -  
 
ninthДата: Понедельник, 16.05.2011, 19:12 | Сообщение # 7
Admin
Группа: Администраторы
Сообщений: 1554
Награды: 5
Репутация: 46
Статус: Offline
Здесь пример с шейдером

Используется 8 текстур (в папке data ): http://narod.ru/disk/13093796001/TerrainMultitex.zip.html
default.png - карта высот
default_l.png - теневая карта
default_c.png - Базовый цвет
default_d.png - Маска. Для экономии ресурсов используются все 4 канала (RGBA) - каждый в качестве самостоятельной маски. По ним накладываются текстуры деталировки:
grayRock.png hardDirt.png bigRockFace.png shortGrass.png

з.ы. При старте ничго не увидите т.к. Камера находится в 0 0 0 - надо стандартным управлением отодвинуть камеру, а так результат примерно следующий:

з.з.ы. Мультитекстуры - штука довольно ресурсоёмкая так что злоупотреблять ими не стоит - по возможности их лучше собирать в одну.

Прикрепления: 3554154.jpg(65Kb)
 
serg-kkzДата: Понедельник, 16.05.2011, 19:20 | Сообщение # 8
Генерал-лейтенант
Группа: Модераторы
Сообщений: 679
Награды: 3
Репутация: 16
Статус: Offline
в demomaster, че то такое видел... или... другое?

ООП  -  
 
DrEmeridoДата: Понедельник, 16.05.2011, 19:43 | Сообщение # 9
Рядовой
Группа: Пользователи
Сообщений: 9
Награды: 0
Репутация: 0
Статус: Offline
спасибо большое.
хотя если я правильно понял... если нужно больше 4 текстур то нужно писать другой шейдер...?

ps. Посоветуйте пожалуйста ресурс или книгу по шейдерам.

Сообщение отредактировал DrEmerido - Понедельник, 16.05.2011, 21:38
 
dis_nodeДата: Понедельник, 16.05.2011, 22:18 | Сообщение # 10
Лейтенант
Группа: Пользователи
Сообщений: 56
Награды: 0
Репутация: 2
Статус: Offline
Извиняюсь еси туплю, но в мануале 'мультитекстуринг' изложен без шейдеров TextureStage+альфа+приоритет, врубать шейдеры это уже гламур). Для альфы маска не обязательна я через .png грузил.

Сообщение отредактировал dis_node - Понедельник, 16.05.2011, 22:21
 
DrEmeridoДата: Понедельник, 16.05.2011, 22:21 | Сообщение # 11
Рядовой
Группа: Пользователи
Сообщений: 9
Награды: 0
Репутация: 0
Статус: Offline
Ты его сам делал...?
Если делал, пример в студию. Потому как у меня ничего не получилось...(


Сообщение отредактировал DrEmerido - Понедельник, 16.05.2011, 22:26
 
ninthДата: Вторник, 17.05.2011, 00:27 | Сообщение # 12
Admin
Группа: Администраторы
Сообщений: 1554
Награды: 5
Репутация: 46
Статус: Offline
Quote (serg-kkz)
в demomaster, че то такое видел... или... другое?

Возможно ) В демомастере много чего есть, но что касается данного конкретного примера, то он с оффорума. Кстати, там он позиционировался как загрузка в панду моделей, сделанных в EarthSculptor.

Quote (dis_node)
врубать шейдеры это уже гламур)

В данном случае - нет. Без шейдера не получится. Здесь не чистый мультитекстуринг. Суть процесса - на модель накладывается сначала обычная текстура (colormap), после чего поверху затайливается текстурами детализации, но текстуры детализации выводятся по маске в качестве которой взят один из каналов ещё одной текстуры.

Quote (DrEmerido)
нужно писать другой шейдер...?

Да - минус данного способа в этом, но на самом деле не уверен, что реально потребуется больше 4-х текстур, т.к. совсем мелкую детализацию (например несколько лежащих под кустом листиков) лучше выполнять декалями или чем-то подобным. Показанный же способ используется для детализации больших площадей ландшафта.
По книгам, к сожалению, ничего не могу подсказать - сам когда потребовалось собирал по кускам инфу из разных статей. Могу лишь сказать что:
1. Используется язык Cg так что если что ищи инфу именно по нему
2. Панда имеет свою специфику - по этому поводу стоит заглянуть в раздел шейдеров мануала на офф сайте
3. Шейдеры - это по большей части алгебра векторов и матриц, так что если думаешь серьёзно их копать, то стоит так же запастись соотв. литературой. Ну а в общем случае обычно можно найти готовый шейдер и допилить под свои нужды не сильно углубляясь в матан. )
Прикрепления: 4424440.png(48Kb)
 
serg-kkzДата: Вторник, 17.05.2011, 10:50 | Сообщение # 13
Генерал-лейтенант
Группа: Модераторы
Сообщений: 679
Награды: 3
Репутация: 16
Статус: Offline
Quote (DrEmerido)
Посоветуйте пожалуйста ресурс или книгу по шейдерам

3D-ландшафты в реальном времени на С++ и DirectX9, автор: Грег Снук. Хотя панда DirectX не любит, но в будущем… Там изложены все аспекты в том числе и шейдер. Книга на русском языке.


ООП  -  
 
DrEmeridoДата: Вторник, 17.05.2011, 12:54 | Сообщение # 14
Рядовой
Группа: Пользователи
Сообщений: 9
Награды: 0
Репутация: 0
Статус: Offline
ninth, спасибо за содержательный ответ.
serg-kkz, если верить инфе: если писать шейдеры на Cg то они должны хорошо работать на современных видеокартах из под директа.
 
serg-kkzДата: Вторник, 17.05.2011, 16:48 | Сообщение # 15
Генерал-лейтенант
Группа: Модераторы
Сообщений: 679
Награды: 3
Репутация: 16
Статус: Offline
DrEmerido, какой? В мануале же по панде сказано поддержка DirectX у них на последнем месте. Шейдер передаётся панде с ожидаемыми инструкциями. Если они не поддерживаются 3D двигом, то видео карта их не получит ведь двиг их должен передать на языке низкого уровня, Cg
это уже язык высокого уровня.


ООП  -  
 
Форум Panda3D - по русски » Panda3D » Общие вопросы » TextureStage и Terrain (наложение текстур по слоям.)
Страница 1 из 41234»
Поиск: