OpenGL ve C# (Tao.Framework)


Bu yazımızda C# ile OpenGL e ufak bir giriş yapacağız.

OpenGL platformdan bağımsız olduğu için birçok uygulamada karşımıza çıkmakta. Günümüzde cep telefonlarında dahi kullanılması C# ta neden olmasın sorusunu bize yöneltmekte. Günümüzde C# için yazılmış birçok OpenGL kütüphanesi olmasına karşın ben en basit yoldan nasıl OpenGL ile hemen çizim yapabileceğinizi anlatacağım.

Kullanacağımız genel kütüphane TaoFramework adındaki ücretsiz bir kütüphane eğer daha detaylı incelemek isterseniz bu linkten TaoFramework e göz atabilirsiniz. Yada yazı için gerekli olan dosyaları buradan indirebilirsiniz.

Eğer taoframework ü indirip kurduysanız yapılacaklar oldukça basit.

Aşağıdaki resimlerde olduğu gibi işlemleri gerçekleştiriyoruz.

Öncelikle Toolbox’a sağ tıklayıp açılan pencereden “Choose Items…” seçeneğine tıklıyoruz. Bu esnada bilgisayarınız yanıt vermeyi kesebilir aldırış etmeyin.

Daha sonra ise karşımıza böyle bir ekran gelecek ve buradan SimpleOpenGlControl seçeneğini işaretleyip OK butonuna tıklıyoruz.

Eğer işlemleri doğru yaptıysak Toolbox’a SimpleOpenGlControl adında yeni bir kontrolün eklenmiş olması gerekmekte. Tabi bu büyük kütüphane yerine gerekli dll’leri indirerek bu işlemleri de yapabilirsiniz. Bunun için zip dosyasından çıkan dll’lerden “Tao.Platform.Windows.dll” isimli dll’i Toolbox a sürüklüyoruz ve “Solution Explorer” altında bulunan “Referances” a sağ tıklayıp indirdiğimiz kütüphaneleri ekliyoruz.

Image Hosted by ImageShack.us

Toolbox
Image Hosted by ImageShack.us

Solution Explorer
Image Hosted by ImageShack.us

Referance

Tüm işlemleri gerçekleştirdikten sonra artık formumuza nesnemizi sürükleyebiliriz. Sürükledikten sonra eğer programımızı derlersek aşağıdaki hatayla karşılaşırız.

Çünkü herşey bukadar değil…
İlk önce using satırlarımızı ekliyoruz.

using Tao.OpenGl;
using Tao.Platform.Windows;

Daha sonra formumuzun load olayına

glControl.InitializeContexts();

satırını ekliyoruz.
Artık çizim yapmaya hazırız…
Hemen eklediğimiz OpenGlControl nesnemize Paint olayını ekliyoruz…

Ve içeriğine şu kodları ekliyoruz.

private void glControl_Paint(object sender, PaintEventArgs e)
{
Gl.glClearColor(1.0F, 1.0F, 1.0F, 1.0F);
Gl.glClear(Gl.GL_COLOR_BUFFER_BIT);
Gl.glBegin(Gl.GL_TRIANGLES);

Gl.glColor3f(1.0F, 0, 0);
Gl.glVertex2f(-1.0F, -1.0F);

Gl.glColor3f(0, 1.0F, 0);
Gl.glVertex2f(1.0F, -1.0F);

Gl.glColor3f(0, 0, 1.0F);
Gl.glVertex2f(0F, 1.0F);

Gl.glEnd();
}

Eğer her şey yolunda gittiyse tebrikler ilk OpenGL uygulamamızı bitirdik…

Bir sonraki yazımızda görüşmek üzere…