Правильные функции плотности для местности на основе вокселей?
-
27-10-2019 - |
Вопрос
Мне удалось внедрить алгоритм марширующих кубов в C#. До сих пор я попробовал алгоритм, чтобы отобразить сферу. Это просто, потому что функция плотности не очень сложна для кода.
Но теперь я хочу получить алгоритм, чтобы пойти дальше и сделать несколько интересных мест для игр. Поэтому мне понадобятся правильные функции плотности для этой задачи. Первое, что приходит к моей голове, это объемный шум перлана. Это нормально, но я ищу местность без выпуклой формы, я имею в виду, без пещер и подобных геометрий к настоящему времени.
Хорошо, я знаю, что для этого карта простой высоты может выполнять работу, но я хочу, чтобы регенерированная воксельская местность. Какой тип функции плотности o Pseudocode мне понадобится их реализовать?
Решение
Вы можете легко преобразовать карту высоты в местность вокселей. Каждый пиксель в вашей высоте соответствует колонке вокселей в вашем мире вокселей. Для данного пикселя в высоте прочтите высоту. Затем итерация над каждым вокселем в соответствующем столбце и установите его на «твердый», если он меньше, чем ваша эталонная высота или «пустое», если это больше, чем ваша эталонная высота.
Вот некоторые образец кода с использованием Поливокс библиотека.