Проблемы с марширующими кубиками и текстурными координатами - PullRequest
3 голосов
/ 03 января 2012

Я реализую алгоритм MC в OpenGL.

Все шло хорошо, пока я не достиг точки с координатами текстуры.

Я не могу понять, как их реализовать!

Мой прогресс:

img

Редактировать: Я хочу заархивировать, чтобы поместить некоторые текстуры в мои сгенерированные треугольники MC.Насколько я понимаю, мне нужно сообщить координаты OpenGL uv, но я не знаю, как их вычислить.

Ответы [ 2 ]

4 голосов
/ 03 января 2012

Типичные алгоритмы генерации текстурных координат для алгоритмов движущегося куба - это использование карт окружения.

Короче говоря, вы вычисляете нормали вершин в каждой вершине путем усреднения нормалей граней всех граней, а затем отбрасываете координату z нормали и используете (x / 2 + 0.5, y / 2 + 0.5) как ( и, v) текстуры-координаты.

Установите текстуру с красивым белым пятном посередине и некоторой структурой, заполняющей остальную часть текстуры, и вы получите вид серебряного робота-терминатора два

3 голосов
/ 03 января 2012

Мне нужно сообщить координаты OpenGL uv, но я не знаю, как их вычислить.

Там вы столкнулись с большой проблемой: топология того, что исходит от MC, может быть любой. Топология текстуры в OpenGL представляет собой (гипер) тор (GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D) или сферу (GL_TEXTURE_CUBE_MAP).

Так что неизбежно вам придется разрезать свою поверхность на так называемые карты. Это нетривиальная задача, но добрая стратегия заключается в разрезе областей с высокой кривизной. Смотрите статью

«Конформные карты наименьших квадратов для автоматической генерации атласа текстуры»

Бруно Леви, Сильвен Петитжан, Николас Рэй и Жером Майо

http://alice.loria.fr/index.php/publications.html?Paper=lscm@2002

за грязные детали.

...