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);
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();