溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

OpenGL的起源于發(fā)展

發(fā)布時(shí)間:2020-07-30 18:46:38 來源:網(wǎng)絡(luò) 閱讀:546 作者:萌谷王 欄目:游戲開發(fā)

周一到周五,每天一篇,北京時(shí)間早上7點(diǎn)準(zhǔn)時(shí)更新~,中英文對(duì)照,一邊學(xué)編程一邊彈吉他,做一個(gè)奇葩碼農(nóng)!

請(qǐng)不要懷疑翻譯是否有問題,我們的翻譯工程師是藍(lán)翔畢業(yè)的呢!

The Origins and Evolution of OpenGL(OpenGL的起源與發(fā)展)

OpenGL has its origins at Silicon Graphics Inc. (SGI) and its IRIS GL(OpenGL起源于硅谷圖形信息有限公司和該公司的IRIS GL). GL stood for (and still stands for) “graphics library,”(GL是圖形庫(kù)的英文縮寫) and in much of the modern OpenGL documentation you will see the term “the GL,” meaning “the graphics library,” originating from this era(在大多數(shù)現(xiàn)代OpenGL的文檔中,你將會(huì)看到the GL這種屬于,實(shí)際上就是從上面的那個(gè)起源的). Silicon Graphics was a manufacturer of high-end graphics workstations(硅谷圖形信息有限公司是高端圖形工作站的制造商). These were extremely expensive, and using a proprietary API for graphics wasn’t helping(以前IRIS GL的API是私有的,并且代價(jià)極大的API,對(duì)于產(chǎn)業(yè)沒有啥幫助). Other manufacturers were producing much more inexpensive solutions running on competing APIs that were often compatible with each other(其他那些制造商卻在生產(chǎn)一些更便宜的解決方案,并且它們的API之間可以互相兼容). In the early 1990s, SGI realized that portability was important and so decided to clean up IRIS GL,(在1990年的早些時(shí)候,SGI開始意識(shí)到可移植性的重要性,所以打算干掉IRIS GL) remove system-specific parts of the API, and release it as an open standard that could be implemented, royalty free, by anyone(移除那些系統(tǒng)特有的API,并做一個(gè)開放的標(biāo)準(zhǔn)發(fā)布,并且任何人可以免費(fèi)使用這個(gè)標(biāo)準(zhǔn)). The very first version of OpenGL was released in June 1992 and was marked as OpenGL 1.0(最早誕生的OpenGL是1.0版本,誕生于1992年,記得那時(shí)候我剛結(jié)完婚,還沒有小三,真是一段令人難忘的歲月)

That year, SGI was also instrumental in establishing the OpenGL Architectural Review Board (ARB)(那一年,SGI同時(shí)在建立OpenGL架構(gòu)審核委員會(huì)中起到鳥很重要的作用), the original members of which included companies such as Compaq, DEC, IBM, Intel, and Microsoft(那些創(chuàng)始人公司包括那一堆,大家自己看英文). Soon, other companies such as Hewlett-Packard, Sun Microsystems, Evans & Sutherland, and Intergraph joined the group(很快,又有一批公司加入了這個(gè)組織,這些公司名字大家依然還是自己看英文). The OpenGL ARB is the standards body that designs, governs, and produces the OpenGL specification and is now a part of Khronos Group(現(xiàn)在隸屬于Khronos集團(tuán)的OpenGL的ARB組織實(shí)質(zhì)性的控制著OpenGL的設(shè)計(jì)、管理以及發(fā)布規(guī)范), which is a larger consortium of companies that oversees the development of many open standards(Khronos集團(tuán)則是一個(gè)更牛逼的集團(tuán),它管控著很多的開放標(biāo)準(zhǔn),你也不清楚它管那些標(biāo)準(zhǔn)又不收錢是為了啥,我想絕壁不是為了學(xué)雷鋒,做好事,因?yàn)樗麄兏静徽J(rèn)識(shí)雷鋒). Some of these original members either no longer exist (perhaps having gone out of business or having been acquired by or merged with other companies) or are no longer members of the ARB(現(xiàn)在有一部分OpenGL ARB組織的創(chuàng)始人公司已經(jīng)因?yàn)橄訔夁@個(gè)組織已經(jīng)單飛了), having left the graphics business or otherwise gone their own way(這個(gè)單飛的組織后來搞出了DirectX). However, some still exist, either under new names or as the entity that was involved in the development of that very first version of OpenGL more than 20 years ago(任然有很多成員還是一直待在組織里的,他們對(duì)組織不離不棄,我想是因?yàn)樗麄兲厶粍?dòng)的緣故)

