Está en la página 1de 6

314698649

Grupo 11

Reporte 2-Transformaciones geométricas, proyecciones y


puertos de vista

Instrucciones

 Seleccionar un personaje de Crossy Road o Crossy Road Disney y replicarlo en OpenGL.


 Esta prohibido utilizar cualquier personaje de una sola tonalidad o que sea un sólo cubo como la
pulga de bichos.
 Entregar archivo cpp y pdf con la captura del personaje recreado usando el formato indicado al
inicio del curso.

Desarrollo

Seleccione el siguiente personaje

1. Para crear el cuerpo del perro utilizamos model = glm::scale(model,


glm::vec3(1.0f, 2.0f, 1.0f)); con esta funcion estiramos el cuadrado para poderlo

convertir en un rectangulo
2. Seteo de la matriz para poder crear la parte de atras
3. Escalamos con la funcion model = glm::scale(model, glm::vec3(1.0f, 1.0f,
1.0f)); y trasladamos model = glm::translate(model, glm::vec3(0.0f, -0.5f,
-0.75f));
314698649
Grupo 11
4. Avisamos al Shader y dibujamos el cubo con glDrawArrays(GL_TRIANGLES, 0, 36);
5. Seteo de la matriz para poder crear el cola
6. Escalamos con la funcion model = glm::scale(model, glm::vec3(1.0f, 0.5f,
0.2f)); y trasladamos model = glm::translate(model, glm::vec3(0.0f, -0.5f,
-6.5f));
7. Avisamos al Shader y dibujamos el cubo con glDrawArrays(GL_TRIANGLES, 0, 36);
8. Seteo de la matriz para poder crear la ala izquierda
9. Escalamos con la funcion model = glm::scale(model, glm::vec3(1.0f, 1.0f,
1.0f)); y trasladamos model = glm::translate(model, glm::vec3(0.0f, -0.5f,
-0.75f));
10. Avisamos al Shader y dibujamos el cubo con glDrawArrays(GL_TRIANGLES, 0, 36);
11. Seteo de la matriz para poder crear el cola
12. Escalamos con la funcion model = glm::scale(model, glm::vec3(0.5f, 0.5f,
1.0f)); y trasladamos model = glm::translate(model, glm::vec3(-1.0f, -
0.5f, 0.0f));
13. Avisamos al Shader y dibujamos el cubo con glDrawArrays(GL_TRIANGLES, 0, 36);
14. Seteo de la matriz para poder crear la ala derecha
15. Escalamos con la funcion model = glm::scale(model, glm::vec3(1.0f, 1.0f,
1.0f)); y trasladamos model = glm::translate(model, glm::vec3(0.0f, -0.5f,
-0.75f));
16. Avisamos al Shader y dibujamos el cubo con glDrawArrays(GL_TRIANGLES, 0, 36);
17. Seteo de la matriz para poder crear el pico
18. Escalamos con la funcion model = glm::scale(model, glm::vec3(0.3f, 0.2f,
0.6f)); y trasladamos model = glm::translate(model, glm::vec3(0.0f, 2.5f,
1.0f));
19. Avisamos al Shader y dibujamos el cubo con glDrawArrays(GL_TRIANGLES, 108, 36);
20. Seteo de la matriz para poder crear los ojos
21. Escalamos con la funcion model = glm::scale(model, glm::vec3(0.2f, 0.2f,
0.2f)); y trasladamos model = glm::translate(model, glm::vec3(2.3f, 3.0f,
0.5f));
22. Avisamos al Shader y dibujamos el cubo con glDrawArrays(GL_TRIANGLES, 36, 36);
314698649
Grupo 11
23. Escalamos con la funcion model = glm::scale(model, glm::vec3(0.2f, 0.2f,
0.2f)); y trasladamos model = glm::translate(model, glm::vec3(-2.3f, 3.0f,
0.5f));
24. Avisamos al Shader y dibujamos el cubo con glDrawArrays(GL_TRIANGLES, 36, 36);
25. Seteo de la matriz para poder crear la papada
26. Escalamos con la funcion model = glm::scale(model, glm::vec3(0.3f, 0.2f,
0.3f)); y trasladamos model = glm::translate(model, glm::vec3(0.0f, 1.5f,
2.0f));
27. Avisamos al Shader y dibujamos el cubo con glDrawArrays(GL_TRIANGLES, 72, 36);
28. Seteo de la matriz para poder crear la cresta
29. Escalamos con la funcion model = glm::scale(model, glm::vec3(0.2f, 0.3f,
0.6f)); y trasladamos model = glm::translate(model, glm::vec3(0.0f, 3.5f,
0.2f));
30. Avisamos al Shader y dibujamos el cubo con glDrawArrays(GL_TRIANGLES, 72, 36);
31. Seteo de la matriz para poder crear la pie
32. Escalamos con la funcion model = glm::scale(model, glm::vec3(0.2f, 0.8f,
0.2f)); y trasladamos model = glm::translate(model, glm::vec3(-1.5f, -
1.6f, -0.5f));
33. Avisamos al Shader y dibujamos el cubo con glDrawArrays(GL_TRIANGLES, 108, 36);
34. Para crear el otro pie usamos la funcion model = glm::translate(model,
glm::vec3(2.8f, 0.0f, 0.0f)); para mover la matriz más reciente

