Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Proyección cónica

Iniciado por Manu343726, 11 de Mayo de 2011, 01:52:09 AM

« anterior - próximo »

Manu343726

Hola.

Estoy desarrollando un engine desde cero y tengo algunos problemas con la proyección cónica.

Suponiendo que tengo un punto P(Px,Py,Pz), y una cámara con posición C(Cx,Cy,Cz) y vector de dirección V(Vx,Vy,Vz).

El primer paso sería calcular el plano de proyección.Facil: Plano con vector normal la dirección de la cámara,y que está a una distancia determinada de ésta (Se supone,entre los objetos de la escena y la cámara).
Bien ahora trazamos una recta desde la cámara hasta el punto P,y calculamos la intersección entre dicha recta y el plano de proyección.
Ha dicho punto lo llamaremos I(Ix,Iy,Iz). Si el plano de proyección fuera paralelo al plano XOY(es decir,el plano formado por los ejes X e Y) bastaría descartar la coordenada z del punto I para obtener las coordenadas 2D de P.

Pero si el plano no es paralelo, ¿como saco las coordenadas 2D?
He pensado en girar el plano despues de calcular I hasta colocarlo paralelo.Después saco las coordenadas 2D del punto I girado, mediante el método anterior. Pero realizar un giro cada vez que necesito proyectar un punto me parece muy costoso. ¿Hay alguna manera mejor?

Gracias de antemano.


Ah por curiosidad. Alguien sabe que tipo de matriz usa OpenGL para representar los puntos en los cálculos de transformaciones? Yo los represento en forma de matriz columna  X  ,pero he visto que suele hacerse como matriz fila (X,Y,Z,1).
                                                                          Y
                                                                          Z
                                                                          1







Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.