Yazan : Şadi Evren ŞEKER

Bu yazının amacı bilgisayar grafiklerinin en temel konularından birisi olan çokgenlerin OpenGL ile nasıl çizilebildiklerini açıklamaktır.

Öncelikle OpenGL kütüphanesindeki fonksiyon isimlerini hatırlayalım:
glRect*(x1, y1, x2, y2);

  • i (integer)
  • s (short)
  • f (float)
  • d (double)
  • v (vector)
  • Yukarıdaki fonksiyonda * ile gösterilen yere aşağıdaki değerler gelebilmektedir.  Örneğin glRectiv şeklinde bir kullanımın anlamı glRect fonksiyonunun parametreleri integer (tam sayı) olacak ve vector (yöney) içerecek demektir.

    Buna göre aşağıdaki tam sayı kullanımı:

    glRecti(200, 100, 50, 250);

    ile aşağıdaki tamsayılı yöney kullanımı:

    int v1[ ]={200, 100};
    int v1[ ]={50, 250};
    glRectiv(v1, v2);

    Aynı anlama gelmektedir.

    OpenGL üzerinde aryıca 2 boyutlu düzlemleri ifade etmek için kullanılabilecek çeşitli alternatifler bulunmaktadır. Örneğin aşağıdaki şekilleri ve çizimleri için kullanılan OpenGL geometrik objelerinin (geometric primitives) farkllı durumları ele alınmıştır:

    yukarıdaki her şeklin farklı bir geometrik obje kullanılarak çizilmesi mümkündür. Örneğin GL_POLYGON objesi aşağıdaki kod ile çizilebilir:

    glBegin (GL_POLYGON);
            glVertex2iv(p1);
            glVertex2iv(p2);
            glVertex2iv(p3);
            glVertex2iv(p4);
            glVertex2iv(p5);
            glVertex2iv(p6);
        glEnd();

    Yukarıdaki kodda örnek olarak verilen şekildeki altıgenin her kenarını ayrı ayrı çizen bir geometrik obje gösterilmektedir.

    Yukarıdai bu şekil için de örneğin aşağıdaki kod kullanılabilir:

    glBegin (GL_QUADS);
            glVertex2iv(p1);
            glVertex2iv(p2);
            glVertex2iv(p3);
            glVertex2iv(p4);
            glVertex2iv(p5);
            glVertex2iv(p6);
            glVertex2iv(p7);
            glVertex2iv(p8);
        glEnd();

    Bir cevap yazın

    E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir