Широкоформатная текстура CLOD Planet в OpenGL

Я заканчиваю 3D-планету с ROAM (непрерывный уровень детализации).

Теперь моя цель - иметь рендеринг хорошего качества с использованием текстур.

Я пытаюсь найти способ, которым я могу использовать систему черепицы (небольшие хорошие текстуры вместе взятые), но в какой-то мере я могу воспользоваться своей сеткой CLOD.

Текущие алгоритмы (из того, что я нашел) с использованием этих систем черепицы создают огромную текстуру, а затем прямо ее применяют. Это не то, что я хочу... Планета очень большая, и я хочу больше энергии, чем просто увеличение размера текстуры.

Есть ли какой-либо известный алгоритм/функция opengl для такого рода вещей?

Я не знаю много о шейдерах, но возможно ли создать тот, который рисует объекты в одиночку... Я имею в виду, не давая texcoords, но устанавливая правильный цвет для каждого пикселя (а не вершины) сетки

PS: Мой мир построен с использованием шума perlin... поэтому я могу получить высоту в любой точке мира (карта высоты с бесконечным разрешением)

Ответ 1

Вы использовали 3D-шум Perlin для местности, почему бы не создать текстуру? Как правило, такие программы, как Terragen, Vistapro и т.п., используют высоту, чтобы случайным образом выбирать диапазон цветов из палитры, изменять этот цвет на основе наклона и, возможно, добавлять детали из меньших текстур, основанных как на склоне, так и на высоте. В вашем случае расстояние может также изменять детали. В этом случае 2d perlin noise будет хорошо работать для детализации текстуры.

Вы вообще изменили карту высот? Что-то вроде океана было бы трудно достичь с помощью чистого 3D-шума Perlin, но сгладить все под определенной высотой и применить красивую алгоритмическую текстуру океана (правильно настроенный 2-й шум Perlin с прозрачностью ниже определенного уровня) будет хорошо выглядеть.