• Tayanch so’z va iboralar
  • 6-mavzu. 2D va 3D geometrik modellashtirishning metodlari va algoritmlari. 2D va 3D grafika yaratishning dasturiy interfeysi. Opengl texnologiyasi




    Download 251,74 Kb.
    Pdf ko'rish
    Sana18.05.2024
    Hajmi251,74 Kb.
    #243283
    Bog'liq
    7 (2)



    6-mavzu. 2D va 3D geometrik modellashtirishning metodlari va algoritmlari. 2D va 3D 
    grafika yaratishning dasturiy interfeysi. OPENGL texnologiyasi 
     
    Reja 
    1. 2D va 3D geometrik modellashtirishning metodlari va algoritmlari 
    2. 2D va 3D grafika yaratishning dasturiy interfeysi 
    3. OPENGL texnologiyasi 
    Tayanch so’z va iboralar
    . 2D, 3D, OpenGL, DirectX, geometrik modellashtirishning 
    metodlari va algoritmlari, grafika yaratishning dasturiy interfeysi 
    Real obyektlarni yaratish, ikki va uch o’lchovli grafika sohasida ilovalar yaratish uchun 
    keng tarqalgan amaliy dasturiy interfeyslardan biri hisoblangan OpenGL muhitidir. OpenGLda 
    axborotlar birligi uchlar hisoblanadi va ular yordamida murakkab obyektlar quriladi. Dasturchi 
    uchlarni yaratadi va ularni qanday birlashtirish (chiziqlar yoki ko'pburchaklar orqali) kerakligini 
    ko‘rsatadi, kamera va yoritkich koordinatalari hamda parametrlarini o‘rnatadi, OpenGL esa ekranda 
    tasvirni yaratish ishi bilan shug‘ullanadi. OpenGL dasturchilar uchun katta bo'lmagan uch o‘lchovli 
    sahnani qurishda juda ham qo‘l keladi. Uch o‘lchovli grafika algoritmlarini amalga oshiadi. Uch 
    o‘lchovli dasturlashtirish uchun ham kutubxona foydali, chunki u asosiy mexanizmlarni namoyon 
    etadi va belgilangan avtomatlashuvni bajaradi. OpenGL apparatga bog‘liq kutubxona hisoblanadi. 
    OpenGL dan foydalanib uch o‘lcnovli sahnani osongina yaratish, unga teksturalar qo‘yish, yoruglik 
    manbalari bilan yoritish, shaffoflik, tuman effektini berish, ranglarni aralashtirish, shuningdek, 
    trafaret joylashtirish, sahna obyektlarini, kameralar va yoritkichlarni belgilangan trayektoriya 
    bo'yicha harakatlantirish, aynan animatsiya tayyorlash mumkin. 
    OpenGL — bu maxsus o'rnatilgan tizimlar - mobil telefonlar, PDA, o'yin pristavkalari 
    uchun mo'ljallangan OpenGL GUI ning quyi qismidir. OpenGL Chronos Group konsortsiumi 
    tomonidan ishlab chiqiladi, unga grafika va multimediya uchun ochiq API bog’liq bo'lgan dasturiy 
    va apparat ishlab chiqaruvchilari kiradi. 
    DirectX va OpenGL bir- biriga raqobatchi sanaladi. Ular ko'pincha kompyuter o'yinlari 
    dasturlari tomonidan foydalaniladi. OpenGL kutubxonasi ishlashi sodda. Ushbu kutubxonada 
    ma'lum uchburchaklarga ishlov berilishini boshqaruvchi yadro mavjud. Protsessual model 
    ma'lumotlar uzatishning asosi bo'lib, funktsiyalar ishda chaqiriladi. OpenGL o'zgaruvchilar 
    qiymatlari bilan bog'liq bo'lgan holatga ega, bu har bir vaqtda har bir vaqtda ishlash parametrlari 
    qanday ishlashi kerakligini ko'rsatadi. OpenGL yadrosi protsessual bo'lishiga qaramay, ob'ektga 
    yo'naltirilgan texnologiyalar bilan bog'liq.
    DirectX — OpenGLdan farq qiladi va COM modelidagi asosga ega. DirectX oddiy 
    uchburchakni chizish uchun juda ko'p miqdordagi kod ishlatiladi. Ushbu kod bilan ishlashni 
    soddalashtirish uchun Microsoft DirectX Common Files-ni ishlab chiqdi. Bu kod nusxalarini 
    qisman yashirishga imkon beradigan alohida kutubxona. OpenGL va DirectX ularning arxitekturasi 
    va ish printsiplari jihatidan juda farq qiladi. OpenGL va DirectX kutubxonalarning tezligi bir xil. 
    Buning sababi DirectX va OpenGL-dagi ko'p funktsiyalar apparat tezlatgichlaridan foydalangan 
    holda ishlaydi. Shuningdek, ishlash tezligii apparat drayverlarining sifatiga bog'liq bo'lishi mumkin.
    OpenGL va DirectX o'rtasida yana qanday farqlar borligini ko'rib chiqamiz. Interfeysning 
    qulayligi, funktsiyalarining moslashuvchanligi, foydalanish doirasi bilan belgilanadi. OpenGL 
    DirectX dan farqli o'laroq, pikselli soyalarni qo'llab-quvvatlamaydi. Qayta ishlash tezligi va tasvir 
    sifati ishlatilgan kutubxonaga bog'liq emas. Dastlab, OpenGL kutubxona sifatida rejalashtirilgan 
    bo'lib, u juda uzoq vaqt davomida dolzarb bo'lib qoladi. Maxsus kengaytmalar yordamida OpenGL 
    asosiy mexanizmlardan chiqib, videokarta uchun yangi funktsiyalarni amalga oshirishi mumkin. 
    Buning uchun dasturchilar maxsus ruxsatnoma zarur bo’ladi.
    DirectXni ob'ektga yo'naltirilgan dasturlash va COM modeliga rioya qiladigan dasturchilar 
    yaxshi ko'rishadi. COM yordamida ushbu kod kutubxonasida asosiy kodni tahrirlamasdan 
    o'zgartirishlar kiritiladi. OpenGLda bunday yondashuv yo'q, ammo bu unchalik kuchli kamchilik 
    emas. DirectX kodida kichik dastur yozish uchun 200-800 satr ishlatiladi, OpenGLda 50 satr kifoya 


    qiladi. OpenGL ilmiy sohalarda turli xil tadqiqotlar natijalarini vizual ravishda namoyish qilish 
    uchun juda mos keladi. OpenGL ning katta ustunligi bu standartning ochiqligi. Har qanday tashkilot 
    SGI litsenziyani sotib olish va OpenGLning o'z versiyasini ishlab chiqishni boshlash huquqiga ega. 
    DirectX yopilgan va uni faqat Microsoft ishlab chiqishi mumkin. Shuning uchun DirectX yo'li tor 
    doiradagi mutaxassislar tomonidan belgilanadi. 
    Xulosa qilib aytganda, DirectX professional o'yinlar va ularning rivojlanishi uchun
    shuningdek Windows uchun mos keladi. So'nggi paytlarda OpenGL o'yinlarda ishlatilmayapti. 
    Ushbu kutubxona turli xil dasturlarni turli platformalarga o'tkazish zarurati tug'ilganda, ilmiy 
    tadqiqotlar uchun, o'quv tadbirlari va boshqa sohalarda ishlatiladigan kuchli kompyuterlarda 
    qo’llaniladi. Ikkala API ham 3D grafik apparati tezlashuv xususiyatlariga kirishni ta'minlaydi. 
    Xullas, Microsoft DirectXga o'zgartirishlar kiritishi mumkin. OpenGL - bu professional grafik 
    dasturlar uchun, DirectX esa o'yinlar uchun mo’ljallangan.
    OpenGL dastlab 3D Grafik kutubxonasi sifatida ishlab chiqilgan. Microsoft Windows 
    drayverlari bilan OpenGL yordamisiz ishlash mumkin. Windows uchun OpenGL ishlatish uchun 
    drayverni ishlab chiqaruvchining veb-saytidan o'rnatish zarur. 3D dasturlarini ishlab chiqishda 
    boshlovchilar avval Direct3D bilan shug'ullanishi (sababi juda oddiy - Microsoft juda yuqori sifatli 
    SDK beradi) va keyin OpenGL bilan shug'ullanish lozim. OpenGL uchun SDK mavjud emas.
    Chronos Group platformalar va qurilmalarida multimedia ilovalari uchun ochiq standartlarni 
    ishlab chiqish va qo'llab-quvvatlash uchun mo’ljallangan. Konsorsium AMD va NVIDIA 
    tomonidan qo'llab-quvvatlanadi. OpenGL interfeysi DirectXga nisbatan ko'proq siqish imkonini 
    beradi. Windows 7, Windows 8.1, Windows 10, Android va Linux-da qo'llab-quvvatlanadi. 
    OpenGL - ikki va uch o’lchovli grafika sohasida ilovalar yaratish uchun ancha keng 
    tarqalgan amaliy dasturiy interfeys (API - Application Programming Interface) lardan biri 
    hisoblanadi. OpenGL (Open Graphics Library - ochiq grafik kutubxona) standart turli xil 
    platformalar uchun kerakli, apparatga bog‘liq bo‘lmagan interfeys sifatida dasturiy ta’minot ishlab 
    chiqarish sohasidagi yetuk firma tomonidan 1992 yilda ishlab chiqilgan va tasdiqlangan. Standart 
    Silicon Graphics Inc firmasi tomonidan ishlab chiqilgan. Kutubxona 120 ga yaqin turli 
    buyruqlardan iborat bo‘lib, dasturchi operatsiyalar va obyektlami tayinlashda hamda interaktiv 
    grafik ilovalarni yozishda foydalanadi. Bugungi kunda OpenGL grafik tizimini ko‘pgina apparatli 
    va dasturiy platformalarni quvvatlaydi. Ushbu tizim Windows va Linux operatsion tizimlarida 
    ishlovchilar uchun ochiq.
    OpenGL kutubxonasining o ‘ziga xos xususiyatlari, ya’ni ushbu grafik standartning 
    rivojlanishi va keng tarqalishini ta’minlovchi jihatlar, quyidagilar hisoblanadi:

    Barqarorlik. Standartga o‘zgartirish va qo‘shimchalar kiritish, oldingi dasturiy 
    ta’minotlarda ishlab chiqilganlarning mosligini saqlab qolish ko‘rinishida amalga 
    oshiriladi.

    Ishonchlilik va uzatuvchanlik. OpenGL dan foydalanayotgan ilova, axborotlar 
    tasvirlanishini tashkil qilish va foydalanilayotgan operatsion tizim turiga bog‘liq 
    bo’lmagan holda bir hil vizual natijani kafolatlaydi. Bundan tashqari, ushbu ilovalar 
    ShK larda qanday bajarilsa, xuddi shunday ishchi stansiya va superkompyuterlarda 
    ham bajariladi.

    Qo ‘llashning osonligi. OpenGL standarti mukammal o’ylangan tuzilmaga ega va 
    tushunarli interfeysga ega bo'lib, boshqa grafik kutubxonalardan foydalanishga 
    nisbatan dastur kodi kamroq bo’lgan samarali ilovalarni yaratish imkonini beradi. 
    Turli qurilmalar biian moslikni ta’minlash uchun zaruriy funksiyalar kutubxona 
    darajasida tashkillashtirilgan bo’lib, ilovalar ishlab chiqishni ancha osonlashtiradi. 


    OpenGL imkoniyatlarini uning kutubxonasidagi funksiyalar orqali ta’riflaymiz. Barcha 
    funksiyalarni beshta toifaga ajratish mumkin:

    Primitivlarni tavsiflash funksiyasi grafik nimtizimni aks ettirishga qodir bo‘lgan, 
    ierarxiyaning quyi darajasidagi obyektlarni belgilaydi. OpenGLda primitivlar sifatida 
    nuqta, chiziq, ko‘pburchak va boshqalar nazarda tutiladi.

    Ranglar manbasini tavsiflash funksiyasi uch o‘lchovii sahnada joylashgan, ranglar 
    manbasi parametri va holatini tavsiflash uchun xizmat qiladi.

    Atributlarni tayinlash funksiyasi. Atributlarni tayinlash yordamida dasturchi aks 
    etadigan obyekt ekranda qanday ko‘rinishga kelishini belgilaydi. Boshqacha so‘z 
    bilan aytganda, agar tasvir ekranda hosil bo‘lishi primitivlar yordamida belgilansa, 
    unda atributlar ekranga chiqarish usulini belgilaydi. Atributiar sifatida OpenGL rang, 
    material xususiyati, tekstura, yorug‘lik parametrlarini berish imkonini beradi.

    Vizuallashtirish funksiyasi virtual fazoda kuzatuvchi (kamera obyektivi parametri) 
    holatini belgilash imkonini beradi. Ushbu parametrlarni bilish, tizim nafaqat tasvirni 
    to‘g‘ri qurishi, balki kuzatuv maydonidan tashqari bo‘lgan obyektlarni ajratib 
    qo‘yishi ham mumkin.

    Geometrik о ‘zgartirish funksiyalari to‘plami dasturchiga obyektlarni turli xil 
    o‘zgartirish - burish, ko‘chirish, masshtablashtirishni bajarish imkonini beradi. 
    Shunday ekan, OpenGL qo‘shimcha operatsiyalami ham bajara olishi mumkin, 
    masalan, chiziqlar va sirtiarni qurishda splaynlardan foydalanish, tasviming 
    ko‘rinmas qismlarini olib tashlash, piksellar darajasidagi tasvirlar bilan ishlash va 
    h.k. 
    OpenGL funksiyalari mijoz-server texnologiyasi asosida yaratilgan. Ilovalar mijoz vazifasini 
    bajaradi - ular buyruqlarni ishlab chiqadilar, server OpenGL esa ularni qayta ishlaydi va bajaradi. 
    Server o‘zi mijoz joylashgan kompyutyerda joylashgan bo‘lishi ham mumkin (masalan, dinamik 
    yuklanuvchi kutubxona ko‘rinishida - DLL), yoki boshqa kompyuterda (ushbu holda mashinalar 
    o‘rtasida ma’lumot almashinish uchun maxsus protokol qo‘llaniladi). Har bir primitiv - nuqta
    kesma, ko'pburchak va boshqalar bo‘lishi mumkin. Har bir rejim boshqasiga bog'liq bo'lmagan 
    holda o'zgartirilishi mumkin. Primitivlarni aniqlash, rejimlami tanlash va boshqa amallar kutubxona 
    funksiyalarini chaqirish ko‘rinishidagi buyruqlar orqali tavsiflanadi. Primitivlar bir yoki bir nechta 
    uchlar (vertex) to‘plami yordamida aniqlanadi.Uch nuqta orqali ifodalanadi, kesma oxiri yoki 
    ko'pburchak uchi. Har bir uch atributlar deb ataluvchi ma’lum bir ma’lumotlarga ega (koordinatalar, 
    rang, normal, tekstura koordinatalari va h.k.). Ko‘p hollarda uchlar bir biriga bog'liqsiz holda qayta 
    ishlanadi. OpenGL grafik tizimi tuzilishi jihatidan grafik obyektlarni ketma-ket qayta ishlashning 
    bir necha bosqichlaridan iborat konveyer hisoblanadi. OpenGL buyruqlari har doim ularning kelishi 
    tartibida amalga oshiriladi, biroq, ularning hosil qilinish effektidan oldin to‘xtalishlar bo‘lib qolishi 
    mumkin. Ko‘p hollarda OpenGL aniq interfeysni taqdim etadi, ya’ni obyektning aniqlanishi uning 
    kadr buferida vizualizatsiya bo'lishiga olib keladi. Dasturchilar nuqtai nazarida, OpenGL - grafik 
    qurilmalardan foydalanishni boshqarib turadigan buyruqlar to‘plamidir. Agarda qurilma faqatgina 
    adreslangan kadr buferidan tarkib topgan bo‘lsa, u holda OpenGL markaziy prosessor resurslaridan 
    foydalanish yordamida to‘liq amalga oshirilishi kerak. Odatda grafik qurilma turli darajadagi 
    tezlikni ta'minlaydi: chiziq va ko‘pburchaklami chiqarishdan geometrik ma’lumotlar ustida turli 
    amallarni qo‘llab murakkab grafik usullami uskunaviy amalga oshiradi.
     
    Nazorat savollari 
    1. 2D, 3D haqida gapiring.
    2. OpenGL haqida gapiring. 
    3. DirectX haqida gapiring. 
    4. geometrik modellashtirishning metodlari va algoritmlari haqida gapiring. 
    5. grafika yaratishning dasturiy interfeysi haqida gapiring. 

    Download 251,74 Kb.




    Download 251,74 Kb.
    Pdf ko'rish

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    6-mavzu. 2D va 3D geometrik modellashtirishning metodlari va algoritmlari. 2D va 3D grafika yaratishning dasturiy interfeysi. Opengl texnologiyasi

    Download 251,74 Kb.
    Pdf ko'rish