Пока я ковырялся с определением видимости чанков, передо мной встала
проблема, как сделать что-то похожее на то, как это будет выглядеть в
будущем. Конечно, тупо сделать один шум Перлина на весь мир - совсем не
то, что должно получаться, с учетом всяких особенностей разных по
климату и возрасту областей, но я уже имел честь повстречаться с
некоторыми неприятностями.
Первая состоит в том, что шум, на самом
деле, не самая быстрая вещь, которую можно придумать. А если еще и
использовать много разного шума для разных особенностей ландшафта
(например, пещер, как это делается в других играх), это может оказаться
чрезвычайно медленно. Но, возможно, это не самая большая проблема -
никто не будет генерировать огромное количество чанков с максимальным
уровнем деталей, я полагаю. Однако, об этом еще придется подумать.
Вторая
же проблема несколько более забавна - обычный шум хорошо работает на
плоскости. И на первый взгляд тут есть серьезная проблема с тем, чтобы
потом обернуть эту плоскость вокруг шара или чего-то еще, то есть,
замкнуть в выбранных границах. В итоге не получается никакого плавного
перехода, и это очень плохо выглядит. Но, к счастью, есть несколько
методов решения этой проблемы - во-первых это четырехмерный шум,
во-вторых, библиотека, которую я использую, позволяет менять модель шума
и одна из моделей как раз называется "Сфера".
Конечно, применение
шума для создания интересного ландшафта дело увлекательное и я чуть было
не ударился в эту тему, забросив все остальное. Сразу же в голове
начали крутиться мысли о том, как можно было бы с помощью него создать
континенты и острова, молодые поросли гор с крутыми обрывами, каньоны и
овраги, и реки, и всё такое прочее. Но это тема еще на месяц работы, как
мне кажется. И, конечно, кроме формы ландшафта, должно быть и его
содержание, то есть, разные минералы и прочие породы тоже как-то должны
соответствовать форме этого ландшафта. Правда, тут есть и еще одна
будущая проблема - как можно увидеть, что получилось, в большом
масштабе? Форму в целом, в теории, можно натянуть на сферу и так и
рендерить, возможно, даже раскрасить текстуру в какие-то цвета, и,
конечно, чтобы не генерировать овердофига блоков, нужно делать это в
низком разрешении, но будет очень сложно узнать, что же получилось под
поверхностью. Вообще, интересно, как это можно было бы сделать, не
запуская после каждого мелкого изменения заново всю симуляцию и не
пытаясь что-то копать.
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий