Программно строить сетки - УФ-картирование - PullRequest
0 голосов
/ 24 февраля 2020

Я работаю над системой для процедурного построения сеток для «шахт», сейчас я не хочу достигать визуального совершенства. Я больше сосредоточен на основах c.

Я получил точку в котором я могу генерировать форму шахт и из этого генерировать 2 сетки, одну для земли и одну для «стен» шахты.

Теперь я работаю над получением УФ-картографирования Правильно, но моя проблема в том, что земля действительно трудно правильно сопоставить с UV-координатами, и в настоящее время я не могу сделать это правильно. Для тесселяции я использую ограниченную версию триангуляции Делоне, к которой я добавил суб-тесселяцию, которая просто разбивает треугольники хотя бы один раз и продолжает их разбивать, если площадь треугольника больше X.

Здесь 2D-рендеринг тесселяции, который выделяет контуры, треугольники и края constrained delaunay triangulation

Здесь результат 3D-рендеринга (с использованием трех. js и webgl) с применено мое текущее UV-картирование (карта смещения, пожалуйста, пока игнорируйте его).

3d rendering

Я наивно подходил к UV-картированию каждая вершина треугольника в сетке переводится в значения от 0 до 1 и все. Я думаю, что в теории это должно быть правильно, но проблема в том, что порядок вершин создает проблему, но если бы это было так, текстуру следует показывать повернутой или странно, а не просто странно И растянутой вот так.

Как только я получу правильное отображение UV, следующим шагом будет правильная реализация

Я сейчас пишу это в javascript, но любая подсказка или решение на любом языке будет в порядке, я не против конвертировать и / или переделывать его, чтобы он работал.

Моя цель - иметь возможность процедурно собрать me sh, отправить его нескольким клиентам и добиться одинакового визуального рендеринга. Мне нужно добавить немало кусочков после того, как этот другой шаг будет реализован, поэтому я не могу полагаться на шейдеры на стороне клиента, потому что в противном случае для сервера просто невозможно было бы разместить дорожки, тележки или что-то еще на земле. , Как только я разберусь с этими вещами, я переключусь на Unity 3D для рендеринга на стороне клиента, webgl и 3. В настоящее время используются js, чтобы иметь простой и быстрый способ просмотра того, что производится без необходимости. всей клиент-серверной инфраструктуры.

Есть предложения?

Спасибо!

1 Ответ

0 голосов
/ 25 февраля 2020

Я разобрался с проблемой в своем коде, хотя это было довольно глупо: по ошибке я добавил 3 UV-отображения на треугольник, а не 1 на точку, что привело к огромному визуальному беспорядку. Разобравшись с этим, я смог добиться того, что мне нужно!

https://www.youtube.com/watch?v=DHF4YWYG7FM

Еще много работы, но начинает выглядеть достойно!

...