Создать 3D-сетку из разных кубических карт глубины - PullRequest
0 голосов
/ 15 сентября 2018

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

enter image description here

Также у меня есть небольшие проблемы с соединением кубических граней.

Возможно, моя реализация слишком наивна, я просто использую:

zVal = 0.5f;
xVal = ((float)x / (float)imageWidth ) - 0.5f;
yVal = ((float)y / (float)imageHeight ) - 0.5f;
distance = sqrt(xVal*xVal + yVal*yVal + zVal*zVal);
vertexPos.x = xVal * imageValue / distance;
vertexPos.y = yVal * imageValue / distance;
vertexPos.z = zVal * imageValue / distance;

(яЗнайте, что приведенный выше код не является полным, но он не является предметом вопроса, но если у вас есть какой-либо совет, то это приветствуется!)

Я делаю это для каждого лица куба и применяю необходимое преобразованиедля каждой грани куба, и я повторяю для каждой кубической карты (показанное изображение использует только одну кубическую карту)

Хорошо, теперь у меня есть вершина, и вот мои вопросы:

  • Есть ли какой-либо известный методудалить детали низкой частоты?Я имею в виду сделать плоские поверхности более «плоскими»
  • Существует ли какой-либо известный метод удаления вершин в этих плоских областях для сохранения ненужных данных?
  • Есть ли какие-либо рекомендации по созданию поверхности из облаков точек?Я пробовал http://www.cs.jhu.edu/~misha/Code/PoissonRecon/Version10.02/, и результат приемлем, но не оптимален.enter image description here

Заранее спасибо

...