Index: common/controls-new.cpp
===================================================================
--- common/controls-new.cpp	(revision 8a6d19d6c4540451e6eec71a5309028c58372af5)
+++ common/controls-new.cpp	(revision 516668e090ff32f4358c33c089b73a527ea50e15)
@@ -2,4 +2,8 @@
 #include <GLFW/glfw3.h>
 extern GLFWwindow* window; // The "extern" keyword here is to access the variable "window" declared in tutorialXXX.cpp. This is a hack to keep the tutorials simple. Please avoid this.
+
+#include <iostream>
+
+using namespace std;
 
 // Include GLM
@@ -22,5 +26,5 @@
 
 // Initial position : on +Z
-glm::vec3 position = glm::vec3(4,3,-3); //glm::vec3( 0, 0, 5 );
+glm::vec3 position = glm::vec3(4,6,-3); //glm::vec3( 0, 0, 5 );
 // Initial horizontal angle : toward -Z
 float horizontalAngleBase = 3.14f * 3.0f / 2.0f; // 3.14f;
@@ -36,5 +40,5 @@
 
 
-void computeMatricesFromInputs(){
+void computeMatricesFromInputs(int windowWidth, int windowHeight) {
 
 	// glfwGetTime is called only once, the first time this function is called
@@ -52,5 +56,5 @@
   // The call has no effect the first several times it's called
   if (centeredCount < 100) {
-    glfwSetCursorPos(window, 1024/2, 768/2);
+    glfwSetCursorPos(window, windowWidth/2, windowHeight/2);
     centeredCount++;
   }
@@ -58,6 +62,6 @@
 	// Compute new orientation
   /* STOP ROTATION FOR NOW */
-  float horizontalAngle = horizontalAngleBase + mouseSpeed * float(1024/2 - xpos );
-  // verticalAngle   += mouseSpeed * float( 768/2 - ypos );
+  float horizontalAngle = horizontalAngleBase + mouseSpeed * float(windowWidth/2 - xpos );
+  // verticalAngle   += mouseSpeed * float( windowHeight/2 - ypos );
 
 	// Direction : Spherical coordinates to Cartesian coordinates conversion
@@ -67,4 +71,10 @@
 		cos(verticalAngle) * cos(horizontalAngle)
 	);
+  glm::vec3 lookDirection(
+    0.0f,
+    -3.0f,
+    0.0f
+  );
+  lookDirection = lookDirection + 3.0f * direction;
 
 	// Right vector
@@ -105,5 +115,5 @@
                 // and looks here : at the same position, plus "direction"
 								// position+glm::vec3(-4,0,0), // position+glm::vec3(-4,-3,3),
-								position+direction,
+								position+lookDirection,
 								glm::vec3(0,1,0) //up                  // Head is up (set to 0,-1,0 to look upside-down)
 						   );
Index: common/controls.cpp
===================================================================
--- common/controls.cpp	(revision 8a6d19d6c4540451e6eec71a5309028c58372af5)
+++ common/controls.cpp	(revision 516668e090ff32f4358c33c089b73a527ea50e15)
@@ -35,5 +35,5 @@
 
 
-void computeMatricesFromInputs(){
+void computeMatricesFromInputs(int windowWidth, int windowHeight) {
 
 	// glfwGetTime is called only once, the first time this function is called
Index: common/controls.hpp
===================================================================
--- common/controls.hpp	(revision 8a6d19d6c4540451e6eec71a5309028c58372af5)
+++ common/controls.hpp	(revision 516668e090ff32f4358c33c089b73a527ea50e15)
@@ -2,5 +2,5 @@
 #define CONTROLS_HPP
 
-void computeMatricesFromInputs();
+void computeMatricesFromInputs(int windowWidth, int windowHeight);
 glm::mat4 getViewMatrix();
 glm::mat4 getProjectionMatrix();
