|
@@ -3,7 +3,7 @@
|
|
|
#include <iostream>
|
|
|
#include <vector>
|
|
|
|
|
|
-#define PARAMS_DEBUG_PRINT false
|
|
|
+#define PARAMS_DEBUG_PRINT true
|
|
|
|
|
|
const int texNumTriangles = 64770;
|
|
|
const int cowNumTriangles = 5804;
|
|
@@ -38,6 +38,13 @@ GLuint fog; // is_foggy uniform
|
|
|
GLuint eye_pos;
|
|
|
int foggy = 1;
|
|
|
|
|
|
+GLuint fog_fac;
|
|
|
+float fogFac = 1.0f;
|
|
|
+
|
|
|
+// object (cow) params
|
|
|
+GLuint obj_shi;
|
|
|
+float objShi = 50.0f;
|
|
|
+
|
|
|
// Viewing transformation parameters
|
|
|
GLfloat theta = 0.0;
|
|
|
GLfloat phi = 0.0;
|
|
@@ -246,6 +253,8 @@ void init() {
|
|
|
fog = glGetUniformLocation(program, "foggy");
|
|
|
eye_pos = glGetUniformLocation(program, "eye_pos");
|
|
|
plane_light = glGetUniformLocation(program, "plane_light_on");
|
|
|
+ fog_fac = glGetUniformLocation(program, "fog_fac");
|
|
|
+ obj_shi = glGetUniformLocation(program, "obj_shi");
|
|
|
glEnable(GL_DEPTH_TEST);
|
|
|
|
|
|
glClearColor(1, 1, 1, 1);
|
|
@@ -273,6 +282,10 @@ void display(void) {
|
|
|
|
|
|
glUniform1f(plane_light, light_on);
|
|
|
|
|
|
+ glUniform1f(fog_fac, fogFac);
|
|
|
+
|
|
|
+ glUniform1f(obj_shi, objShi);
|
|
|
+
|
|
|
glDrawArrays(GL_TRIANGLES, 0, NumVertices);
|
|
|
|
|
|
glutSwapBuffers();
|
|
@@ -307,6 +320,24 @@ void keyboard(unsigned char key, int mousex, int mousey) {
|
|
|
foggy = 1;
|
|
|
}
|
|
|
break;
|
|
|
+ case 'k':
|
|
|
+ objShi -= 1.0f;
|
|
|
+ if (objShi < 0.0f) {
|
|
|
+ objShi = 0.0f;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 'K':
|
|
|
+ objShi += 1.0f;
|
|
|
+ break;
|
|
|
+ case 'g':
|
|
|
+ fogFac -= 0.1;
|
|
|
+ if (fogFac < 0) {
|
|
|
+ fogFac = 0;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 'G':
|
|
|
+ fogFac += 0.1;
|
|
|
+ break;
|
|
|
case '1':
|
|
|
tau += 0.01;
|
|
|
break;
|
|
@@ -319,12 +350,6 @@ void keyboard(unsigned char key, int mousex, int mousey) {
|
|
|
case 'e':
|
|
|
theta -= 0.01;
|
|
|
break;
|
|
|
- case 'A':
|
|
|
- at_x += 0.01;
|
|
|
- break;
|
|
|
- case 'D':
|
|
|
- at_x -= 0.001;
|
|
|
- break;
|
|
|
case 'w':
|
|
|
eye_x += 0.01;
|
|
|
break;
|
|
@@ -351,6 +376,7 @@ void keyboard(unsigned char key, int mousex, int mousey) {
|
|
|
break;
|
|
|
}
|
|
|
if (PARAMS_DEBUG_PRINT) {
|
|
|
+ printf("obj_shi:%f\n", objShi);
|
|
|
printf("eye_x,y,z:%f, %f, %f, %f\n", eye_x, eye_y, eye_z, eye_w);
|
|
|
printf("at_x,y,z:%f, %f, %f, %f\n", at_x, at_y, at_z, at_w);
|
|
|
}
|