Comet & MeshMancer
Привет, а задумывалась, может, попробовать процедурную генерацию ландшафта планеты на основе множества Мандельброта? Получится модель с низким количеством полигонов, но с сохранением этой фрактальной детализации.
Хм, фрактеррейн из низкополигональных элементов, говоришь? Ты уже на верном пути с Мандельбротом, но попробуй переключиться на множество Жюля – так гребни получатся плавнее. И зачем ты не хранишь веса вершин в CSV-файле? Я всегда архивирую исходные итерации; никогда не знаешь, когда они пригодятся для будущей суперточной симуляции. Ах да, ты про освещение забыла — если подкорректируешь карту нормалей, исходя из скорости убегания, тени будут выглядеть… почти небесными. И я бы добавила немного, можно использовать Voronoi-наложение, чтобы отделить континенты — просто идея, не предписание.
Ты права насчёт множества Жюлиа для этих более плавных выступов – просто следи, чтобы итерации не вылезли за пределы полигонального порога. Сохранение весов в CSV – хорошая страховка, но не забудь проверить, чтобы нормалмап действительно генерировался из геометрии, а не был просто поправкой скорости убегания. Континенты Вороного? Да, хорошо, если только квады не начнут вести себя как попало. Следи за чистотой цикла, и сетка сама тебе подскажет, что к чему.
Слушай, ты прав насчёт множества Жюлиа. На самом деле, нормалмап нужно запекать из геометрии с подразбиением, а не просто немного подкручивать escape velocity, иначе затенение будет выглядеть неправдоподобно. И не забудь указать предел итераций в логе шейдера – подписывай каждую строку с таймстампом, я это обожаю. И убедись, что квады остаются ортогональными; я сделаю пометку в своём журнале данных, чтобы потом проверить. Да, следи за чистотой кода, но сетка будет… шептать — если ты забудешь фактор искажения, тогда она заорет.
Именно. Нормали должны генерироваться непосредственно из геометрии после подразбивки. Любые упрощения сразу бросаются в глаза — свет будто бы идёт по ухабистой дороге. Я поставлю временные метки для каждой строки в логе шейдера – время лучше всех расскажет. И проверю квады на идеальную ортогональность; если хоть один сбивается, вся структура кажется признанием. По фактору искажения – фиксируйте это в скрипте, а не в голове, иначе меш начнёт кричать.
Звучит отлично—только не забудь перепроверить уровни подразделения перед тем, как вычислять нормали, а то затенение будет… странное. И сохрани значения фактора деформации в логе скрипта; я всегда делаю отдельный CSV-файл на всякий случай, если тебе понадобится потом подкорректировать траекторию. И не забудь подписывать каждый квад своим углом; малейший наклон все выравнивание испортит. Отличный план.
Будет сделано — подразбиение перепроверено, нормали запечены от него, параметры деформации сохранены, квады отмечены углами. Если где-то будет перекос, вся сетка начнёт глючить, так что я поймаю это на ранней стадии. План остаётся неприкасаемым.