Кіріспе

OpenGL Performer, бұрын IRIS Performer деп белгілі болған және көбінесе жай ғана Performer деп аталатын, OpenGL негізінде құрылған, нақты уақытты визуалды симуляция қолданбаларын іске асыруға арналған коммерциялық қосымша кодтар кітапханасы. OpenGL Performer-ді SGI әзірлеген, және оны күтіп, жаңартуды жалғастыруда. OpenGL Performer IRIX, Linux және Microsoft Windows-тың бірнеше нұсқалары үшін қолжетімді. ANSI C және C++ интерфейстері де бар.

Тарих

Performer 1991 жылы SGI-дің Open Inventor жобасының тобы, бұл кезде IRIS Inventor деп аталған, бағдарламалаудың қарапайымдығынан гөрі өнімділікке көбірек назар аударуды шешкен кезде пайда болды. Inventor пайдалануға оңай нысандар мен олармен өзара әрекеттесуге арналған түрлі UI элементтерін ұсынса, Performer өнімділік үшін динамикалық түрде қайта құрыла алатын сахна графикалық жүйесіне баса назар аударды, бұл рендеринг міндеттерінің әртүрлі кезеңдерін бірнеше жіптерде параллель түрде орындауға мүмкіндік берді. Performer сахнаны гистерезис диапазондарымен және жоғалу мүмкіндіктерімен егжей-тегжейлі сипаттауға мүмкіндік берді. Фрейм жылдамдығы мен статистика бақыланды және «стресс» факторы есептелді. Бұл кадр жылдамдығын сақтау үшін сахнадағы егжей-тегжейлі деңгейді одан әрі реттеуге, қажетсіз бөлшектерді жоюға мүмкіндік берді. Performer-дің басқа да маңызды мүмкіндіктеріне симметриялық көп процессорлық мүмкіндіктерді пайдалану, бірнеше графикалық құбырларды қолдау және жоғары деңгейдегі жүйелердің кеңейтілген ресурстарын пайдалану кірді. Осы себепті Performer күрделігіне қарамастан пайдалануға оңай болды. Қолданбаларды іріктеу және рендеринг әртүрлі физикалық процессорларға бекітілген әртүрлі жіптерде орындалуы мүмкін. Көп құбырлы (көп графикалық жүйелер) конфигурациясында әр графикалық құбырдың рендерингіне арналған жеке жіп болды, ал іріктеуге де арнайы процессор тағайындалды. Деректерді беттеу, текстураны беттеу, нүктелік жарық көздерін басқару (ұшу симуляциясы үшін) және соқтығысуды анықтау үшін қиылысуды тексеру сияқты кеңейтілген мүмкіндіктер де асинхронды I/O және өңдеуді графикалық өнімділікке кері әсер етпей орындауға мүмкіндік беретін арнайы процессорлармен жабдылды. Бұл күрделіліктің көп бөлігі салыстырмалы түрде жоғары деңгейдегі конфигурация шақырулары бар қарапайым сахналық график API-нің астында жасырылды, олар жіптер мен процестер аралық байланысты орнату үшін қолданылды. Performer-дің өзіндік файл форматы болмады, тек MultiGen-нің OpenFlight форматын жүктеуіш сияқты үшінші тараптың плагиндерін қолдады. Сондай-ақ, әдепкі орындалу уақыты болмады, тек үлгі код және жиі қолданылатын және өзгертілетін «perfly» үлгілік қосымшасы болды. Бұл оның пайдалануы қиын деген репутацияға ие болуына ықпал еткен болуы мүмкін. 1990 жылдардың ортасында Inventor мен Performer-ді біріктірудің қажеті жоқ екені анық болды. Бұл SGI-ді Inventor және Performer (қазіргі API shims) негізінде Cosmo 3D жобасын құруға және оны SGI платформасындағы болашақ жұмыстар үшін жаңа және жоғары деңгейдегі стандартталған API ретінде насихаттауға итермеледі. Алайда, Cosmo 3D-нің алғашқы бета нұсқасынан кейін SGi Intel және IBM (кейін DEC) компанияларымен бірігіп, Cosmo-ның тазартылған нұсқасы болған OpenGL++ құрды. Бұл жоба SGI Microsoft-пен бірге дамытқан, одан да ұқсас Fahrenheit жобасына назар аударған кезде тоқтап қалды. Бүгінгі күні Inventor және Performer жеке өнімдер болып қала береді және біріктірілген нұсқалардың ешқайсысы пайда болған жоқ.

Ерекшеліктері

Performer негізінен екі кітапханадан тұрады: төменгі деңгейдегі libpr және жоғары деңгейдегі libpf. libpr кітапханасы pfGeoSet және pfGeoState тұжырымдамасына негізделген жоғары жылдамдықты рендеринг функцияларына объектіге бағытталған интерфейс ұсынады. pfGeoSet – көпбұрыштар немесе сызықтар сияқты графикалық примитивтердің жиынтығы. pfGeoState белгілі бір pfGeoSet-ке қатысты қасиеттерді, мысалы, жарықтандыру, мөлдірлік және текстуралауды қамтиды. libpf кітапханасы иерархиялық көрініс графиктерін жасау және манипуляциялау, көрініс өңдеу (симуляция, қиылысу, кесу және сызу тапсырмалары), егжей-тегжейлілік деңгейін басқару, асинхронды деректер қорын беттеу, динамикалық координаттар жүйесі, қоршаған орта модельдері, жарық нүктелері және тағы да басқаларын қамтиды. Бұл кітапхана сонымен қатар бірнеше графикалық құбырларда таратылған бірнеше көрініс терезелерін (viewport) ашық түрде қолдайды. Басқа Performer кітапханалары – libpfutil, libpfdb, libpfui және т.б. – оптимизацияланған геометрия жасау, деректер қорын түрлендіру, құрылғыдан кіріс (мысалы, сыртқы flyboxes және MIL STD 1553 mux шиналарымен байланыс үшін), қозғалыс модельдері, соқтығысу модельдері және Open Inventor, OpenFlight, Designer's Workbench, Medit және Wavefront obj файлы сияқты жалпы дерек форматтарын қолдайтын форматтан тәуелсіз деректер қоры интерфейсін ұсынады.