At time of writing, there have been 19 editions of the OpenGL specification(在寫這本書的時(shí)候,已經(jīng)發(fā)布了19個(gè)版本的OpenGL的標(biāo)準(zhǔn)). Their version numbers and time of publication are shown in Table 1.1(他們的版本號(hào)和發(fā)布時(shí)間在表1.1里). This book covers version 4.5 of the OpenGL specification, and most of the samples in it require up-todate drivers and hardware to run(本書包含了OpenGL4.5,如果你無法跑這些代碼的話,或許你應(yīng)該換個(gè)顯卡或者升級(jí)一下驅(qū)動(dòng),小姑涼)

OpenGL的起源于發(fā)展

Twenty years is a long time in the development of cutting-edge technology(20年對(duì)于一個(gè)前沿技術(shù)來說還真滴是不容易). In 1992, the top-of-the-line Intel CPU was the 80486, math coprocessors were still optional(1992年的時(shí)候,最牛掰的intel CPU還是80486,那時(shí)候數(shù)學(xué)計(jì)算指令還不一定被CPU支持), and the Pentium had not yet been invented (or at least released)(并且奔騰處理器還沒被發(fā)明). Apple computers were still using Motorola 68K-derived processors and the PowerPC processors to which they would later switch would be made available during the second half of 1992(直到1992年的后半年以前,蘋果電腦還在用摩托羅拉的68k-derived和PowerPC的處理器). Highperformance graphics acceleration was simply not something that was common in commodity home computers(那個(gè)時(shí)候,家用電腦上壓根兒就沒有啥高性能的圖形加速裝置). If you didn’t have access to a high-performance graphics workstation, you probably would have no hope of using OpenGL for anything(如果你不使用圖形工作站的話,你是無法接觸到OpenGL這個(gè)東西的). Software rendering ruled the world and the Future Crew’s “Unreal” demo won the Assembly ’92 demo party(那個(gè)時(shí)候軟渲染統(tǒng)治著世界,在不久的將來,虛幻引擎贏得了Assembly 92的大獎(jiǎng)). The best you could hope for in a home computer was some basic filled polygons or sprite rendering capabilities(那時(shí)候你能期待的最好的就是繪制基本幾何圖形或者精靈的能力。). The state of the art in 1992 home computer 3D graphics is shown in Figure 1.2(1992年家用電腦那個(gè)渣畫面已經(jīng)被顯示在圖1.2上了,你去瞅瞅,那個(gè)時(shí)候?qū)憘€(gè)程序得有多爽,根本沒這么多算法)

OpenGL的起源于發(fā)展

Over time, the price of graphics hardware came down, performance went up(隨著時(shí)間的推移,顯卡的價(jià)格掉下來了,性能也彪上去了), and— partly due to low-cost acceleration add-in boards for PCs(這樣一來,新的特性看起來變得能被消費(fèi)者負(fù)擔(dān)得起,所以很多新的特性就被加到了OpenGL里面去), and partly due to the increased performance of video game consoles—new features and capabilities showed up in affordable graphics processors and were added to OpenGL(這里面部分原因可能是因?yàn)榈土膬?nèi)置的主板加速器也有可能是因?yàn)橛螒蛑鳈C(jī)增加的性能). Most of these features originated in extensions proposed by members of the OpenGL ARB(大部分的新特性本來都是以擴(kuò)展的形式發(fā)布的). Some interacted well with each other and with existing features in OpenGL, and some did not(有一部分與既有的特性很好的共存,有的一些則不能). Also, as newer, better ways of squeezing performance out of graphics systems were invented(當(dāng)然,更新更先進(jìn)的提高圖形系統(tǒng)性能的技術(shù)被發(fā)明), they were simply added to OpenGL, resulting in it having multiple ways of doing the same thing(他們被加到了OpenGL當(dāng)中,導(dǎo)致的結(jié)果就是,你可以使用多種方式去達(dá)成同一個(gè)目的。)

