diff --git a/objview/Classes/KRObjViewGLView.mm b/objview/Classes/KRObjViewGLView.mm index c1daf6c..d2b1f1c 100644 --- a/objview/Classes/KRObjViewGLView.mm +++ b/objview/Classes/KRObjViewGLView.mm @@ -138,20 +138,6 @@ } KRModelManager *pModelManager = [renderEngine getModelManager]; - //m_scene.addInstance(pModelManager->getModel("fachwerkhaus12"), KRMat4()); - //m_scene.addInstance(pModelManager->getModel("ballroom"), KRMat4()); - //m_scene.addInstance(pModelManager->getModel("HoganCombined"), KRMat4()); - //m_scene.addInstance(pModelManager->getModel("polySurface12848"), KRMat4(), "PillarLightmap2k"); - //m_scene.addInstance(pModelManager->getModel("Wall2"), KRMat4(), "Wall2_lightmap"); - /* - std::map models = pModelManager->getModels(); - for(std::map::iterator itr=models.begin(); itr != models.end(); itr++) { - std::string lightmap = (*itr).first; - lightmap.append("_lightmap"); - m_pScene->addInstance((*itr).second->getName(), (*itr).second->getName(), KRMat4(), lightmap); - - } - */ [renderEngine setNearZ: 25.0]; [renderEngine setFarZ: 5000.0]; diff --git a/objview/Classes/KRObjViewViewController.h b/objview/Classes/KRObjViewViewController.h index 01aefad..3d61d01 100644 --- a/objview/Classes/KRObjViewViewController.h +++ b/objview/Classes/KRObjViewViewController.h @@ -65,6 +65,8 @@ id displayLink; + + CFTimeInterval _lastTime; } diff --git a/objview/Classes/KRObjViewViewController.mm b/objview/Classes/KRObjViewViewController.mm index 7fe3c1c..b402a76 100644 --- a/objview/Classes/KRObjViewViewController.mm +++ b/objview/Classes/KRObjViewViewController.mm @@ -162,6 +162,8 @@ camera_position = KRVector3(-850, -10, -700); + _lastTime= CFAbsoluteTimeGetCurrent(); + displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(drawView:)]; [displayLink setFrameInterval:1]; // Maximum 60fps [displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; @@ -177,6 +179,10 @@ - (void)drawView:(id)sender { + CFTimeInterval time = CFAbsoluteTimeGetCurrent(); + float deltaTime = (time - _lastTime); + _lastTime = time; + const GLfloat PI = 3.14159265; const GLfloat d2r = PI * 2 / 360; @@ -237,13 +243,13 @@ //double dScaleFactor = [engine getModelManager]->getFirstModel()->getMaxDimension() / 100.0f; - double dScaleFactor = 10.0f; + double dScaleFactor = 1000.0f * deltaTime; camera_position.z += (-cos(camera_pitch) * cos(camera_yaw) * leftStickDeltaX + -cos(camera_pitch) * cos(camera_yaw - 90.0f * d2r) * -leftStickDeltaY) * dScaleFactor; camera_position.x += (cos(camera_pitch) * sin(camera_yaw) * leftStickDeltaX + cos(camera_pitch) * sin(camera_yaw - 90.0f * d2r) * -leftStickDeltaY) * dScaleFactor; camera_position.y += sin(camera_pitch) * leftStickDeltaX * dScaleFactor; - camera_yaw += rightStickDeltaY * 4.0 * d2r; - camera_pitch += rightStickDeltaX * 4.0 * d2r; + camera_yaw += rightStickDeltaY * 180.0 * d2r * deltaTime; + camera_pitch += rightStickDeltaX * 180.0 * d2r * deltaTime; [engine renderScene: [glView getScene] WithPosition:camera_position Yaw: camera_yaw Pitch: camera_pitch Roll:0.0f];