OpenGL ES學習初體驗
緒論
- OpenGL定義:OpenGL(全寫Open Graphics Library)是個定義了一個跨程式語言、跨平臺的程式設計介面的規格,它用於三維影象。OpenGL是個專業的圖形程式介面,是一個功能強大,呼叫方便的底層圖形庫。
- OpenGL ES(OpenGL for Embedded Systems)是OpenGL三維圖形API的子集,針對手機、PDA和遊戲主機等嵌入式裝置而設計。
圖形基礎
- 畫素:它是計算機影象的最小構成元素,由三個顏色元件構成:RGB。
- GPU:圖形處理單元,結合集合、顏色、燈光以及其他資料而產生一個影象的硬體元件
- 渲染:把程式提供的幾何資料轉化為螢幕上的影象的過程
OpenGL ES相關知識
1.OpenGL ES原理:OpenGL ES部分執行在CPU上,部分執行在GPU上。OpanGL ES橫跨在兩個處理器之間,協調兩個記憶體區域之間的資料交換。CPU計算好現實內容提交到GPU,GPU渲染完成後將渲染結果放入幀緩衝區,隨後視訊控制器按照VSync訊號逐行讀取幀緩衝區的資料,經過數模轉換傳遞給顯示器顯示如圖:
從一個記憶體區域複製資料到另一個記憶體區域速度是相對較慢的,並且在記憶體複製的過程中,CPU和GPU都不能處理這區域記憶體,避免引起錯誤。此外,CPU/GPU執行計算的速度是很快的,而記憶體訪問的速度是相對較慢的,GPU總是受限於記憶體訪問的效能。
- 快取:OpenGL ES為兩個記憶體區域間的資料交換定義了快取(buffers)的概念。快取指的是圖形處理器能夠控制和管理連續的RAM。程式從CPU的記憶體複製到OpenGL ES的快取。提供資料給快取需要7個步驟,如下圖:
- 幀快取: 接收渲染結果的緩衝區叫做快取(frame buffer),幀快取不需要初始化,因為渲染指令會在適當的時候替換快取的內容。前幀快取(front frame buffer)的特定幀快取中的顏色元素控制著螢幕顯示畫素,後幀快取(back frame buffer)儲存渲染結果。
相關推薦
OpenGL ES學習初體驗
緒論 OpenGL定義:OpenGL(全寫Open Graphics Library)是個定義了一個跨程式語言、跨平臺的程式設計介面的規格,它用於三維影象。OpenGL是個專業的圖形程式介面,是一個功能強大,呼叫方便的底層圖形庫。 OpenGL ES(Ope
[原] OpenGL ES 學習筆記 (一)
信號 ppi sci DC RM 視錐 技術分享 img 比較 1. OpenGL ES 的坐標系在屏幕上的分布 OpenGL ES 的坐標系{x, y, z} 通過圖片的三維坐標系可以知道: - 它是一個三維坐標系 {x,
OpenGL ES 學習教程(十三) Stencil_TEST(模板緩衝測試)
模板緩衝測試,是指 將模版緩衝區中的值 與 一個參考值 進行比較,根據比較的結果,來對緩衝區中的值進行修改。進而決定該片段是否有效。在應用中的體現就比如:Unity中的Mask 。大致的工作流程:1、第一次Draw的時候,將所有的片段都設定為不通過模版測試。然後修改模版緩衝區
opengl es學習筆記一
首先明白opengl和opengl es的關係,我想opengl的接受網站上到處都是了,這裡就不囉嗦了,我的理解就是opengl es是opengl的子集,是針對嵌入式裝置而設計的API! 我的這些部落格是學習openglES Game Development的筆記,所以
Android OpenGL ES學習筆記之新增顏色
一、分類 新增顏色的種類有兩種 - Flat coloring 單色 - Smooth coloring 平滑著色 單色 顧命思義就是一種單一的顏色,呼叫 glColor4f(float red,
Android OpenGL ES學習筆記之常用API
上一篇文章Android OpenGL ES學習筆記之繪製點涉及到了一些API,在這篇文章配合一些例項給大家詳細的講解下,會持續更新。 我這裡有OpenGl ES 的API中文文件,不過不全,可以配合著看 開啟連結 密碼:gjlz 一、緩衝區 在O
【Spark深入學習 -15】Spark Streaming前奏-Kafka初體驗
rod htm 新的 callback tails 包括 -c 舉例 清理 ----本節內容------- 1.Kafka基礎概念 1.1 出世背景 1.2 基本原理 1.2.1.前置知識 1.2.2.架構和原理 1.2.
Android開發學習之路--異步消息Handler,Message,Looper和AsyncTask之初體驗
被調用 project 輸入 gettext npos article app sso 音樂播放 在簡易音樂播放器中。用了Handler。也沒有過多地去研究學習,這裏再學習下android下的異步消息處理機制。這裏用了Handler主要是在線程中不能更新UI
Android開發學習之路--圖表實現(achartengine/MPAndroidChart)之初體驗
bundle 喜歡 嵌入式linux Y軸 tid ren sca ref java代碼 ??已經有一段時間沒有更新博客了,在上周離開工作了4年的公司,從此不再安安穩穩地工作了。很多其它的是接受挑戰和實現自身價值的提高。離開了嵌入式linux,從此擁抱移
QT初體驗1:如何學習QT之個人淺見,以及如何讀取文本文件,在調試信息中輸出。
沒有 c++教程 最簡 將不 ror 聽說 講解 知識點 括號 2017年11月初,隨著工作崗位的調動,我轉到了研發崗,開始了漫漫程序員的成長之路。首先介紹下個人知識儲備,大一學習過C語言,沒有工程經驗,所學是為了期末考試+2級考試,考完在大學+碩士期間沒有用到編程。 來到
學習java初體驗
顯示 pan bsp lib 指定 dir style 控制臺 程序 在甲骨文的學習已經進行了兩個月, 已經開始了java的學習, 學習的首先的感觸就是java的嚴謹性 例如數據類型,嚴謹到小數點。 今天首先學習的事java最基本的操作 清屏:cls; 當DOS控制臺內
Python大數據與機器學習之NumPy初體驗
clas 自己 入門 left ray spark AC DC 精通 本文是Python大數據與機器學習系列文章中的第6篇,將介紹學習Python大數據與機器學習所必須的NumPy庫。 通過本文系列文章您將能夠學到的知識如下: 應用Python進行大數據與機器學習
學習Python 全棧案例初體驗課程
課程名稱:全棧案例初體驗課程 2018.10.19 執行課程案例 1.從github上下載案例程式碼https://github.com/litaotao/IPython-Dashboard 2.根據requirement.txt,執行"python2 -m pip install 模組
Javaweb學習筆記(二):servlet初體驗、HTTP協議
目錄 1.Servlet體驗 1.1servlet的繼承體系 1.2手動開發動態web資源 1.3工具開發動態資源 2.HTTP協議 2.1概念 2.2請求資訊 2.2.1請求行 2.2.2請求頭 2.2.3空行與實體內容 2.3HttpServlet
Android開發學習之路--Activity之初體驗
環境也搭建好了,android系統也基本瞭解了,那麼接下來就可以開始學習android開發了,相信這麼學下去肯定可以把android開發學習好的,再加上時而再溫故下linux下的知識,看看an
學習Docker之Docker初體驗---SpringBoot整合Docker的部署、釋出與應用
準備工作 會一點springboot 不會沒關係,花十幾分鍾補一下Quick-SpringBoot 會一點Maven 不會沒關係,花幾分鐘補一下Maven的快速應用 會一點Linux命令 不會沒關係,花十幾分再補一下Linux菜鳥教程 一臺
【JVM學習筆記】(一)jvm初體驗-記憶體溢位問題分析及解決方案
####1、開始 建立Main類和Demo類,在Main類的main方法中建立List,並向List中無限建立Demo物件,造成記憶體溢位, 並輸出記憶體溢位錯誤檔案在專案目錄下,為了使等待時間減小,設定執行堆記憶體大小。 ####2、建立Demo類 package com.ch
併發程式設計與高併發解決方案學習(併發程式設計初體驗)
以下都是發生執行緒安全的案例: 模擬5000個請求,併發數200 package vip.fkandy.chapter02; import lombok.extern.slf4j.Slf4j; import java.util.concurrent.CountDown
OpenGL ES 3.0程式設計指南學習筆記 第6章 頂點屬性、頂點陣列和緩衝區物件
1)vec2等為float型,也就是著色語言預設為float操作。float,vec2,vec3,vec4 2)矩陣以列優先順序儲存,也就是說矩陣可以看做是由幾個列向量組成,例如;mat3 myMat3 = mat3(1.0, 0.0, 0.0,//First column
零基礎開發OpenGL ES 2.0學習筆記-Android篇(一)
看到蘋果應用商店的火爆,也想做點東西放在上面,現在終於有點時間,可是發現用到的技術都不會,要學的東西很多呀(真是落伍了)~ 身為一個JAVA程式設計師,IOS完全不懂,Android只會一些皮毛,OpenGL更是一竅不通。 所有的東西肯定都是以JAVA思想來寫,摻雜著自己的