Teksturali koordinata.
Teksturani obyekt ustiga qo‘shish uchun obyekt yuzasidagi nuqta bilan teksturaning nuqtasi o‘rtasidagi moslikni aniqlash kerak. Bu moslikni ikki usul bilan berish mumkin: maxsus funksiyaning tasviriy parametrlarni berib, har bir uchlar uchun alohida yoki barcha uchlar uchun barobar.
Birinchi usul buyruqlar yordamida qo‘llaniladi:
void glTexCoord [1 2 3 4][s i f d] (type coord)
void glTexCoord[1 2 3 4][s i f d]v (type *coord)
Hozirgi vaqtda ko‘pincha teksturalar koordinatalarini beruvchi glTexCoord2*(type s, type t) ko‘rinishdagi buyruqlari ishlatiladi. Teksturaning hozirgi paytdagi koordinatalar tushunchasi hozirdagi norma tushunchasiga o‘xshash bo‘lib, uchlar atributi hisoblanadi. Ammo hatto kub uchun teksturaning mos koordinatalarini topish yetarlicha murakkab mashg‘ulot hisoblanadi, shuning uchun GLU kutubxonasida doira, silindr va disk singari primitivlarni qurish buyruqlari, shuningdek ularga teksturani qo‘yish ko‘zda tutilgan. Buning uchun quyidagi
void gluQuadricTexture (GLUquadricObj* quadObject, GLboolean textureCoords)
buyruqni GL_TRUE ga teng bo‘lgan textureCoords parametri bilan chaqirish yetarli, va shunda joriy tekstura primitivlar ustiga avtomatik qo‘yiladi.
Ikkinchi usul buyruqlar yordamida qo‘llaniladi.
void glTexGen [i f d] (GLenum coord, GLenum pname, GLtype param)
void glTexGen[i f d]v (GLenum coord, GLenum pname,
const GLtype *params)
Coord parametri qaysi koordinataga formula berilishini belgilaydi va GL_S, GL_T qiymatini o‘zlashtirishi mumkin; pname keyingi qiymatlardan biriga teng bo‘lishi mumkin:
GL_TEXTURE_GEN_MODE teksturani olish uchun funksiyani belgilaydi.
Bu holatda param argumenti qiymatlarni qabul qiladi:
GL_OBJECT_LINEAR tekstura koordinatalarining mos qiymati tekislikkacha bo‘lgan masofani, pname qiymati yordamida beriluvchi GL_OBJECT_PLANE belgilaydi. Formula quyidagi ko‘rinishda bo‘ladi: g=x*xp+y*yp+z*zp+w*wp, g–tekstura koordinatasi (s yoki p), x, y, z, w – nuqtalar koordinatasi. xp, yp, zp, wp – tekislik tenglamasi koeffisientlari. Formulada obyekt kordinatalari ishlatiladi.
GL_EYE_LINEAR oldingi qiymatga o‘xshash, faqat formulada koordinatalar ishlatiladi, ya’ni obyektning tekstura koordinatalari ushbu holatda mazkur obyektning joylashishiga bog‘liq bo‘ladi.
GL_SPHERE_MAP obyektning sirtidan aks etish imkonini beradi. Tekstura obyekt atrofida xuddi “aylanayotganga” o‘xshaydi. Ushbu usul uchun koordinatalar turi ishlatiladi va kerakli normalar beriladi.
Do'stlaringiz bilan baham: |