Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Matematicas y planos

Iniciado por 1cacalvo, 13 de Marzo de 2008, 12:06:37 PM

« anterior - próximo »

1cacalvo

Una preguntilla sobre matematicas..

Cual es la forma mas optima de realizar un cambio de coordenadas de un plano...

Es decir yo tengo

Ax + By + Cz + D = 0

y quisiera aplicarle un cambio de coordenadas para ello dispongo de la matriz ModelView.

Pd: Estoy hablando de OpenGl

Pd2: Estoy codificando FrustumCulling y tengo los planos sacados mediante la ProyectionMatrix pero necesito aplicarle tambien la ModelView.

Zaelsius

¿Por qué no multiplicas la ProjectionMatrix por la ModelView antes de calcular los planos?

Explicación: http://www.lighthouse3d.com/opengl/viewfrustum/index.php?clipspace

1cacalvo

Si ya habia visto esa solución, pero es que debido a la manera de que esta estructurado el motorcillo, me era mas fácil calcular primero los planos y luego realizarle un cambio de coordenadas dependiendo de cada objeto...

Gracias de todos modos!!!

Igual debiera replantearme el <donde y el como>

Elvis Enmanuel

A ver si te vale esto...


   //! Transforms a 3d plane
   TPlane3d<type> transform(const TPlane3d<type> &p,const TMat4 &m) const {
       TPlane3d<type> result;
       result.normal.x = (p.normal.x*m.M00 + p.normal.y*m.M10 + p.normal.z*m.M20 + p.d*m.M30);
       result.normal.y = (p.normal.x*m.M01 + p.normal.y*m.M11 + p.normal.z*m.M21 + p.d*m.M31);
       result.normal.z = (p.normal.x*m.M02 + p.normal.y*m.M12 + p.normal.z*m.M22 + p.d*m.M32);
       result.d        = (p.normal.x*m.M03 + p.normal.y*m.M13 + p.normal.z*m.M23 + p.d*m.M33);
       return result;
   }






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.