public void Draw() { glController.glDinamik(monitor, Batu_GL.Ortho_Mode.CENTER); //-------------------------------------------- Gl.glEnable(Gl.GL_LIGHTING); // Işıklandırma aktif ediliyor //-------------------------------------------- //--Işık 1 Gl.glLightfv(Gl.GL_LIGHT0, Gl.GL_AMBIENT, light_1); // Aydınlatma çeşidi ve ışık numarası belirleniyor ışık özellikleri "isik adlı diziden alınıyor" Gl.glLightfv(Gl.GL_LIGHT0, Gl.GL_DIFFUSE, light_2); // Aydınlatma çeşitlerinden dağıtma seçilerek "isik2" de dağılmayı yapacak ışık özellikleri tanımlanıyor Gl.glLightfv(Gl.GL_LIGHT0, Gl.GL_SPECULAR, specular); // Aydınlatma çeşitlerinden yansıtma seçiliyor "specular" dizisi ile yansıma ışığının özellikleri belirleniyor Gl.glLightfv(Gl.GL_LIGHT0, Gl.GL_POSITION, lightPos); // "0" numaralı ışığın konumu "lightpos" dizisinden alınıyor Gl.glEnable(Gl.GL_LIGHT0); // "0" numaralı ıuşık aktif hale gtiriliyor //------------------------------------------- //--Işık 2 Gl.glLightfv(Gl.GL_LIGHT1, Gl.GL_AMBIENT, light_1); Gl.glLightfv(Gl.GL_LIGHT1, Gl.GL_DIFFUSE, light_2); Gl.glLightfv(Gl.GL_LIGHT1, Gl.GL_SPECULAR, specular); Gl.glLightfv(Gl.GL_LIGHT1, Gl.GL_POSITION, lightPos2); Gl.glEnable(Gl.GL_LIGHT1); //------------------------------------------- Gl.glEnable(Gl.GL_COLOR_MATERIAL); // Parça renk materyali aktif hale getiriliyor Gl.glColorMaterial(Gl.GL_FRONT, Gl.GL_AMBIENT_AND_DIFFUSE); Gl.glMaterialfv(Gl.GL_FRONT, Gl.GL_SPECULAR, specref); Gl.glMateriali(Gl.GL_FRONT, Gl.GL_SHININESS, 10); // Parlaklık seviyesi ayarla ("1" değerinin yansıması iyi) Gl.glEnable(Gl.GL_NORMALIZE); // Işık geçişini yumuşatma //------------------------------------------- Gl.glRotatef(rotation, 0.7f, 1.0f, 0.2f); rotation++; rotation = rotation % 360; modelVAO.Draw(); monitor.SwapBuffers(); }
private void GL_Monitor_Paint(object sender, PaintEventArgs e) { if (!monitorLoaded) { return; } Batu_GL.Configure(GL_Monitor, Batu_GL.Ortho_Mode.CENTER); if (modelVAO != null) { ConfigureBasicLighting(modelVAO.color); } GL.Translate(orb.PanX, orb.PanY, 0); GL.Rotate(orb.orbitStr.angle, orb.orbitStr.ox, orb.orbitStr.oy, orb.orbitStr.oz); GL.Scale(orb.scaleVal, orb.scaleVal, orb.scaleVal); GL.Translate(-minPos.x, -minPos.y, -minPos.z); GL.Translate(-(maxPos.x - minPos.x) / 2.0f, -(maxPos.y - minPos.y) / 2.0f, -(maxPos.z - minPos.z) / 2.0f); if (modelVAO != null) { modelVAO.Draw(); } GL_Monitor.SwapBuffers(); }