Transvoxel / Marching Cubes, смешанные для каждой ячейки текстурирования - PullRequest
0 голосов
/ 08 октября 2019

Я реализовал алгоритм Transvoxel в Unity для создания процедурного ландшафта. Эта система работает довольно хорошо, и она действительно эффективна.

Однако у меня есть две небольшие проблемы с ней. В настоящее время я использую текстурный атлас с UV для создания текстур на ячейку, это работает, но на «склонах» система отбирает неправильную текстуру. Это может быть решено, однако, с помощью UV-карт на сетке, сгенерированной алгоритмом, грубые изменения текстуры (например, изменения поверхности травы в песок). Так что между ними нет смешения.

Теперь Transvoxel изначально использует трипланарное картирование для текстурирования ландшафта. Есть два основных проблемы с этим решением. Во-первых, он не слишком производительный, и, во-вторых, с его помощью нельзя добиться текстурирования на ячейку.

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

Теперь мой вопрос будет таким: Как вы думаете, что будет лучшим решением для текстурыэти сетки?

Ps .: Если что-то неясно или вам нужен код текущего способа текстурирования, не стесняйтесь спрашивать об этом, и я поделюсь этим.

...