For many years, the ARB held a strong position on backward compatibility(很多年過去了,ARB這批API在向后兼容方面起到鳥重要的作用), as it still does today. However, this backward compatibility comes at a significant cost(然而,向后兼容會(huì)帶來明顯的性能損耗). Best practices have changed(最好的編程方式隨著架構(gòu)的改變已經(jīng)改變了,所以以前的代碼就變得不是最高效的代碼)—what may have worked well or was not really a significant bottleneck on mid-1990s graphics hardware doesn’t always fit modern graphics processor architecture well(90年代的圖形硬件不可能總是很好的適應(yīng)現(xiàn)代最新的圖形處理器的架構(gòu)). Specifying how new features interact with the older legacy features isn’t easy and(讓新的特性與舊的特×××互不是一件容易的事), in many cases, can make it almost impossible to cleanly introduce a new feature to OpenGL(在很多情況下,基本上不可能讓非常干凈的,不影響其它模塊的向OpenGL中添加新特性已經(jīng)變得不可能鳥). As for implementing OpenGL, this has become such a difficult task that drivers tend to have more bugs than they really should(當(dāng)那些硬件廠商實(shí)現(xiàn)OpenGL的時(shí)候,驅(qū)動(dòng)程序員已經(jīng)開始受不鳥了,他們會(huì)寫很多的,表面上看不應(yīng)該出現(xiàn)的BUG) and graphics vendors need to spend considerable amounts of energy maintaining support for all kinds(并且顯卡廠商需要花費(fèi)大量的時(shí)間和精力去使得最新的顯卡與那些老舊的API兼容) of legacy features that don’t contribute to the advancement of or innovation in graphics.For these reasons, in 2008, the ARB decided it would “fork” the OpenGL specification into two profiles(因此,在2008年北京奧運(yùn)會(huì)的那年,ARB組織打算開始維護(hù)兩份OpenGL的標(biāo)準(zhǔn)). The first is the modern, core profile, which removes a number of legacy features, leaving only those that are truly accelerated by current graphics hardware(第一份標(biāo)準(zhǔn)就是核心的標(biāo)準(zhǔn),它會(huì)移除大量的老式API,只支持體現(xiàn)了顯卡最新架構(gòu)的OpenGLAPI). This specification is several hundred pages shorter than the other version of the specification, the compatibility profile(核心標(biāo)準(zhǔn)的OpenGL API的文檔比兼容版OpenGLAPI少好幾百頁呢). The compatibility profile maintains backward compatibility with all revisions of OpenGL back to version 1.0(兼容版的OpenGL標(biāo)準(zhǔn)則會(huì)維護(hù)從1.0開始到最新版本OpenGL的所有API). As a consequence, software written in 1992 should compile and run on a modern graphics card with a thousand times greater performance today than when that program was first produced(因此,1992年寫的軟件應(yīng)該可以被編譯和在現(xiàn)代的顯卡上運(yùn)行,并且速度應(yīng)該是比以前快上千倍)

The compatibility profile really exists to allow software developers to maintain legacy applications(兼容版本的標(biāo)準(zhǔn)確實(shí)使得軟件開發(fā)者可以維護(hù)以前老版本的程序) and to add features to them without having to tear out years of work to shift to a new API(而不會(huì)為了添加點(diǎn)新功能,而需要把以前老版本的所有OpenGL的API全部搬遷至新版本的API). However, the core profile is strongly recommended by most OpenGL experts as the profile that should be used for new application development(但是,專家們?nèi)套寱?huì)強(qiáng)烈建議軟件開發(fā)者使用核心標(biāo)準(zhǔn)). In particular, on some platforms, newer features are available only if you are using the core profile of OpenGL(尤其是在某些平臺(tái)上,OpenGL的一些API只在核心標(biāo)準(zhǔn)的OpenGL執(zhí)行環(huán)境下,才能被調(diào)用); on others, an application written using the core profile of OpenGL will run faster than that same application unmodified(另一方面,你使用核心標(biāo)準(zhǔn)的OpenGL運(yùn)行環(huán)境去開發(fā)程序一定會(huì)比使用兼容標(biāo)準(zhǔn)開發(fā)的OpenGL程序快), except to request the compatibility profile, even if it uses only features that are available in core profile OpenGL(即便你在兼容標(biāo)準(zhǔn)的OpenGL運(yùn)行環(huán)境中全部調(diào)用的事核心標(biāo)準(zhǔn)下的OpenGL API,你的程序都會(huì)變慢). Finally, if a feature is in the compatibility profile but has been removed from the core profile of OpenGL, there’s probably a good reason for that—and it’s a reasonable indication that you shouldn’t be using it(最后,如果在兼容標(biāo)準(zhǔn)下的一個(gè)API被從核心標(biāo)準(zhǔn)里移除了,這就意味著,你以后盡量要避免使用那個(gè)API). This book covers only the core profile of OpenGL(這本書只包含了核心標(biāo)準(zhǔn)下的OpenGL API); this is the last time we will mention the compatibility profile(這將是本書最后一次提到兼容標(biāo)準(zhǔn)的OpenGL運(yùn)行環(huán)境)

第一時(shí)間獲取最新橋段,請(qǐng)關(guān)注東漢書院以及圖形之心公眾號(hào)

圖形之心,等你來玩哦

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI