Рассчитать медианный 3D вектор (вместо среднего)? - PullRequest
0 голосов
/ 26 мая 2018

У меня есть трехмерная сетка, для которой я вычисляю нормали вершин, исходя из нормали грани сетки.Каждая нормаль вершины вычисляется как среднее от всех нормалей граней, которые разделяют эту вершину.

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

Box

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

Итак, мой вопрос: можно ли вычислить медиану вектора вместо среднего?Вот дополнительное изображение для дальнейшей иллюстрации:

Median

1 Ответ

0 голосов
/ 27 мая 2018

Нашел решение здесь:

https://knowledge.autodesk.com/search-result/caas/CloudHelp/cloudhelp/2015/ENU/Max-SDK/files/GUID-0FCB4578-77F8-4F05-99CD-349E85F13639-htm.html

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

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

...