Войти
Уголок творчестваСтатьиrigidLight Engine

Текстурные маски и их потенциальное использование

Автор:

Недавно мне в голову пришла такая идея - использовать текстурные маски для несколько нестандартных целей. Году в 2007 появилась информация о технологии мегатекстуры, разработанной Джоном Кармаком, ведь там прямо в саму эту мегатекстуру писались физические свойства поверхностей, которым те или иные участки мегатекстуры соответствуют, и некоторые другие плюшки. Тогда эта материя казалась мне сложной и непонятной, но недавно все изменилось.

Вкратце об идее:

- Текстура хранит данные в трех каналах по умолчанию (R, G, B) + один может быть добавлен опционально (A). Фактически, это позволяет записать внутри одной текстуры до четырех текстурных масок (если больше мы ничего в текстуру рисовать не будем).

- За счет своей простой структуры, текстурная маска является в определенной степени универсальным инструментом. Например, при помощи текстурной маски можно формировать слияние двух и более физических материалов, и организовывать переходы между ними. К примеру, наш объект - куб. На текстуре, наложенной на этот куб, мы рисуем металлические элементы, но по большей части на нем нарисовано дерево. При помощи текстурных масок мы можем контролировать переход между физическими материалами металла и древесины.

Возможные перспективы развития:

- Работа с искусственным интеллектом. Предположим, игрок находится на одной стороне стены, а бот-противник стоит напротив. В стене альфой прорисованы различные окна\щели\дыры, через которые по идее, бот увидел бы игрока, будь он таким же игроком. С одной стороны, можно поставить на месте каждого такого окна по энтити, которая подскажет боту, что он должен туда посмотреть? Как вариант - использовать текстурные маски, которые заменят боту эту тысячу энтитей. Конечно, такой подход отчасти не оптимален, ведь бот может бесконечно долго проверять каждое окошко, но оптимизация должна решить эту проблему.

- Работа со звуком. Допустим, в нашей игре главный герой - доблестный безымянный десантник с Марса, он празднует день рождения, но именно в этот день злобные демоны вылезли из своей берлоги, и теперь он обязан их покарать. Пол в некотором зале, где находится протагонист, не простой, а волшебный - в нем есть расщелины, через которые можно увидеть Ад и кучу других миров. А вот услышать он их не может, хотя по диздоку задумано, что должен слышать всю эту какофонию. Только вот расщелины и вид на психоделику сделаны у нас при помощи альфы и шейдеров, на самом деле пол - плашка. Есть вариант - наставить различных звуковых энтитей в нужных местах, и не париться. Делаем проще - используем все те же текстурные маски, только теперь они заменят собой нам звуковые энтити.

- Работа со светом. Здесь нам текстурная маска должна будет заменить множество различных источников освещения.

- Дополнительная работа с физикой. На сей раз, мы будем ставить уже энтити, взаимодействующие с физическим движком. Например, играя за Ивана Царевича, игрок подошел к окну, нарисованному в стене при помощи альфы, ветерок подул, и царевича сдуло. Ну и далее титр - вот до чего Ивана довело голодание по Брэггу.

Предполагаемые настройки:

- Для физической маски - смешиваемые физические материалы
- Для энтити-масок (те, что у нас ответят за ИИ, за звук и за свет) - список энтитей, которые будут располагаться в местах, отмеченных самыми яркими точками маски, их количество на всю маску, и пр.

27 декабря 2011

Комментарии [1]