Entiendo que la manera tradicional(es similar a la del triángulo y hacer valor de profundidad lineal) para deducir la perspectiva de la matriz de proyección. Pero quiero intentarlo de otra forma después de leer este texto: Fundamentos de la Asignación de Texturas y de Deformación de Imagen.
En la página 17, se dice que un quad puede ser asignado a un cuadrado con proyectiva de transformación, que puede ser expresada como un racional lineal de asignación:
$$\mathit{x} = \frac{\mathit{un}\mathit{u} + \mathit{b}\mathit{v} + \mathit{c}} {\mathit{g}\mathit{u} + \mathit{h}\mathit{v} + \mathit{i}}\\ \mathit{y} = \frac{\mathit{d}\mathit{u} + \mathit{e}\mathit{v} + \mathit{f}} {\mathit{g}\mathit{u} + \mathit{h}\mathit{v} + \mathit{i}}$$
Después de que me sustituir cuatro vértices de la quad y de la plaza, puedo obtener un sistema lineal. Al resolver el sistema lineal puedo obtener la matriz de transformación proyectiva.
Del mismo modo, considero que un 3D proyectiva, la asignación puede ser denominado como un racional lineal de asignación así. Y este racional lineal asignación puede asignar una truncado a un NDC cubo.(tenga en cuenta que debido al uso homogéneo de coordenadas, el último elemento de la matriz(derecha inferior) puede ajustarse a 1)
$$ \mathit{x} = \frac{\mathit{un}\mathit{u} + \mathit{b}\mathit{v} + \mathit{c}\mathit{w} + \mathit{d}} {\mathit{m}\mathit{u} + \mathit{n}\mathit{v} + \mathit{o}\mathit{w} + 1}\\ \mathit{y} = \frac{\mathit{e}\mathit{u} + \mathit{f}\mathit{v} + \mathit{g}\mathit{w} + \mathit{h}} {\mathit{m}\mathit{u} + \mathit{n}\mathit{v} + \mathit{o}\mathit{w} + 1}\\ \mathit{z} = \frac{\mathit{i}\mathit{u} + \mathit{j}\mathit{v} + \mathit{k}\mathit{w} + \mathit{l}} {\mathit{m}\mathit{u} + \mathit{n}\mathit{v} + \mathit{o}\mathit{w} + 1} $$
Pero cuando trato de resolver este sistema, la matriz resultado no es el mismo que el de la API 3D(como OpenGL) especificación.
Mi pregunta es: ¿hay algún extra propiedades de una proyección en perspectiva de la matriz que racional, lineal asignación no?
EDIT: he encontrado que en la versión 2D contamos con 8 incógnitas(3*3, y un elemento de la matriz se establece a 1 excluido), lo que equivale exactamente el número de ecuaciones del sistema lineal(4 vértices en un quad, y 2 corrdinate componentes en cada uno de ellos). Sin embargo, en la versión en 3D, el número de incógnitas y el número de ecuaciones no coincide. Sospecho que me malinterpretan la racional lineal de asignación, y la razón por la que se puede aplicar a una versión en 2D es sólo una coincidencia. Voy a hacer aprender más sobre este tema.