35. Avisamos al Shader y dibujamos el cubo con glDrawArrays(GL_TRIANGLES, 108, 36);


36. Seteo de la matriz para poder crear la pata
37. Escalamos con la funcion model = glm::scale(model, glm::vec3(0.3f, 0.1f,
0.3f)); y trasladamos model = glm::translate(model, glm::vec3(0.8f,
-17.0f, -0.2f));
38. Avisamos al Shader y dibujamos el cubo con glDrawArrays(GL_TRIANGLES, 108, 36);
39. Para crear el otro pata usamos la funcion model = glm::translate(model,
glm::vec3(-1.8f, 0.0f, 0.0f)); para mover la matriz más reciente

40. Avisamos al Shader y dibujamos el cubo con glDrawArrays(GL_TRIANGLES, 108, 36);


41. Seteo de la matriz para poder crear los dedos del lado derecho
314698649
Grupo 11
42. Escalamos con la funcion model = glm::scale(model, glm::vec3(0.1f, 0.1f,
0.3f)); y trasladamos model = glm::translate(model, glm::vec3(1.4f, -
17.0f, 0.5f));
43. Avisamos al Shader y dibujamos el cubo con glDrawArrays(GL_TRIANGLES, 108, 36);
44. Para crear el otro dedo usamos la funcion model = glm::translate(model,
glm::vec3(-1.8f, 0.0f, 0.0f)); para mover la matriz más reciente

45. Avisamos al Shader y dibujamos el cubo con glDrawArrays(GL_TRIANGLES, 108, 36);


46. Seteo de la matriz para poder crear los dedos del lado izquierdo
47. Escalamos con la funcion model = glm::scale(model, glm::vec3(0.1f, 0.1f,
0.3f)); y trasladamos model = glm::translate(model, glm::vec3(-2.0f, -
17.0f, 0.5f));
48. Avisamos al Shader y dibujamos el cubo con glDrawArrays(GL_TRIANGLES, 108, 36);
49. Para crear el otro dedo usamos la funcion model = glm::translate(model,
glm::vec3(-2.0f, 0.0f, 0.0f)); para mover la matriz más reciente

50. Avisamos al Shader y dibujamos el cubo con glDrawArrays(GL_TRIANGLES, 108, 36);

Resultado
314698649
Grupo 11
314698649
Grupo 11

Conclusión

En esta práctica implemente la función de seteo de la matriz junto con traslación y escalamiento,
utilicé únicamente estas funciones ya que los cubos que hice eran monocromáticos, no era
necesario rotarlos en el caso de mi figura. Observe que según tu escalamiento son las unidades
que se mueven en la función de traslación; si la escala es muy pequeña, la traslación va hacer igual
de pequeña

También podría gustarte