Una implementación de una cámara simple utilizada para navegar hacia un mundo 3D. Es posible rotar la cámara mueve el mouse y moverse usando teclas W, A, S y D (ESC para cerrar la aplicación).
Se puede usar, por ejemplo, en juegos en primera persona o en aplicaciones CAD.
Como un pequeño escaparate, creamos un laberinto muy simple.
Tanto la hierba como las paredes se representan usando sombreadores.
También implementamos un sistema de colisión, como el usuario no irá "dentro" de una pared, pero se detendrá justo antes.
Proyecto final para el curso de gráficos por computadora (AY 2020/2021) de la Universidad de Ferrara.
Teacher: Antonino Casile
Students: Alberto Paparella Badge number: 144261
Martina Tenani Badge number: 144739
Hay dos formas de moverse a un punto en el espacio.
El primero es cambiar la posición de la cámara y moverla a ese punto (no es posible en OpenGL), la otra está cambiando la posición del punto y llevándola a la cámara.
Simplemente hablando, para producir el efecto de avanzar, usted avanza o trae al mundo al revés.
Entonces, para producir el efecto de ir al punto (x, y) en el espacio, es posible traducir el mundo al punto (-x, -y) en su lugar, y será indistinguible.
Si desea mirar hacia el lado derecho, gire el mundo hacia la izquierda.
Es por eso que usamos los valores negativos de los ángulos mientras giramos.
Nota importante: siempre gire primero y luego traduzca.
Para el sistema de colisión, implementamos la lógica de siguientes: verifique si el siguiente paso ubicará el objeto a su alrededor; Si ese es el caso, no actualice las matrices en esa dirección.
Vaya al directorio principal del proyecto sfpg/ con la línea de comando y inicie el comando make .
El proyecto creará un ejecutable en el mismo directorio llamado sfpg que se puede lanzar con ./sfpg .
Todos los archivos .o se almacenan en el directorio obj/ para mantener las cosas limpias.