У меня есть особая проблема, для которой я не смог найти решение.Я делаю программное обеспечение для нанесения изображения на 3D-модель зонтика.Модель зонтика динамически создается на основе некоторых параметров, вставленных администратором системы.
До сих пор я успешно создал модель и применил планарное отображение.Это прекрасно работает, если вы посмотрите на зонт сверху, так как нет искажений.
![enter image description here](https://i.stack.imgur.com/sgUzj.png)
Но, если вы посмотрите на модель ссторона, там происходит значительное искажение изображения.Чем вертикальнее сторона зонтика, тем больше искажений, что вполне понятно для плоского картирования.
![enter image description here](https://i.stack.imgur.com/9cWQ2.png)
Это становится действительно очевидным, когдаКомпания, для которой это делается, печатает текстуру зонта для создания фактического зонта.
То, что я ищу, - это предложение по модели картографии, чтобы использовать для максимально возможного уменьшения видимых искажений (очевидно, будетвсегда будут какие-то искажения).В идеале должно быть равномерное искажение по всему зонту, и не больше искажения, чем более вертикальный зонтик, что происходит сейчас с плоской проекцией.
Я не математик, поэтому была бы очень признательна какая-то формула формулы 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);
}