Category: лытдыбр

Учусь программировать. Marching Cubes

ч.5 Учусь программировать. Первый 2Д редактор карты.

Уточнение: я специально не использую сложную терминологию, а описываю все простым челочеческим языком :). Почему я не привожу код ?
Как уже писал ранее в постах, народ очень скуп на такие вещи и ограничивается небольшими пинками, поэтому до всего приходится доходить самому. Оно даже лучше, мозги тренируются и начинают работать в нужном направлении все лучше. Я считаю этот подход наиболее правильным, тем более что исходного кода в интернете масса, но вот понять его, незная направления, бывает довольно тяжело. Здесь же я описываю именно направление и стены об которые я долбился.

В ч.3 Я уже описывал как пытался постичь алгоритм Марширующих кубов, но не хватило терпения и знаний. Алгоритм интересен тем, что позволяет на регулярной сетке строить сложные 3Д объекты, а если его довести до ума, то можно строить 3Д модели практически любых размеров. Для меня это второй шаг на пути создания полностью изменяемого мира.
Все сложное начинается с чего то более простого, поэтому для начала я решил попробовать изучить упрощенный вид алгоритма Marching Squares - это 2-х мерный вариант марширующих кубов. Снова погрузившись в изучение статей, я с удивлением обнаружил, что 2Д вариант у меня есть практически в готовом виде - это был тот самый тайлинг земли из 2Д редактора (из предыдущей темы). Те же 16 разных видов кусочков карты из которых автоматически подбирается нужный пазл, лишь с небольшими изменениями. Сказать что я был рад - не то слово. Как оказалось позже я все же немного ошибся, но об этом дальше.

Итак, проглядев свой код, а также почитав описания теперь уже для 3Д варианта я решил перенести свой 2Д тайлинг земли на 3-х мерную сетку. Я также отписывался на форуме и мне подсказали примерно следующее >>"Я разобравшись с тайлингом 2Д, перенес его с 3Д и только потом узнал, что это уже сделано 20 лет назад и называется marching cube..."
Дело казалось нехитрым, тем более, что я уже игрался с кубическими чанками и как построить сложные объекты из более мелких не было трудностью.

Collapse )