Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Manejo De Cámara

Iniciado por chechocossa, 27 de Julio de 2005, 11:09:59 PM

« anterior - próximo »

chechocossa

 Hola a todos.

Necesito una ayuda. Que en 3D recién estoy empezando.

Digamos que tengo un objeto en el centro de la pantalla.

Quiero que una cámara gire alrededor de ese objeto. Es decir, el objeto permanece fijo en el centro y la que gira, mostrándolo de todos los ángulos es la cámara. Por supuesto, también gira el fondo de la pantalla.

Yo logro hacer que la cámara gire fija en un centro y los objetos se muevan alrededor... pero la idea es al revés.

Me podrán pasar los procedimientos para lograr esto?

Da igual el lenguaje, yo estoy probando el motor Irrlicht con c#, pero para la cuestión es lo mismo. Lo que no me doy cuenta es qué tengo que calcular...

Saludos y muchas gracias!
ergio Cossa

http://www.fatherjoe.com.ar - Father Joe Mobile
http://www.fantasticzone.blogspot.com - Fantastic Zone Blog
http://www.fantasticzone.com.ar - Fantastic Zone Page
Argentina

Haddd

 mira la ayuda de Irrlitch, o coge algún ejemplo. Eso es básico, seguro que está allí

chechocossa

 Gracias Haddd.

Pues estuve buscando y probando bastante.
Tengo la cámara que sube, baja, hace zoom, rota sobre su eje...

Pero no encontré nada que haga girar la cámara alrededor de un objeto  :angry:

Bueno, todo en inglés... y no conozco los términos específicos... tal vez haya algo en el foro, pero no en los tuturiales.

Hice una consulta, y me dijeron esto:

What you do, is subtract the position of the target from the position of the camera, do get the position of the camera relative to the target in world space. Then rotate the camera however you want, and when you're done, add the position of the target back to the cameras new rotated position.

Pero esto me hace girar la cámara sobre su eje... si es que lo implementé bien... y no es lo que necesito.

Saludos!
ergio Cossa

http://www.fatherjoe.com.ar - Father Joe Mobile
http://www.fantasticzone.blogspot.com - Fantastic Zone Blog
http://www.fantasticzone.com.ar - Fantastic Zone Page
Argentina

shephiroth

 Buenas.

Aun no estoy metido en el 3D (sigo con cosillas en 2d), pero creo q lo q te galta es rotar la camara (creo q esto lo tienes) y luego tienes q trasladarla.

Tu imaginate que en el centro de tu cuarto tienes una silla y tu eres la camara. Para hacer el efecto q tu quieres ademas de girar la camara (es decir, tu) tienes q trasladar la camara (es decir, moverte por la habitacion).

Como dije no soy muy bueno en esto, y no se si puedes "mover la camara", lo mas seguro tengas q mover toda la escena de forma que parezca q es la cámara la q se mueva......

Bueno, espero q te sirva ^^

Pogacha

 La idea para lo que tu pides es un desplazamiento post rotatorio.

O sea rotas la camara y luego le aplicas un movimiento en ( Camara.Posicion -= Distancia * Camara.Vector_Atraz )

Esto se entiende para cuando formules la matriz de la camara:

Desplazo camara a la distancia posicion del objeto, roto la camara el angulo que quiero, dezplaso la camara hacia atraz.

Por el tema de las matrices generalmente esto se hace alrevez.
Muevo la camara hacia atraz, roto al angulo que quiero y luego la posiciono en el lugar del objeto.

Espero sirva.
Saludos.

_Grey

 La forma mas facil que se me ocurre es ....

Sabes hacer rotar un punto en el espacio 3D? si ya haces rotar objetos seguro que si, coje un punto que tenga como centro el punto sobre el que rotar, y muevelo segun te combenga, luego usas ese punto como posicion de la camara.

Espero que te ayude, saludos.

Sacrifai


Pogacha

Cita de: "Sacrifai"¿Que motor o api usas?
CitarDa igual el lenguaje, yo estoy probando el motor Irrlicht con c#, pero para la cuestión es lo mismo. Lo que no me doy cuenta es qué tengo que calcular...

chechocossa

 Gracias a todos!  :D

Leí todas las sugerencias, además de algunas que me dieron en el foro de Irrlicht.
Ya lo estoy implementando y va a funcionar, aunque ahora lo tengo que incorporar a mi código. Pero eso no es complicado.

Cuando lo complete, voy a poner un post en ese foro para un control bastante variado de una cámara con Irrlicht y C#... que en ese engine aún hay pocos ejemplos sobre .Net.

Gracias de nuevo y saludos!
ergio Cossa

http://www.fatherjoe.com.ar - Father Joe Mobile
http://www.fantasticzone.blogspot.com - Fantastic Zone Blog
http://www.fantasticzone.com.ar - Fantastic Zone Page
Argentina






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.