El el intento de hacer un editor de objetos 3d basado en Opengl y llegado al punto de seleccionar un objeto de la escena para aplicarle transformacines me ha surgido el siguiente problema:
Resulta que La seleccion me la hace bien es decir, puedo seleccionar el objeto, pero cuando roto la escena y el objeto lo tengo mirandolo por la espalda, la seleccion ya no me funciona y tampoco por ejemplo si lo traslado lejos de la camara.
Alguien me puede ayudar en este tema??
Comprueba el render que haces para el picking, si es diferente puede que lo que estés seleccionando no sea lo mismo que estás renderizando.
Yo diría que si es lo mismo ya que llamo a la misma funcion 'render Escene'
¿Puede ser que que la camara no este mirando al mismo sitio, cuando hago el picking y cuando renderizo?
Usas el picking de openGL? yo lo hago a mano pintando cada objeto de un color diferente e indexandolos así puedo ver el resultado si hago swapbuffer.
Quizás te interesaría usar un buffer de selección, aquí lo explican como.
http://ponton.dcs.fi.uva.es/web/programaci...teractivos.html
uso el gluPickMatrix de opengl y el gluLookAt para la camrara. Puede ser que que suceda que el bucle principal
- Aplicar transformaciones a la camara
- Render escena
y claro luego cuando voy a seleccionar hago
-Render escena
y claro cuando renderizo para la seleccion se renderiza la escena pero sin mover la camara y entonces no selecciono lo mimo que estoy viendo. Probare a ver si es eso.
por cierto, alguien me puede decir si es mejor usar el picking de opengl en lugar de programarlo uno mismo? yo solo renderizo la escena con colores planos donde cada objeto lo indexo en un map y despues uso glReadBuffer (si no recuerdo mal) para sacar el color.
Aunque me preocupan cosas como monitores con poca profundidad de color o gente con el Antialiasing forzado desde el driver.