ورود

View Full Version : فرق glDrawArrays و glDrawElements



h00manb
سه شنبه 09 فروردین 1390, 14:07 عصر
سلام
من کد زیر را در برنامه ام نوشته ام که نتیجه آن کشیدن یک مثلث است
v:array[0..8]of real= (-1,-1,0, 1,-1,0, 0,1,0);
ii:array[0..2]of longword = (0,1,2);
......
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3,GL_FLOAT,0{sizeof(real) * 6},@v);
وقتی از
glDrawElements(GL_TRIANGLES,length(ii),GL_UNSIGNED _INT,@ii);
استفاده می کنم مثلث کشیده می شود
اما وقتی از
glDrawArrays(GL_TRIANGLES,0,length(ii));
استفاده ممی کنم چیزی نمایش داده نمی شود

1- چرا glDrawArrays کار نمی کند؟
2- فرق بین glDrawArrays و glDrawElements چیست؟
متشکر

pswin.pooya
سه شنبه 09 فروردین 1390, 18:56 عصر
کد ها رو مابین تگ code قرار بدید تا بشه اونها رو خواند

h00manb
چهارشنبه 10 فروردین 1390, 09:58 صبح
سوال اصلی من این است که فرق بین glDrawArrays و glDrawElements چیست؟

pswin.pooya
چهارشنبه 10 فروردین 1390, 14:02 عصر
خوب باید بگم که glDrawElements با آرایه اندیسها کار میکنه. یعنی شما علاوه بر آرایه ورتکس ها یه آرایه اندیس هم بهش میدی که با توجه به اون اندیسها ورتکس ها رو انتخاب میکنه. اینکار باعث افزایش سرعت و کاهش حجم حافظه مصرفی میشه. اما glDrawArray یه آرایه از ورتکسها رو میگیره و به ترتیب از ورتکس اول تا آخر رو رسم میکنه