資料介紹
OpenGL是一種接口,在我們的應用程序中可以用它來訪問或者控制它所運行的設備的圖形子系統(tǒng)。它所運行的設備可以從一個高端圖形工作站到商用臺式機、視頻游戲主機甚至是一臺智能手機。將這些設備的接口標準化到一個子系統(tǒng)可以增強移植性并且可以讓軟件開發(fā)者集中精力創(chuàng)作高品質的產品、制作更有有趣的內容以及關心他們的應用的整體效能,而不是陷于他們想要應用運行的平臺的細節(jié)中。這些標準接口被稱為Apllication ProgrammingInterfaces(or APIs),OpenGL是其中之一。這一章簡要介紹OpenGL,描述它如何與底層的圖形子系統(tǒng)關聯,并且提供一些OpenGL的起源和演化歷史。
生成一個高效能并且高容量的產品通常需要兩個東西:可伸縮性(scalability)和并行性(parallelism)。在工廠中,這兩個東西通過使用產品線(production lines)來達成。說來就是一個工人安裝汽車的引擎,另一個安裝車門,再另一個安裝車輪。通過將產品的生產階段進行重疊,每一個階段都由一個專業(yè)的專家來專門完成這個任務,這樣每一個階段就變得更高效,然后整體生產效率就會提升。同樣,通過在同一時間制作很多汽車,一個工廠可以讓多個工人專門安裝引擎,或者多個工人專門安裝車輪,這樣多輛汽車可以同時運作在產品線上,每輛車都處在完工的不同階段。
計算機圖形是同樣的道理。我們的程序發(fā)送命令給OpenGL,然后OpenGL以一種盡可能高效的方式將命令發(fā)送給底層的圖形硬件來產生預期的結果。在圖形硬件上可能有很多命令排隊等待執(zhí)行(專業(yè)術語稱為in flight),其中一些命令可能是完成了一部分的。一個處于后續(xù)階段的命令可以和一個處于前期階段的命令被并發(fā)執(zhí)行,這樣它們的執(zhí)行就重疊了。此外,計算機圖形通常由很多非常相似的重復性任務組成(例如計算一個像素該為什么顏色)并且這些任務都彼此獨立--意即,一個像素的顏色與另外一個像素的顏色沒有任何關系。就好像一個車間可以同時制造多個汽車,所以OpenGL可以把你給他的工作拆解開然后用它的基礎元素并行完成。通過組合管線(pipelining)和并行(parallelism),現代圖形處理器超乎想象的性能就被實現了。
OpenGL的目的是在我們的應用程序和底層的圖形子系統(tǒng)中間提供一個抽象層(abstractionlayer),圖形子系統(tǒng)通常是一個硬件加速器(由一個或多個自定義的高性能處理器和專用內存、顯示輸出等等構成)。這個抽象層可以使我們的應用程序不必知曉誰是制造的圖形處理器(或者叫GPU - 圖形處理單元)、它如何工作、它工作得好不好。當然我們的應用程序仍然可以獲知這些信息,重要的是我們的應用程序不必如此。作為一個設計原則,OpenGL必須在抽象層次的過高與過低之間取得平衡。一方面,它必須隱藏不同制造商的產品的區(qū)別(或者同一廠商的不同產品)和平臺相關的特性,比如:顯示屏分辨率、處理器架構、安裝的操作系統(tǒng)等等。另一方面,它的抽象層次要低到可以讓程序員獲得底層硬件的訪問權限并且充分利用它。如果OpenGL展現過高的抽象層次,這樣它就可以很容易地用來創(chuàng)造符合它的樣式的程序,但卻很難使用到它未包含的圖形硬件的高級特性。這種高層次抽象的樣式有一些軟件用到,如:游戲引擎--為了讓基于它構建的游戲訪問到新的圖形硬件特性通常需要對引擎做出很大量的改變。如果抽象層次過低,應用程序需要關心它們所運行的平臺的架構特性。低層次抽象在比如視頻游戲主機中比較普遍,但這種抽象層次的圖形庫不能跨平臺支持從移動手機到游戲的個人電腦甚至高性能專業(yè)的圖形工作站。
隨著技術的發(fā)展,計算機圖形進行了越來越多的研究,最佳實踐被開發(fā)出來,瓶頸和需求在變化,所以OpenGL也必須不斷變化趕上時代。
大多數OpenGL實現都基于當前最先進的圖形處理單元,可進行多個每秒萬億次浮點運算的運算能力、擁有好多G每秒吞吐量好幾百G的內存、并且可以驅動多個幾百萬像素高頻刷新的顯示器。GPU也超級靈活,以至于可以處理跟圖形完全不沾邊的任務,比如:物理模擬、人工智能、甚至音頻處理。
如今的GPU由大量的小型可編程處理器(被稱為shader cores)組成,這些shader cores運行一種叫做著色器(shaders)的迷你程序。每個core有相對較低的吞吐量、在一個或多個時鐘周期內處理shader的一條指令,并且一般缺少高級的特性,比如: 無序執(zhí)行、分支預測、超標量技術等等。但每個GPU都可能包含從幾十個到幾千個這樣的core,當它們聚集在一起時可以完成一個巨量的工作。圖形系統(tǒng)被分解為多個階段(stages),每個階段被用一個shader或者固定功能函數(fixed-function)、可能可配置的處理區(qū)塊表示。圖示1.1展示了一個精簡的圖形管線的概要。
- 通信原理第七版習題 0次下載
- 地球編年史第七部完結日電子版下載 0次下載
- LabVIEW寶典的源代碼合集免費下載 106次下載
- Qt OpenGL中文使用教程免費下載 38次下載
- 蘋果iPhone 7的原廠原理圖和元件圖及維修寶典資料免費下載 447次下載
- OpenGL教程之《OpenGL超級寶典》中文第七版資料免費下載 0次下載
- openGL運行環(huán)境詳細資料免費下載 5次下載
- Autocad試用版官方中文版免費下載 23次下載
- 電力系統(tǒng)繼電保護第七章-微機保護概述(課件)下載.ppt 0次下載
- LED電源的PCB設計寶典資料下載 10次下載
- 電路原理(第七版)part4 0次下載
- 電路原理(第七版)part1 0次下載
- 電路原理(第七版)part2 0次下載
- 電路原理(第七版)part3 0次下載
- 驅動程序超級寶典
- 利用SLC技術改善熱導率,增強IGBT模塊功率密度 196次閱讀
- 安建采用7層光罩工藝的第七代12-inch 1200V-25A IGBT晶圓 756次閱讀
- 超級電容電池原理_超級電容電池的弊端 1.2w次閱讀
- 機器學習入門寶典《統(tǒng)計學習方法》的介紹 4487次閱讀
- Android OpenGL ES開發(fā):投影和相機視圖創(chuàng)建和應用 1240次閱讀
- 如何把OpenGL中3D坐標轉換成2D坐標 8461次閱讀
- OpenGL中的深度、深度緩存、深度測試 3611次閱讀
- OpenGL繪制圖形單元的技巧介紹 2665次閱讀
- 初學OpenGL:什么是繪制上下文 2396次閱讀
- 簡單解析OpenGL ES為緩存提供數據的7個步驟 5508次閱讀
- opengl主要功能介紹 7658次閱讀
- win10超級終端在哪里?SecureCRT的使用 10w次閱讀
- keil uvision2下載|keil uvision2漢化免費版下載 1.1w次閱讀
- AUTOCAD2009免費下載中文版 CAD2009簡體中文下載及安裝方法 1.2w次閱讀
- Intel第七代酷睿處理器Kaby Lake詳解 1.4w次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關電源基礎知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統(tǒng)的設計與實現
- 0.61 MB | 2次下載 | 免費
- 6基于FPGA的C8051F單片機開發(fā)板設計
- 0.70 MB | 2次下載 | 免費
- 751單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 8基于51單片機的RGB調色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21548次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183278次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多