Quartz和OpenGL繪圖基本概念,quartzopengl繪圖

來源:互聯網
上載者:User

Quartz和OpenGL繪圖基本概念,quartzopengl繪圖

  有時應用程式需要能夠進行自訂繪圖。我們可以依靠兩個不同的庫來滿足我們的繪圖需要。一個庫是Quartz 2D,它是Core Graphics架構的一部分;另一個庫是OpenGL ES,它是跨平台的圖形庫。OpenGL ES是跨平台圖形庫OpenGL的簡化版。OpenGL ES是OpenGL的一個子集,OpenGL ES是專門為iPhone之類的嵌入式系統設計的。

  Quartz是一組函數、資料類型以及對象,專門設計用於直接在記憶體中對視圖或映像進行繪製。Quartz將正在繪製的視圖或映像視為一個虛擬畫布,並遵循所謂的繪畫者模型。這隻是一種奇特的方式,之所以這麼說,是因為應用繪圖命令的方式很大程度上與將顏料應用於畫布的方式相同。如果繪畫這將整個畫布塗為紅色,然後將畫布的下半部分塗為藍色,那麼畫布將變為一半紅色、一半藍色或紫色。如果顏料是不透明的,應該為藍色,如果顏料是半透明的,應該為紫色。

  Quartz的虛擬畫布採用相同的工作方式。如果將整個視圖塗為紅色然後將視圖下半部分塗為藍色,你將擁有一個一半紅色、一半藍色或紫色的視圖,這取決於第二個繪圖操作是完全不透明還是部分透明的。每個繪圖操作都將被應用於畫布,並且處於之前所有繪圖操作之上。

  另一方面,OpenGL ES以狀態機器的形式實現。這個概念可能有點不好理解,因為不能將其歸結為一個簡單的比喻,如在虛擬畫布上繪畫。OpenGL ES不允許執行直接影響視圖、視窗或映像的操作,它維護一個虛擬三維世界。當向這個世界中添加對象時,OpenGL會跟蹤所有對象的狀態。雖然OpenGL ES沒有提供虛擬畫布,但是卻提供了一個進入其世界的虛擬視窗。可以向該世界中添加對象並定義虛擬視窗相對於該世界的位置。然後,OpenGL根據配置方式以及各種對象彼此相對的位置繪製視圖,並通過該視窗呈現給使用者。

  Quartz相對比較容易使用。它提供了各種直線、形狀以及映像繪製函數。儘管便於使用,但Quartz 2D僅限於二維繪畫。儘管許多Quartz寒素會在繪圖時利用硬體加速,但無法保證在Quartz中執行的任何操作都得到了加速。

  儘管OpenGL非常複雜,並且概念上也比較難理解,但是它的強大性是毫無疑問的。它同時提供了二維和三維繪畫工具。它經過專門設計,目的是為了充分利用硬體加速。它還非常適合用於編寫遊戲和其他複雜的、圖形密集的程式。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.