Este documento describe el funcionamiento y los controles de la aplicación de visualización 3D con la nueva interfaz ImGui: vista 3D + varias ventanas de control (cámara, proyección, escena, materiales, luces y terreno).
La aplicación se compone de:
- Vista 3D: render principal de la escena (objetos, terreno, luces, ejes).
- Ventanas ImGui (paneles flotantes):
- Menú de ayuda (imgui): panel principal de control.
- Editor de Materiales: edición completa de materiales.
- Gestor de Iluminación (OpenGL): control de luces y ambiente global.
- Configuración Terreno: material, textura y filtros del suelo.
- Control Movimiento Luces: activar modo de mover luces con teclado.
| Acción | Control | Descripción |
|---|---|---|
| Orbitar | Botón central (rueda) + arrastrar | Orbita la cámara (yaw/pitch) alrededor del punto de interés. |
| Zoom | Rueda del ratón | Acerca/aleja la cámara. |
| Seleccionar objeto | Clic izquierdo | Selección por color picking. |
| Deseleccionar | Clic derecho | Si haces clic en “fondo”, deselecciona. |
| Tecla | Acción |
|---|---|
| Flechas (↑ ↓ ← →) | Pan de cámara (mover cámara en X/Y). |
| Re Pág (Page Up) | Zoom In |
| Av Pág (Page Down) | Zoom Out |
En Menú de ayuda (imgui) → Cámara:
- Sliders: Velocidad pan, Velocidad zoom, Sensibilidad órbita
- Slider: FOV (grados)
- Botón: Reset cámara
Puedes seleccionar objetos de dos formas:
- Clic izquierdo en la Vista 3D (picking).
- En Menú de ayuda (imgui) → Selección de objetos → Grafo de Escena:
- Árbol desplegable de la jerarquía.
- Clic en un nodo para seleccionar.
- Si haces clic en un objeto ya seleccionado: se deselecciona.
Feedback de selección:
- El objeto seleccionado se resalta en el árbol.
- Se dibuja su wireframe en naranja.
| Tecla | Modo |
|---|---|
m |
Traslación |
t |
Escalado |
r |
Rotación |
También puedes seleccionar el modo desde Menú de ayuda (imgui) → Modos de transformación.
Minúsculas = positivo / Mayúsculas = negativo.
| Eje | + | - |
|---|---|---|
| X | x |
X |
| Y | y |
Y |
| Z | z |
Z |
Valores usados:
- Traslación: paso ≈ 0.1
- Rotación: paso ≈ 5 grados
- Escalado: ×1.1 (minúscula) / ×0.9 (mayúscula)
| Tecla | Acción |
|---|---|
s |
Alternar sombreado Flat / Smooth |
e |
Mostrar/Ocultar ejes |
ESC |
Cerrar aplicación |
En ImGui:
- Menú de ayuda (imgui) → Modos de visualización permite Flat/Smooth (equivalente a
s).
En Menú de ayuda (imgui) → Tipo de Proyección puedes elegir:
- Paralela (glOrtho)
- Frustum (glFrustum)
- Perspectiva (gluPerspective)
Atajo de teclado:
palterna entre Paralela y Perspectiva.
En Menú de ayuda (imgui) → Planos de recorte (Cámara):
- Slider Z-Near
- Slider Z-Far
Esto afecta a lo que se ve (si recortas demasiado, objetos “desaparecen”).
| Tecla | Acción |
|---|---|
a |
Play/Pause animación |
A |
Reiniciar animación |
En ImGui:
- Menú de ayuda (imgui) → Animación tiene botón Reproducir/Pausar.
En Menú de ayuda (imgui) → Mallas Activas:
- Tabla con: Nombre, Vértices, Triángulos
- Puedes hacer clic en el nombre (imprime en consola).
Ventana Editor de Materiales:
- Lista de materiales disponibles.
- Edición completa de:
- Ambient, Diffuse, Specular, Emission
- Shininess
- Cada canal se puede activar/desactivar (checkbox “Usar …”).
Ventana Gestor de Iluminación (OpenGL):
- Ambiental global (color).
- Control de hasta 8 luces (GL_LIGHT0…GL_LIGHT7):
- ON/OFF
- Tipo: Puntual / Direccional / Spot
- Colores: ambient/diffuse/specular
- Posición (x,y,z,w) (w=0 direccional, w=1 puntual/spot)
- Spot cutoff/exponent/direction (si es Spot)
- Atenuación (si es puntual/spot)
- Botón “Aplicar cambios”
- Botón “Refrescar todas las luces”.
Ventana Configuración Terreno:
- Material del Suelo: combo para seleccionar material y aplicarlo.
- Textura: radios para elegir:
- Sin textura
- Hierba
- Alonso
- Ladrillo
- Filtros Textura:
- Combo con filtrado MIN/MAG (nearest/linear).
Ventana Control Movimiento Luces:
- Checkbox: ACTIVAR MODO MOVIMIENTO (Teclado)
- Si está activo: las flechas mueven la luz, no la cámara.
- Selector: qué luz mover (solo Puntual/Spot).
- Mapeo:
- Flechas: X/Y
- RePág / AvPág: Z
-
No puedo mover cámara / no responden teclas
→ El cursor está sobre ImGui y está capturando entrada. Haz clic en la vista 3D o sal del panel. -
Clic de selección no funciona
→ Asegúrate de no estar haciendo clic dentro de una ventana ImGui.
→ El picking funciona con clic izquierdo y lee el framebuffer. -
Objetos “desaparecen” al mover cámara
→ Revisa Z-Near / Z-Far en el menú (planos de recorte). -
Las flechas mueven algo raro (no la cámara)
→ Tienes activado el Modo Movimiento Luces en su ventana.