2012-02-19 6 views
1

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

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

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

ответ

2

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

: sample code с помощью библиотеки PolyVox.

+0

Спасибо. Я думаю, что это хороший подход! – B3y0nd3r