¿Cómo aplico la perspectiva adecuada a esta textura OpenGL ES?

Me gustaría describir mi objetivo y obtener algunos comentarios de una solución propuesta. Soy bastante nuevo en OpenGL ES (o OpenGL en absoluto), así que por favor sea amable. También me gustaría mencionar que la plataforma es iPad (iOS) con sus restricciones de pertenencia.

Objetivo: Para permitir al usuario colocar vértices en los que una textura debe dibujarse correctamente en la perspectiva correcta (o al menos en una perspectiva ajustable). Para explicar lo que quiero decir, considere el siguiente ejemplo.

Digamos que tenemos una fotografía de una casa con un césped correspondiente en frente de ella. Ahora, quiero pavimentar una ruta especificada (usuario) con mosaicos (textura) de modo que la perspectiva se vea correcta. Si la vista es simplemente ortogonal, los mosaicos serán completamente cuadrados, lo que no es realista cuando se tiene algún tipo de profundidad en la imagen.

Ahora, un enfoque sería configurar una vista en perspectiva con un frustum en OpenGL ES. Luego ponga un plano (como abajo) y ponga la textura de la imagen para empezar.

Ahora como espera del aspecto de la imagen de arriba, la imagen se distorsionará. Pero está bien porque si inclinamos el plano hacia atrás (para que se ajuste perfectamente a los límites de la pantalla) la imagen aparecerá cuadrada.

Si el usuario ahora define el área a pavimentar, podemos colocar esos puntos en el mismo ángulo que el plano inclinado, y luego colocar una textura con mosaicos cuadrados en ella, y aparecerán con una perspectiva. Si nuestro ángulo de inclinación es incorrecto, el usuario puede ajustarlo manualmente, lo que sucede es que los ángulos de las esquinas del plano en la figura anterior se ajustarán y el plano se inclinará de manera diferente para adaptarse a la pantalla. La textura de los azulejos aparecerá desde un ángulo diferente.

¿Es este un enfoque viable o hay alguna otra forma mejor de hacerlo? Creo que es un truco feo que podría tener que ver con mis habilidades limitadas en la programación 3D.

Respuestas a la pregunta(2)

Su respuesta a la pregunta