Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Desplazamiento de la escena en Viewport

Iniciado por fiero, 17 de Abril de 2003, 03:40:49 PM

« anterior - próximo »

fiero

                                Estoy buscando la forma de desplazar la escena renderizada dentro del viewport. No me refiero a mover la cámara, sino a que toda la escena se renderice un número de pixels desplazada en X o en Y. La perspectiva sería la misma, solamente cambiarian las zonas de la escena que entran dentro del viewport.

He probado modificar la matriz de Viewport y la de Projection, pero aunque la escena se desplaza, el problema es frustum culling, que deja de funcionar correctamente.

¿Sabeis algo del tema?                                
www.videopanoramas.com Videopanoramas 3D player

BeRSeRKeR

                                Hmmm no acabo de entenderlo. ¿Te refieres a desplazar la escena (que ya está renderizada) dentro del viewport (como si la escena "saliera del viewport"...tipo transición) o a mover el punto de vista de la escena (o sea la cámara)?.

Si es lo primero, una opción sería hacer un render to texture y mapear dicha textura en un polígono que sería el que se movería.

Si es lo segundo, supongo que lo más fácil (de echo ahora mismo no se me ocurre otra cosa sin que dejasen de funcionar las cosas) sería desplazar la cámara en su plano XY (o sea desplazar la cámara según sus vectores Right/Up) de forma que cambias la posición de la cámara pero no el ángulo.

Si no es alguno de estos dos casos entonces si que no me he enterao de nada :D

Saludos                                
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

fiero

                                Me refiero más bien a lo segundo, pero no vale con mover la cámara, ya que si se mueve la cámara cambia la perspectiva y cambia la forma de la escena.

Supongamos que divido la ventana del programa en dos mitades, y quiero renderizar la misma escena en las dos, pero que se vea como una sola, si muevo la cámara cambia el ángulo de visión y las dos escenas ya no "casan".

Es un desplazamiento 2D de coordenadas de pantalla. Yo creo que deberia ser algo de la matriz de Viewport. Lo que pasa es que si multiplico esta matriz por una de desplazamiento el frustum deja de "recortar" bien los triangulos, ya que el frustum funciona con coordenadas 3D. Si desactivo el frustum sí que funciona, pero claro, eso es un despilfarro. Igual no se puede hacer.....

un saludo                                
www.videopanoramas.com Videopanoramas 3D player

BeRSeRKeR

                                Bueno pues la verdad es que no sé si ->esto<- podrá darte alguna idea...ni siquiera sé si está relacionado con lo que buscas, pero por probar... :D

Saludos                                
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

fiero

                                Perfecto! Eso es exactamente lo que necesitaba  :D

Según ese artículo, una escena se rederiza desde la proyección -1 hasta +1, así que la escena entera mide 2. Solo hace falta una pequeño ajuste para hacer lo que quería:

m_matProjection._31=(2.0*pixelsOffsetEscenaX)/pixelsAnchoVisor;
m_matProjection._32=-(2.0*pixelsOffsetEscenaY)/pixelsAltoVisor;

Muchas gracias BeRSeRKeR, te debo una birra..

un saludo                                
www.videopanoramas.com Videopanoramas 3D player






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.