Кіріспе
3D графикалық ядро. Open Inventor, бастапқыда IRIS Inventor деп аталған, OpenGL үшін жоғары деңгейлі бағдарламалауды қамтамасыз ету мақсатымен SGI компаниясы жасаған C++ объектіге бағытталған 3D графикалық құралдар жиынтығы. Оның басты мақсаттары – бағдарламашыларға ыңғайлылық пен тиімділікты арттыру. Open Inventor жеке меншік бағдарламалық қамтамасыз ету ретінде де, GNU Lesser General Public License (LGPL) 2.1 нұсқасының талаптарына сәйкес, ашық бастапқы кодты бағдарламалық қамтамасыз ету ретінде де қол жетімді. Басты міндет – объектіге бағытталған API енгізу арқылы 3D бағдарламалауды қолжетімді ету, бұл дамытушыларға төменгі деңгейдегі OpenGL-дің күрделілігінсіз күрделі көріністерді жасауға мүмкіндік береді. Құралдар жиынтығына көрініс графтары, алдын ала анықталған пішіндер және көріністі басқаруды жеңілдету үшін автоматты түрде көрінбейтін объектілерді іріктеу сияқты мүмкіндіктер кіреді. Open Inventor пайдаланудың қарапайымдылығына баса назар бергенмен, сол контексте пайда болған OpenGL Performer жобасы өнімділікті оңтайландыруға бағытталды. Кейіннен екі жоба да қолжетімділік пен өнімділік арасындағы тепе-теңдікті табуға тырысты, нәтижесінде Cosmo 3D және OpenGL++ сияқты бастамалар дүниеге келді. Бұл жобалар әртүрлі даму және жетілдіру сатыларынан өтті, 3D графикалық бағдарламалау парадигмаларының эволюциясына үлес қосты.
Open Inventor, originally IRIS Inventor, is a C++ object oriented retained mode 3D graphics toolkit designed by SGI to provide a higher layer of programming for OpenGL. Its main goals are better programmer convenience and efficiency. Open Inventor exists as both proprietary software and free and open source software, subject to the requirements of the GNU Lesser General Public License (LGPL), version 2.1. The primary objective was to make 3D programming accessible by introducing an object oriented API, allowing developers to create complex scenes without the intricacies of low level OpenGL. The toolkit incorporated features like scene graphs, pre defined shapes, and automatic occlusion culling to streamline scene management. While Open Inventor focused on ease of use, the OpenGL Performer project, spawned from the same context, emphasized performance optimization. The two projects later converged in an attempt to strike a balance between accessibility and performance, culminating in initiatives like Cosmo 3D and OpenGL++. These projects underwent various stages of development and refinement, contributing to the evolution of 3D graphics programming paradigms.
Ерте тарих
1988-1989 жылдары Вэй Йен Рикк Кэриге IRIS Inventor жобасын жетекшілік етуді ұсынды. Олардың мақсаты 3D графикалық қосымшаларды жасауды оңайлату үшін құралдар жиынтығын құру болды. Бұл стратегия IRIS GL-мен жеткілікті 3D қосымшалар жасалмай отыр деген ойға негізделген, себебі IRIS GL ұсынған төмен деңгейлі интерфейспен жұмыс істеуге тым көп уақыт кетіп жатты. Егер объектіге бағытталған API қолдану арқылы 3D бағдарламалау оңайлатылса, онда көбірек адамдар 3D қосымшаларын жасайды және SGI пайда көреді. Сондықтан, басты ұстаным – әрқашан «пайдаланудың қарапайымдылығы» «тиімділіктен» бұрын тұрды, және жақын арада «адамдарға арналған 3D бағдарламалау» деген ұран кеңінен қолданыла бастады.
Қолдану
OpenGL (OGL) — қарапайым көпбұрыштардың тізімін қабылдап, оларды мүмкіндігінше жылдам көрсетуге арналған төмен деңгейлі қолданбалық бағдарламалау интерфейсі. «Үй салу» сияқты нақтырақ нәрсені жасау үшін бағдарламашы объектіні қарапайым OGL нұсқауларының тізбегіне бөліп, оларды көрсету үшін жүйеге жіберуі керек. Бір мәселе — OGL өнімділігі осы нұсқаулардың жүйеге қалай жіберілгеніне өте сезімтал, сондықтан пайдаланушы қандай нұсқауларды және қандай ретпен жіберу керектігін білуі қажет, сондай-ақ нәтижедегі кескінде көрінбейтін объектілерді жібермеу үшін деректерді мұқият іріктеуі керек. Қарапайым бағдарламаларды бастау үшін көптеген бағдарламалау жұмыстарын жасау қажет. Open Inventor (OI) осы мәселені шешу және жұмыс істеу үшін ортақ базалық қабатты ұсыну үшін жазылған. Объектілерді текшелер мен көпбұрыштар сияқты алдын ала жасалған пішіндерден туындатуға болады, содан кейін оларды жаңа пішіндерге оңай өзгертуге болады. Көрсетілуі тиіс «әлем» OI басқаратын сахналық графқа орналастырылды, жүйе графтың ішіндегі объектілерге автоматты түрде окклюзиялық іріктеуді қолданады. OI сонымен қатар оларды сахнаға қолдану үшін бірқатар басқарушы объектілер мен жүйелерді қамтиды, бұл әдеттегі өзара әрекеттесу тапсырмаларын жеңілдетеді. Соңында, OI «әлемдерді» сақтау үшін ортақ файл форматын және осы файлдардан әлемді автоматты түрде сақтау немесе жүктеу кодын ұсынды. OI-де бірнеше жүз жол кодты жазып, құралдар жиынтығының бөліктерін «қосымша» кодпен байланыстыру арқылы негізгі 3D қосымшаларын жасауға болады. Алайда, OI қолмен жазылған кодтан баяу болды, себебі 3D тапсырмаларды сахналық графтың деректерін қолмен өзгертусіз жақсы орындау өте қиын. Тағы бір практикалық мәселе — OI тек өзінің файл форматымен ғана жұмыс істей алады, бұл әзірлеушілерді ішкі жүйеге және одан түрлендіргіштерді жазуға мәжбүр етті.
Орындаушы
Inventor жобасы басталғалы шамамен бір жыл өткен соң, басқаша философия қалыптаса бастады. SGI жүйелерінде қолданбаларды жазуды жеңілдетудің орнына, мақсат баяу қолданбаларды жазуды қиындатуға өзгертілді. Inventor командасының мүшелері өздерінің жеке тобын құрып, OpenGL Performer жобасының негізін қалады. Performer де ішкі сахналық графқа негізделген, бірақ оны жылдамдықты арттыру үшін өзгертуге рұқсат берілді, тіпті кепілдік берілген өнімділік деңгейін сақтау үшін "маңыздылығы төмен" объектілер мен көпбұрыштарды жоюға дейін барды. Performer қосымша өнімділік үшін тапсырмаларды параллель орындау үшін бірнеше процестерді де пайдаланды, бұл оны бірнеше процессорда (бір нұсқасында) іске қосуға мүмкіндік берді. Inventor-дан өзгеше, Performer жабық қалды, соның арқасында SGI ең соңғы аппараттық жақсартулармен бірқадамда жүру үшін API-ды қажет болған жағдайда өзгертуге мүмкіндік алды.
1990 жылдардың ортасы
1990 жылдардың ортасында екі жүйені біріктіруге ешқандай себеп жоқ екені анықталды, нәтижесінде жоғары деңгейдегі, өнімділігі де, бағдарламалану мүмкіндігі де бар бір API пайда болды. SGI екі жүйені біріктіру мақсатында тағы бір жобаны бастады, ол ақырында Cosmo 3D-ге әкелді. Бірақ Cosmo-да жақсы жобалау арқылы болдырмауға болатын бірнеше практикалық мәселелер болды. Соңында, барлық бұл идеялар Intel, IBM және DEC компанияларымен бірлесіп OpenGL++ жобасын құруға бірікті. Негізінен, Cosmo 3D-нің жаңартылған және ашық нұсқасы болғандықтан, Cosmo бойынша жұмыс тоқтатылды және SGI толыққанды OpenGL++-қа көшті. OpenGL++ жобасы ұзаққа созылып, ақырында тоқтатылды, содан кейін SGI Microsoft компаниясымен бірлесіп ұқсас Fahrenheit жобасын іске қосты, бірақ ол да сәтсіз аяқталды. 1994 жылы SGI Open Inventor лицензиясын Template Graphics Software (TGS) және Portable Graphics есімді екі үшінші тарапты әзірлеушіге берді; 1996 жылы TGS Portable Graphics компаниясын сатып алып, жалғыз лицензия иесіне айналды.
Жақында болған тарих
Көптеген жылдар бойы TGS (қазір FEI) компаниясының эксклюзивті лицензиясымен ғана қолжетімді болғаннан кейін, Inventor 2000 жылдың тамызында LGPL ашық кодты лицензиясы бойынша жарияланды және SGI-ден қолжетімді болды. Соған шамамен бір уақытта SIM (Systems in Motion) компаниясы Coin3D API-ның клондалған кітапханасын шығарды. Кейін SIM Kongsberg тобына қосылып, Kongsberg SIM деп аталды. Coin кітапханасы бастапқы SGI Inventor кітапханасымен ешқандай кодты бөліспей, үйлесімділік үшін сол API-ны іске асыра отырып, таза бөлме тәсілімен, бастапқы кодтан жазылды. Kongsberg 2011 жылы Coin3D-нің дамуын тоқтатты және кодты BSD 3 лицензиясымен жариялады. SGI-дің ашық кодты нұсқасы қолдаусыз қалды және SGI кітапханы одан әрі дамытуға міндеттеме бермеді. Дегенмен, MeVisLab (MeVis Medical Solutions AG және Fraunhofer MEVIS) ашық кодты нұсқаны пайдаланады, оның дамуы жалғасуда. Thermo Scientific Open Inventor әлі де дамытылуда және медициналық бейнелеу, медициналық бейнелерді өңдеу, 3D-рефлексиялық сейсмология және мұнай қоймаларын модельдеу салалары үшін бастапқы Inventor API-ға бірнеше жақсартулар қосты. Open Inventor API әлі де әлемдегі ғылыми және инженерлік визуализация жүйелерінде күрделі 3D қолданбалы бағдарламалық құралдарды жасау үшін кеңінен қолданылады. TGS 2004 жылы Mercury Computer Systems компаниясымен сатып алынды. 2009 жылдың маусым айында ол Visualization Sciences Group (VSG) деген тәуелсіз компанияға айналды. 2012 жылы VSG FEI компаниясымен сатып алынды. 2016 жылы FEI компаниясын Thermo Fisher Scientific Materials & Structural Analysis Division сатып алды, ол Open Inventor-ді дамытуды (және қолдауды) жалғастыруда.