Кіріспе

OpenGL++ туралы жалпы шолу

OpenGL++ – OpenGL 3D графикалық жүйесі негізінде объектіге бағытталған деректер құрылымдарын қолдайтын C++ тілінде жазылған графикалық кітапхана. Жоба SGI, IBM және Intel, кейіннен Digital Equipment Corporation компанияларының серіктестігі нәтижесінде бастау алды. Оның мақсаты OpenGL-дің тікелей қолдауынан гөрі жоғары деңгейдегі API ұсыну, сондай-ақ Java3D үшін іске асыру болып табылды. SGI Microsoft компаниясымен серіктестікке түсуге шешім қабылдағанда OpenGL++ бойынша жұмыс тоқтатылды, бұл Fahrenheit жобасына әкелді, ол да сәтті болмады.

Өмірбаян

3D жүйелерін пайдаланатын қолданбалардың басым көпшілігі өздерінің "дүниесіндегі" нысандарды сахналық граф деп аталатын дерек құрылымында сипаттайды. Сахналық граф әдетте ағаш тәрізді дерек құрылымы ретінде ұйымдастырылады, мұнда түйіндер нысандарды, ал қабырғалар олардың әлемдегі басқа нысандармен байланысын көрсетеді. Мысалы, үстел бір "кесте" нысанымен бейнеленуі мүмкін, оның бөліктері – үстел үсті, аяқтары сияқты – бірнеше қабырғалармен біріктірілген. 3D қолданбаларда жоғары өнімділіктің кілті – ағымдағы камераның орны мен бағытын ескере отырып, әлемдегі қандай нысандардың көрінетінін анықтау. Мысалы, камераның артындағы нысандарды салудың қажеті жоқ. Осы "іріктеу" операциясын жылдам орындау үшін сахналық графты жылдам аралау өте маңызды. Әдетте, сахналық графты жасау әзірлеушіге жүктелген, сондықтан нашар орындалған мысалдар жиі кездесіп, өнімділіктің төмендеуіне әкелетін. SGI әзірлеушіге жоғары сапалы сахналық граф жасауға көмектесетін бірнеше жобалармен жұмыс істеді, бірақ олардың ешқайсысы түрлі себептермен кеңінен таралған жоқ. Open Inventor осындай жобалардың бірі болатын, ол сахналық графты құруды жеңілдетуге бағытталған, бірақ нәтижелер міндетті түрде жоғары өнімділікке ие болмады. OpenGL Performer ұқсас жоба, ол жоғары жылдамдықты көріністерді жасауға және "дүниедегі" көптеген нысандарды қолдауға арналған, бірақ оны пайдалану оңай болмады.

Космо3D

Inventor және Performer командалары екі жүйені біріктіруге ешқандай себеп болмайтынын түсінді, осылайша дамудың қарапайымдылығы мен жоғары өнімділіктің екеуі де қол жеткізіледі. Бұл Cosmo3D жүйесін құруға әкелді, ол негізінен OpenGL-дің үстінде орналасқан, стандартталған жоғары өнімділік сахна графигі. Cosmo3D бүкіл сахналарды және оларды қайта құру үшін қажетті барлық деректерді сақтауға мүмкіндік беретін жаңа файл форматын енгізді – VRML форматы, ол бүгінге дейін қолданылуда. 1997 жыл бойы API-дың бірнеше нұсқалары таратылды. Дегенмен, ARB мынаны атап өтті: «Көп жұмыс жасалды, бірақ байланыс жеткіліксіз болды». OpenGL++ бойынша жұмыс жалғасқанда, Sun және SGI Java үшін қолайлы 3D стандарты бойынша да жұмыс істеп жатты. Аталған әрекеттер нәтижесіз аяқталып, Sun Java3D-ді жариялады. SGI өздерінің Cosmo жұмысы Java3D-нің прототипі болғанын және бұл жұмыс OpenGL++-қа дамыған сайын осы жоспарлармен бірге жүргенін мәлімдеді. OpenGL++ анықтамасы барысында Sun өздерінің Java3D жұмысына басымдық бергендіктен, бұл жобаға қатысуға қызығушылық танытпағанын хабарлады.

Соңында

1998 жылдың наурыз айында өткен АРБ отырысында SGI барлығына күтпеген жаңа жобаны – «Фаренгейтті» ұсынды. АРБ осы отырысқа қатысты жазбаларында: «SGI Windows ортасында құнды өнімдер құру үшін үйлесімді бағытта жылдамдамайтын Microsoft-пен бірлесіп жұмыс істеудің маңызды екенін түсінді. «Фаренгейт» осы бағыттағы маңызды қадам болды» делінген. OpenGL++ жобасы тоқтатылды. Бұл жоба SGI-нің сол кездегі басымдықтарының өзгеруіне байланысты, ірі компаниялармен серіктестік құру мақсатында бағытын өзгерту арқылы құрбан болды. Аталған компаниялар 3D кеңістігінен шығып, өзге өнімдерге көшкенде, SGI жобаны қолдаушы ретінде жалғыз қалды, осының алдын алуға тырысқан нәрсе осы болды. Соңында, 3D саласына баса назар аударған жалғыз компания Microsoft болды, ал «Фаренгейт» жобасы OpenGL++ жұмыстарынан кейін көп ұзамай басталып, аяқталды. Бүгінгі күні мұндай стандартталған көрініс графигі жоқ, ал SGI API әлемінен дерлік толығымен шықты. SGI бұрынғы Open Inventor кодын ашық дереккөздік код ретінде жариялады, бірақ OGL++ коды ешқашан толыққанды деңгейде аяқталған жоқ. Ақырғы дайын спецификация жоқ және OpenGL сияқты, мұндай ашық платформаның идеясы мен ерекшелігі оның ұзақ мерзімді құндылығын анықтаған болар еді, сахналық граф идеясының жалғыз іске асырылуы емес.