Кіріспе
3D компьютерлік графиканы көрсетуге арналған API стандарты, 1980-ші жылдарда және 1990-шы жылдардың басында кеңінен қолданылды. PHIGS (Программалаушының иерархиялық интерактивті графикалық жүйесі) – 3D компьютерлік графиканы көрсетуге арналған қолданбалы бағдарламалау интерфейсі (API) стандарты, ол 1980-ші жылдардан 1990-шы жылдардың басына дейін 3D графика стандарты болып есептелді. Кейіннен, мүмкіндіктер мен қуатының арқасында OpenGL пайда болды, ол 1990-шы жылдардың ортасынан соңына дейін ең танымал кәсіби 3D API-ге айналды. Ірі сатушылар өз платформалары үшін PHIGS нұсқаларын ұсынды, мысалы, DEC PHIGS, IBM-нің graPHIGS және Sun-ның SunPHIGS. Оны X терезесі жүйесінде де PEX арқылы қолдануға болады. PEX – X-тің кеңейтілген нұсқасы, ол X серверінен PEX жүйесіне рендеринг үшін командаларды жіберді. Жұмыс станциялары әдетте терезелерде орналастырылды, бірақ оларды толық экранға немесе әртүрлі принтерлік құрылымдарға шығаруға да болады. PHIGS 1980-ші жылдары жасалған, оның көптеген идеялары 1970-ші жылдардың соңындағы Графикалық ядролық жүйеден (GKS) мұрагерлік алған және 1988 жылы стандартқа айналды: ANSI (ANSI X3.144 1988), FIPS (FIPS 153) және кейін ISO (ISO/IEC 9592 және ISO/IEC 9593). Оның ерте даму кезеңіне байланысты, стандарт тек ең қарапайым 3D графиканы, соның ішінде негізгі геометрияны және торларды, сондай-ақ Gouraud, "Dot" және Phong түсірілімдерін қолдайды. PHIGS ақырында кеңейіп, озық функцияларды (толыққанды Phong жарық беру моделі және деректерді бейнелеу сияқты) қамтыды, бірақ 1990-шы жылдардың ортасына қарай стандарт саналған басқа мүмкіндіктер (әсіресе текстуралық бейнелеу) қолдау таппады, сондай-ақ сол дәуірдегі көптеген машиналар оны нақты уақытта жұмыс істеуі үшін оңтайландыра алмады.
PHIGS (Programmer's Hierarchical Interactive Graphics System) is an application programming interface (API) standard for rendering 3D computer graphics, considered to be the 3D graphics standard for the 1980s through the early 1990s. Subsequently, a combination of features and power led to the rise of OpenGL, which became the most popular professional 3D API of the mid to late 1990s. Large vendors typically offered versions of PHIGS for their platforms, including DEC PHIGS, IBM's graPHIGS and Sun's SunPHIGS. It could also be used within the X Window System, supported via PEX. PEX consisted of an extension to X, adding commands that would be forwarded from the X server to the PEX system for rendering. Workstations were placed in windows typically, but could also be forwarded to take over the whole screen, or to various printer output devices. PHIGS was designed in the 1980s, inheriting many of its ideas from the Graphical Kernel System (GKS) of the late 1970s, and became a standard by 1988: ANSI (ANSI X3.144 1988), FIPS (FIPS 153) and then ISO (ISO/IEC 9592 and ISO/IEC 9593). Due to its early gestation, the standard supports only the most basic 3D graphics, including basic geometry and meshes, and only the basic Gouraud, "Dot", and Phong shading for rendering scenes. Although PHIGS ultimately expanded to contain advanced functions (including the more accurate Phong lighting model and Data Mapping), other features considered standard by the mid 1990s were not supported (notably texture mapping), nor were many machines of the era physically capable of optimizing it to perform in real time.
Техникалық мәліметтер
Атауындағы "иерархиялық" сөзі PHIGS-тің ерекше ерекшелігіне сілтеме жасайды: көптеген графикалық жүйелерден өзгеше, PHIGS негізгі стандарттың бір бөлігі ретінде сахналық графика жүйесін қамтыды. Модельдер орталықтандырылған құрылымдық сақтауда (CSS) құрастырылды, бұл сурет салу примитивтері мен олардың атрибуттарын (түсі, сызық стилі және т.б.) қамтитын "әлем" болып табылатын деректер базасы. CSS-тер бірнеше виртуалды құрылғылар арасында бөлісе алады, олар PHIGS жүйесінде жұмыс станциялары деп белгіленеді, және әрқайсысының кез келген санында көріністер болуы мүмкін. PHIGS-те графиканы экранға шығару үш қадамнан тұратын процесс болды: біріншіден, модель CSS-ке құрастырылатын, содан кейін жұмыс станциясы құрылып ашылатын, және соңында модель жұмыс станциясына қосылатын. Осы сәттен бастап жұмыс станциясы модельді дереу көрсетіп, модельге енгізілген кез келген өзгерістер барлық қолданылатын жұмыс станциясы көріністерінде дереу көрінетін. PHIGS бастапқыда жарықтандырылған көріністерді көрсету мүмкіндігіне ие болмады, оның орнын PHIGS+ алмастырды. PHIGS+ негізінен бірдей принциппен жұмыс істейді, бірақ 3D сахнадағы жарықтандыру және беттерді толтыру әдістерін қосты. PHIGS+ сонымен қатар NURBS (біркелкі емес рационалды B сплайндары) сияқты графикалық примитивтердің кеңейтілген түрлерін енгізді. PHIGS-ті кеңейту ұсынылған кеңейтімдерді қарастыру үшін арнайы ANSI комитеті құрылды, ол өз атауын "PHIGS PLUS" деп, мағыналырақ және (оптимистік тұрғыдан) кеңейтілген атауға өзгертті. "PLUS" – "Plus Lumière Und Surfaces" (негізгі PHIGS стандартына қарағанда екі маңызды жетістік саласы) деген сөздердің қысқартылған түрі.
OpenGL-дің өрлеуі мен PHIGS-тің құлдырауы
OpenGL, PHIGS-тен айырмашылығы, "күйі" жоқ дереу рендеринг жүйесі болды; объект рендеринг үшін көрініске жіберілгеннен кейін ол іс жүзінде жоғалады. Модельдегі өзгерістерді жүйеге қайта жіберіп, қайта рендерингтеу қажет болды, бұл бағдарламалау тәсілінде түбегейлі өзгеріс тудырды. Қарапайым жобалар үшін PHIGS пайдалану және жұмыс істеу жағынан әлдеқайда ыңғайлы болды. Дегенмен, OpenGL-дің "төменгі деңгейлі" API бағдарламашыға графикалық процессорға деректерді автобус арқылы жіберуге тырысудан бұрын CPU-дағы деректерді қарап, рендеринг өнімділігін едәуір жақсартуға мүмкіндік берді. Мысалы, бағдарламашы көрінетін объектілерді анықтап, тек экранға шығатын объектілерді ғана жіберу арқылы объектілерді "сұрыптап" тастауға болады. Бұл PHIGS-те құпия сақталды, бұл өнімділікті жақсартуды қиындатты, бірақ PHIGS іске асыруында "тегін" жақсартуға мүмкіндік берді. Сол кездегі өнімділігі төмен жүйелер мен жоғары өнімділікте рендеринг қажеттілігін ескере отырып, OpenGL 3D бағдарламалау үшін әлдеқайда "қуатты" деп есептелді. PHIGS қолданыстан шықты. PEX протоколының 6.0 нұсқасы басқа 3D бағдарламалау модельдерін де қолдау үшін жасалған, бірақ бұрынғы танымалдылығын қайта қалпына келтіре алмады. PEX негізінен XFree86 4.2.x (2002) нұсқасынан алынып тасталды және X терезесі жүйесінен X11R6.7.0 (2004 жылғы сәуір) нұсқасында толығымен жойылды.