Координаты текстуры для динамического рельефа - OpenGL - PullRequest
2 голосов
/ 06 июля 2011

Может ли кто-нибудь описать общий метод, используемый для вычисления координат текстуры для местности, которая динамически меняет каждый кадр?У меня есть функция перлин-шума, реализованная в вершинном шейдере, и ландшафт анимируется кадр за кадром.Рельеф очень горный (неровный и очень шумный).Я думал, что могу нанести пару больших текстур линейно по всей местности, и мульти-текстуру во фрагментном шейдере, основанную на высоте, но это приведет к тому, что текстуры будут выглядеть растянутыми в местах большой прибавки / потери высоты, верно?У меня возникают проблемы с выяснением того, как рассчитать координаты текстуры в вершинном шейдере, чтобы текстура хорошо смотрелась по всей местности и могла быть многократно текстурирована для деталей.Я ищу указатели относительно того, какие методы существуют для этого в OpenGL.Могу ли я использовать glTexGen для чего-то подобного ??

1 Ответ

1 голос
/ 06 июля 2011

Для этого не используется "общая техника", потому что в этом нет ничего общего. У вас есть потребности, которые являются специфическими для вашего использования. Трудно понять, чего вы хотите, потому что вы, похоже, сами не имеете в виду какую-то конкретную цель, кроме как «наложить текстуру на этот изменяющийся ландшафт».

glTexGen вам не поможет, так как работает только на уровне каждой вершины. Если вы беспокоитесь о том, чтобы простираться над областями великих перемен, это не поможет.

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

...