C++ / OpenGL [ 10 – Array(2) ]

VertexArray , ColorArray

daha onceki array dersimizde basit bir  dizi olusturarak kup cizimi yapmistik.

Bir sonraki dersimiz FPS Kamera uzerine olacagi icin dersimiz icin bir zemin tasarliyacagiz

bundan once Gelismis Array ozelliklerine deginmemiz gerekiyor.

oncelikle Arraylerimizi olusturuyoruz.

[c language=”++”]
GLfloat vertices[] =
{
-0.5f, -0.5f, -0.5f, -0.5f, -0.5f, 0.5f, -0.5f, 0.5f, 0.5f, -0.5f, 0.5f, -0.5f,
0.5f, -0.5f, -0.5f, 0.5f, -0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, -0.5f,
-0.5f, -0.5f, -0.5f, -0.5f, -0.5f, 0.5f, 0.5f, -0.5f, 0.5f, 0.5f, -0.5f, -0.5f,
-0.5f, 0.5f, -0.5f, -0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, -0.5f,
-0.5f, -0.5f, -0.5f, -0.5f, 0.5f, -0.5f, 0.5f, 0.5f, -0.5f, 0.5f, -0.5f, -0.5f,
-0.5f, -0.5f, 0.5f, -0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, -0.5f, 0.5f
};

GLfloat colors[] =
{
0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0,
1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0,
0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0,
0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0,
0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0,
0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1
};
[/c]

burada olusturdugumuz arrayler karisik renkte bir kup olusturacak

daha sonra ana cizim fonksiyonumuzun icine VertexArray ve ColorArrayimizi yerlestiriyoruz.

[c language=”++”]
glPushMatrix();
glTranslatef(-10.0,4.0,10.0);
glRotatef(-90, 1.0, 0.0, 0.0);
GLfloat i, j =0;
/* vertex ve color arraylerimizi olusturduk*/
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
glVertexPointer(3, GL_FLOAT, 0, vertices);
glColorPointer(3, GL_FLOAT, 0, colors);

for(i = 0.0f; i < (GLfloat) 50; i += 1.0f)
{
for(j = 0.0f; j < (GLfloat) 50; j += 1.0f)
{
glPushMatrix();
glTranslatef(i, j, -5.0f);
glDrawArrays(GL_QUADS, 0, 24);
glPopMatrix();
}
}

/* arraylerimizi temizliyoruz */
glDisableClientState(GL_COLOR_ARRAY);
glDisableClientState(GL_VERTEX_ARRAY);
glPopMatrix();
[/c]

Array Listemizden bir kup cizimi icin pointerlarimizi kullandik
ve bir for dongusu ile bunu 50 defa tekrarlamamizi sagladik
bu sayede 100lerce satirlik kod yazmadan 5 satir kodda basit bir cok kup un
birlesmesinden olusan zemin olusturuyoruz.

Projemizin goruntusu;

ders10array2

Ders sonunda olusturdugumuz projenin .cpp kaynak dosyasini buradan indirebilirsiniz.

ders10

Leave a Reply

Your email address will not be published. Required fields are marked *