Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: rrbenx en 24 de Marzo de 2007, 08:22:25 PM

Título: Proyectar sober una esfera
Publicado por: rrbenx en 24 de Marzo de 2007, 08:22:25 PM
Aquí dejo una duda que me atormenta.

Al proyectar una imagen con un proyector sobre una esfera se producen deformaciones ya que la imagen se supone que incidiría sobre una superficie plana, si quisiera que no se produjeran deformaciones al proyectar sobre una esfera y sí sobre una superficie plana, que correcciones debería hacer a la imagen?

Esto me esta dando dolores de cabeza.

Un saludo.
Título: Proyectar sober una esfera
Publicado por: Mars Attacks en 26 de Marzo de 2007, 03:44:36 PM
¿Te suena el mapa terrestre?
Título: Proyectar sober una esfera
Publicado por: tamat en 26 de Marzo de 2007, 05:03:46 PM
estuve leyendo sobre el tema de proyecciones anamorficas, te recomiendo que busques por dome projection, salen bastantes cosas. Lo más interesante que encontré fue esta pagina (http://local.wasp.uwa.edu.au/~pbourke/projection/domemirror/) aunque esta pagina (http://www.uwgb.edu/dutchs/structge/sphproj.htm) tampoco está mal.

La idea no es tan compleja, si se trata de una escena en opengl la cosa es facil, renderizas la escena en una textura y luego la pintas sobre una maya deformada que corrije esa deformacion, y la deformacion la puedes sacar trazando rayos.

Si sabes la posicion y el fov del proyector, y el tamaño y la distancia de la esfera, puedes reproyectar el frustrum sobre la esfera (con que proyectes los vertices del frustrum ya basta). Con eso ya sabes donde va a parar el render, pues aplicas el proceso inverso y ya está. Seguro que se puede aproximar con un vertex shader.