protected override void OnRenderFrame(FrameEventArgs e) { base.OnRenderFrame(e); //LOL //GL.ClearColor(Color.CornflowerBlue); GL.ClearColor(Color.Black); GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit); GL.Enable(EnableCap.Texture2D); GL.Hint(HintTarget.PerspectiveCorrectionHint, HintMode.Nicest); GL.Enable(EnableCap.Lighting); GL.Enable(EnableCap.Light0); GL.Enable(EnableCap.DepthTest); GL.Enable(EnableCap.Normalize); GL.FrontFace(FrontFaceDirection.Ccw); GL.MatrixMode(MatrixMode.Modelview); //Matrix4 lookat = Matrix4.LookAt(0, 5, 5, 0, 0, 0, 0, 1, 0); Matrix4 lookat = Matrix4.LookAt(0, 5, 5, 0, 0, 0, 0, 1, 0); GL.LoadMatrix(ref lookat); GL.Rotate(m_angle, 0.0f, 1.0f, 0.0f); float tmp = m_sceneMax.X - m_sceneMin.X; tmp = Math.Max(m_sceneMax.Y - m_sceneMin.Y, tmp); tmp = Math.Max(m_sceneMax.Z - m_sceneMin.Z, tmp); tmp = 1.0f / tmp; GL.Scale(tmp * 2, tmp * 2, tmp * 2); GL.Translate(-m_sceneCenter); //loads objects... if (m_displayList == 0) { //also myGrid = new Grid(); myGrid.Create(); // mySkyBox = new SkyBox(); m_displayList = GL.GenLists(1); GL.NewList(m_displayList, ListMode.Compile); RecursiveRender(m_model, m_model.RootNode); GL.EndList(); } //draw code... mySkyBox.Dibujar(); // myGrid.Draw2(); // GL.CallList(m_displayList); // SwapBuffers(); }