Правильные функции плотности для ландшафтов на основе вокселей? - PullRequest
1 голос
/ 19 февраля 2012

Мне удалось реализовать алгоритм Marching Cubes в C #.До сих пор я пробовал алгоритм рендеринга сферы.Это легко, потому что функция плотности не очень сложна для кодирования.

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

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

1 Ответ

2 голосов
/ 19 февраля 2012

Вы можете легко преобразовать карту высот в ландшафт вокселов. Каждый пиксель в вашей карте высот соответствует столбцу вокселей в вашем мире вокселей. Для данного пикселя в карте высот читать высоту. Затем выполните итерацию по каждому вокселю в соответствующем столбце и установите для него значение «solid», если оно меньше вашей базовой высоты, или «пусто», если оно больше вашей базовой высоты.

Вот пример примера кода с использованием библиотеки PolyVox .

...