ThreeJS UV Mapping на модели Umbrella - PullRequest
       115

ThreeJS UV Mapping на модели Umbrella

0 голосов
/ 22 сентября 2018

У меня есть особая проблема, для которой я не смог найти решение.Я делаю программное обеспечение для нанесения изображения на 3D-модель зонтика.Модель зонтика динамически создается на основе некоторых параметров, вставленных администратором системы.

До сих пор я успешно создал модель и применил планарное отображение.Это прекрасно работает, если вы посмотрите на зонт сверху, так как нет искажений.

enter image description here

Но, если вы посмотрите на модель ссторона, там происходит значительное искажение изображения.Чем вертикальнее сторона зонтика, тем больше искажений, что вполне понятно для плоского картирования.

enter image description here

Это становится действительно очевидным, когдаКомпания, для которой это делается, печатает текстуру зонта для создания фактического зонта.

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

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

РЕДАКТИРОВАТЬ: Вот как я сейчас рассчитываю УФ-картирование для вершины:

 public static CalculateUV(vertice: Vector3, maxX: number, maxZ: number): Vector2 {
   const u = vertice.x / maxX;
   const v = vertice.z / maxZ;
   return new Vector2(u, v);
 }
...