2015-04-25 4 views
0

Я пытаюсь отобразить текстуру на плоскости, я знаю координаты вершин для текстуры и координаты для 4 вершины. Тогда как я могу вычислить координаты текстуры uv для 4 вершин?Как вычислить координаты uv для вершин, если я знаю координату вершины моей текстуры на плоскости

Вот картинка, чтобы показать вам, что я пытаюсь сделать,

enter image description here

Желтый с сеточной области моя текстура, это квадратная текстура перекос в эту форму. Зеленая область - это мой самолет, на который я хочу отобразить свою текстуру. Я знаю координаты вершин для точки a, b, c, d, а также пункт 1, 2, 3, 4.

Например, если моя текстура распологается как этот

enter image description here

Те координаты вершин для всех точек. Тогда уф координата точки a, b, c, d должен быть (-0.5f, -0.5f), (1.5f, -0.5f), (1.5f, 1.5f), (-0.5f, 1.5f)

Но если текстура искажается как первая картина, как я могу вычислить ультрафиолетовые координаты точки a, b, c, d?

ответ

0

Где вы пытаетесь сделать это CPU или GPU? Предполагая, что CPU, что вы могли бы сделать, проецирует вершины вашей перекошенной плоскости на зеленую плоскость. Если вы думаете о зеленой плоскости в качестве экрана, на котором есть камера и, следовательно, связанные матрицы просмотра и проекции, вы можете проецировать каждую точку на ее поверхность, а затем находить расстояние от начала координат, которое находится в вашем случае в середине зеленой плоскости.

Из ваших тегов, похоже, вы используете OpenGL ES, используете ли вы фиксированную функцию или шейдеры? Какую библиотеку математики вы используете? GLM имеет glm :: project и glm :: unproject, которые в основном вы хотите получить here's ссылку на информацию об этом.

Here's Некоторые общие сведения о том, что вы хотите сделать, вы в основном хотите проецировать из 3D в 2D, а затем найти относительные расстояния на своем самолете.

Надеюсь, что это поможет.