Компьютер графикаси



Download 15,78 Mb.
bet70/128
Sana14.07.2022
Hajmi15,78 Mb.
#795608
1   ...   66   67   68   69   70   71   72   73   ...   128
Bog'liq
1 O\'quv qo\'llanma Kompyuter grafikasi (1) (2)

Uchlar massivlari
Agar uchlar soni ko‘p bo‘lsa va ularning har birini glVertex*() buyrug‘i bilan chaqirmaslik uchun
void glVertexPointer (GLint size, GLenum type, GLsizei stride, void* ptr)
buyrug‘idan foydalanib, massivlarga birlashtirish qulayroq. Bu buyruq uchlarning koordinatalari va saqlash uslubini belgilaydi. Bu yerda size uchlarning koordinatalar sonini ko‘rsatadi (2,3,4 bo‘lishi mumkin), type ma’lumotlarning turini belgilaydi (GL_ShORT, GL_INT, GL_FLOAT, GL_DOUBLE). Ba’zan bitta massivda boshqa uchlarning atributlarini saqlash qulayroq, shunda stride parametri bitta uchning koordinatasidan ikkinchisining koordinatasigacha kuchishini belgilaydi. Agar stride nolga teng bulsa, bu degani koordinatalar ketma ket joylashgan. Ptr parametrida ma’lumotlar joylashgan manzil ko‘rsatiladi.
Shunga o‘xshab quyidagi buyruqlardan foydalanib normal, ranglar va uchlarni boshqa atributlarining massivlarini aniqlash mumkin:
void glNormalPointer ( GLenum type, GLsizei stride, void *pointer )
void glColorPointer (GLint size, GLenum type, GLsizei stride, void *pointer)

Bu massivlarni keyinchak ham ishlatish uchun quyidagi buyruqni chaqirish kerak:


void glEnableClientState (GLenum array)
shu buyruq bilan keyingi parametrlar qo‘llaniladi:
GL_VERTEX_ARRAY, GL_NORMAL_ARRAY, GL_COLOR_ARRAY.
Massiv bilan ishlashni tugatgandan sung void glDisableClientState (GLenum array) buyrug‘ini qo‘llaymiz.
Massivning ichini qurish uchun
void glArrayElement (GLint index)
buyrug‘i ishlatiladi.
Bu buyruq index nomerga ega massiv elementlaridan foydalanib uchlarning atributlarini OpenGL ga yuboradi. Uning o‘rniga odatta
void glDrawArrays (GLenum mode, GLint first, GLsizei count)
buyrug‘i ishlatiladi. U mode parametri bilan aniqlanadigan count primitivlarni chizadi. Bunda u first dan first+count-1 gacha indeksli massiv elementlaridan foydalanadi. Bu glArrayElement() buyrug‘ini chaqirish bilan teng.
Agarda uch bir necha massivga kirsa uning koordinatalarini qaytarish o‘rniga massivda indeksini qo‘llash qulayroq.
Buning uchun
void glDrawElements (GLenum mode, GLsizei count, GLenum type, void *indices)
buyrug‘i ishlatiladi, bu yerda indices-uchlarning raqamlar massivi. Type bu massivning elementlarini turini belgilaydi GL_UNSIGNED_BYTE, GL_UNSIGNED_ShORT, GL_UNSIGNED_INT, count esa ularning sonini belgilaydi.
Massivlarning qo‘llanishi OpenGL serveriga ma’lumotlarning jo‘natilishini optimal holatga keltiradi va shu bilan birga uch o‘lchamli sahnani chizishni tezlashtiradi. Bunday uslub primitivlarni aniqlash uchun juda tez va katta hajmli ma’lumotlarni vizualizasiyalash uchun juda qulay.



Download 15,78 Mb.

Do'stlaringiz bilan baham:
1   ...   66   67   68   69   70   71   72   73   ...   128




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish