Vertex Array Objects & Buffer Objects

Slides:



Advertisements
Similar presentations
Modeling 靜宜大學資工系 蔡奇偉副教授. 大綱  何謂多邊形?  多邊形的種類  多邊形的正面與反面  填滿多邊形  OpenGL 多邊形相關函式  範例.
Advertisements

As well as colors, normals, and other vertex data PUSHIN’ GEO TO THE GPU JEFF CHASTINE 1.
1 生物計算期末作業 暨南大學資訊工程系 2003/05/13. 2 compare f1 f2  只比較兩個檔案 f1 與 f2 ,比完後將結果輸出。 compare directory  以兩兩比對的方式,比對一個目錄下所有檔案的相 似程度。  將相似度很高的檔案做成報表輸出,報表中至少要.
Chapter Four Parameter Estimation and Statistical Inference.
1 Chemical and Engineering Thermodynamics Chapter 2 Conservation of mass and energy Sandler.
建立使用案例敘述 --Use Case Narrative
第二章 太陽能電池的基本原理 及其結構 2-1 太陽能電池的基本原理 2-2 太陽能電池的基本結構 2-3 太陽能電池的製作.
“Rule” By OX. By Check CREATE TABLE 員工薪資 ( 編號 int IDENTITY PRIMARY KEY, 薪資 smallmoney, CHECK ( 薪資 > 0 AND 薪資
目的 「升學調查系統」,幫助某一學校調查並記錄 其歷屆畢業生報考研究所的情況、未來提供給 學弟妹作參考,以及學校推廣之相關工作。 功能需求 紀錄並追蹤歷屆畢業生升學的狀態 協助畢業生做升學輔導 未來提供學弟妹作查詢、參考 計算上榜率、前十大學校上榜率.
序列分析工具:MDDLogo 謝勝任 林宗慶 指導教授:李宗夷 教授.
小綠人行人用交通號誌燈 指導教授:黃朝章 學生:951408陳宜歆 徐祐祥.
ImageJ Macro Language FileDemo.txt範例
指導教授:陳淑媛 學生:李宗叡 李卿輔.  利用下列三種方法 (Edge Detection 、 Local Binary Pattern 、 Structured Local Edge Pattern) 來判斷是否為場景變換,以方便使用者來 找出所要的片段。
在 Ad-hoc 網路中實現點對 點發送訊息與廣播訊息. 檔案下載  範例程式可在下列網址取得  DEMO 程式可在下列網址取得
Agenda 目標與概述 (purpose) 架構 (structure) 流程 (procedure) 成果 (result)
Stat_chi21 類別資料 (Categorical data) 一種質性資料, 其觀察值可歸類於數個不相交的項目內, 例 : 性別, 滿意度, …, 一般以各項的統計次數表現. 分析此種資料,通常用卡方檢定 類別資料分析 卡方檢定 卡方檢定基本理論 一個含有 k 項的試驗,設 p i.
Introduction to Chemical Engineering Thermodynamics
WEBPAT專利資料庫檢索. 2 WEBPAT 全球專利資訊網 n 網址:
JAVA 程式設計與資料結構 第十四章 Linked List. Introduction Linked List 的結構就是將物件排成一列, 有點像是 Array ,但是我們卻無法直接經 由 index 得到其中的物件 在 Linked List 中,每一個點我們稱之為 node ,第一個 node.
MATLAB 程式設計 第 11 章 多維陣列 多維陣列的定義 在 MATLAB 的資料型態中,向量可視為 一維陣列,矩陣可視二維陣列,對於維 度 (Dimensions) 超過 1 的陣列則均可視 為「多維陣列」 (Multidimesional Arrays , 簡稱 N-D Arrays)
平均值檢定 假設 檢定 One Sample 平均值 是否為 u. One Sample—1 工廠甲過去向 A 公司購買原料, 平均交貨日約為 4.94 日, 標準差 現在 A 公司改組, 甲工廠繼續向 A 公司 購買, 隨機抽取 8 次採購, 平均日數為 4.29 日, 請問 A 公.
程式註解說明. 2 程式註解格式 塊狀註解 對檔案、 class 、 method 、資料結構、一段程式 …. 等程式區塊 做說明。 第一行的開頭必需為 “/*” 且沒有其他文字,最後一行的開頭 必需以 “*/” 做為結束,在中間每一行的開頭都必需是一個 “*” 。 單行註解 佔據一整行的說明。 以.
具備人臉追蹤與辨識功能的一個 智慧型數位監視系統 系統架構 在巡邏模式中 ,攝影機會左右來回巡視,並 利用動態膚色偵測得知是否有移動膚色物體, 若有移動的膚色物體則進入到追蹤模式,反之 則繼續巡視。
第 1 章 PC 的基本構造. 本章提要 PC 系統簡介 80x86 系列 CPU 及其暫存器群 記憶體: Memory 80x86 的分節式記憶體管理 80x86 的 I/O 結構 學習組合語言的基本工具.
Introduction to pointers in C/C++. Pointers 特殊變數 存放變數在記憶體中的位址 MinGW C++ 中佔用 4 bytes 間接定址取執法 位址 指標變數 變數內容 變數.
Chapter 13 塑模靜態觀點:物件圖 Static View : Object Diagram.
第 5 章 深入 Response 物件 製作. 網頁的轉向與強制輸出 - 讓網頁轉彎的 Redirect 敘述 運用 Response 物件的 Redirect 方法,將瀏覽器顯 示的網頁,導向至其他網頁,語法如下: Response.Redirect 網頁路徑與名稱 此網頁路徑與名稱  若是導向到同一台.
第九章 結構. 結構的宣告 結構 它是由許多不同 ( 或相同 ) 資料型態的變數所組成的 集合,通常利用結構標籤稱呼此集合 struct student { char *name; int score; }; struct 為保留字,表示結構的宣告開始 結構項目需定義於大括號「 { } 」內 結尾需加上分號.
: Abundance and Perfect Numbers ★★★★☆ 題組: Contest Volumes with Online Judge 題號: 10914: Abundance and Perfect Numbers 解題者:劉洙愷 解題日期: 2008 年 5 月 2.
1 Introduction to Chemical Engineering Thermodynamics Residual Gibbs free energy of fluids Smith.
第三部分:研究設計 ( 二): 研究工具的信效度 與研究效度 (第九章之第 306 頁 -308 頁;第四章)
: War on Weather ★★☆☆☆ 題組: Contest Volumes Archive with Online Judge 題號: 10915: War on Weather 解題者:陳明凱 題意:題目總共會給你 k 個點座標代表殺手衛星的位置, 距離地球表面最少 50 公里以上,並且會給你.
影像處理學習營 練習(三)製作影片 【上】 影像處理學習營 教師 吳清月. 製作影片 學習重點 一. 利用 movie maker 軟體,編輯相片。  加上文字幕,與圖片結合。
3.1 矩陣的行列式 3.2 使用基本運算求行列式 3.3 行列式的性質 3.4 特徵值介紹 3.5 行列式的應用
行政院國家科學委員會工程技術發展處自動化學門 * 試以國立成功大學製造工程研究所 鄭芳田教授 產學合作計畫 : 智慧預測保養系統之設計與實作 成果報告盤點為範例 國科會工程處專題計畫成果典藏 自動化學門成果報告盤點範例.
1 Excel 講授內容 ( 進階 ) 授課教師 : 吳槐桂 最後更新 : 2008/05/01.
Final-project 資科碩二 蔡瑞陽 Furukawa, Y. and Ponce, J. “ Accurate, Dense, and Robust Multi-View Stereopsis ” IEEE Conference on Computer Vision and.
資料結構實習-一 參數傳遞.
2011/02/24 管理講座 上課流程上課流程 時間內容 14:10~14:20 ( 約 10 分鐘 ) 講者介紹 14:20~15:20 ( 約 60 分鐘 ) 主講人 演講 15:20~15:30 ( 約 10 分鐘 ) 中場休息 15:30~16:00 ( 約 30 分鐘 ) 主講人 & 與談人時間.
6-2 認識元件庫與內建元件庫 Flash 的元件庫分兩種, 一種是每個動畫專 屬的元件庫 (Library) ;另一種則是內建元 件庫 (Common Libraries), 兩者皆可透過 『視窗』功能表來開啟, 以下即為您說明。
專題簡報 曾聖嘉 邱帥軒 指導教授:楊正仁教授.
Feature Motion for Monocular Robot Navigation. 單視覺機器人 – 追蹤 (tracking) 最常見的機器人導航技術 特徵點特性(特別 匹配性 抗破壞性) 特徵點取得(區塊 尺度不變)
: Lucky Number ★★★★☆ 題組: Proble Set Archive with Online Judge 題號: 10909: Lucky Number 解題者:李育賢 解題日期: 2008 年 4 月 25 日 題意:給一個奇數數列 1,3,5,7,9,11,13,15…
Section 4.2 Probability Models 機率模式. 由實驗看機率 實驗前先列出所有可能的實驗結果。 – 擲銅板:正面或反面。 – 擲骰子: 1~6 點。 – 擲骰子兩顆: (1,1),(1,2),(1,3),… 等 36 種。 決定每一個可能的實驗結果發生機率。 – 實驗後所有的實驗結果整理得到。
Chapter 3 Entropy : An Additional Balance Equation
校園網頁整合平台介紹 電算中心綜合業務組. 大綱 設計理念 功能介紹 實做 FAQ 特殊案例 Q&A.
Structural Equation Modeling Chapter 6 CFA 根據每個因素有多重指標,以減少 測量誤差並可建立問卷的構念效度 驗證性因素分析.
第 17 章 樣板 17-1 樣板的基礎 17-1 樣板的基礎 17-2 樣板函數 17-2 樣板函數 17-3 樣板類別 17-3 樣板類別 17-4 非型態參數的樣板類別 17-4 非型態參數的樣板類別 17-5 樣板類別的繼承 17-5 樣板類別的繼承 17-6 特化樣板與靜態成員 17-6 特化樣板與靜態成員.
廣電新聞播報品質電腦化 評估系統之研發 國立政治大學 資訊科學系 指導教授:廖文宏 學生:蘇以暄.
Chapter 10 m-way 搜尋樹與B-Tree
: Help My Brother ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 11033: Help My Brother 解題者: 呂明璁 解題日期: 2007 年 5 月 14 日.
論文研討 2 學分 授課教師:吳俊概. 第一節 論文發表的目的 第二節 論文發表的歷程 第三節 投稿過程 第四節 退稿處理 學術期刊論文的製作與發表.
專題成果報告 胺基酸功能預測開發環境 指導教授:歐昱言 邱彥豪 邱顯鈞.
第 13 章 ADO.NET 建立網頁資料庫 13-1 網頁資料庫的基礎13-1 網頁資料庫的基礎 13-2 建立資料庫連接13-2 建立資料庫連接 13-3 ADO.NET 的 DataReader 物件13-3 ADO.NET 的 DataReader 物件.
1 認識數位影像 什麼是數位影像 數位影像依其處存方式可分為兩大類 : 1. 向量影像( vector-based image ):影像圖案由一個 個物件所組成,每個物件可由一數學式表達 2. 點陣式影像( bit-mapped image ):影像圖案由像素 一個個排列而成.
教學卓越計畫 讀書會 WIKI 教學. 大綱 WIKI 影片介紹 高醫 WIKI 申請 WIKI 操作.
連續隨機變數 連續變數:時間、分數、重量、……
Knowledge Management System -for Agenda 顏亦笛 陳靖宜 指噵教授 : 劉寶均教授 指噵公司 : 安捷達.
指導教授 : 林啟芳 教授 組員 : 邱秉良 林育賢. 何謂 GPS  GPS 即全球定位系統,是一個中距離圓 型軌道衛星導航系統。它可以為地球表面 絕大部分地區( 98% )提供準確的定位、 測速和高精度的時間標準。
-Artificial Neural Network- Matlab操作介紹 -以類神經網路BPN Model為例
Visual C++重點複習.
資料結構實習-六.
數字系統與資料表示法 教師: 陳炯勳 數系轉換 r進制數字 稱為 base r或 radix r 有r個計數符號,計數順序逢r歸零(進位) A n A n - 1 ‥‥A 2 A 1 A 0 ﹒A -1 A -2 ‥‥A -m 其中A n 及A.
Microsoft Excel.
第 1 章 PC 的基本構造. 本章提要 PC 系統簡介 80x86 系列 CPU 及其暫存器群 記憶體: Memory 80x86 的分節式記憶體管理 80x86 的 I/O 結構 學習組合語言的基本工具.
遠端北風資料庫 公佈時間: 2006/4/26 繳交截止時間: 2006/5/10. 作業目的 實作遠端資料庫瀏覽程式.
XNA 4.0 簡介 靜宜大學資工系 蔡奇偉 副教授 © 大綱 XNA 簡介 XNA Framework XNA Build XNA Game Studio 建立 XNA 4 的專案 方案的目錄結構 XNA Game Studio 4.0 參考手冊 Hello, XNA XNA Game.
Pushin’ Geo to the GPU As well as colors, normals, and other vertex data Made by Jeff Chastine, Modified by Chao Mei Jeff Chastine.
Real-Time Rendering Buffers in OpenGL 3.3
Computer Graphics Vertex Array Object
Presentation transcript:

Vertex Array Objects & Buffer Objects 靜宜大學資工系 蔡奇偉副教授

大綱 Vertex Attributes Vertex Array Object(端點陣列物件) Buffer Objects(暫存區物件)

Vertex Attributes(端點屬性) 每一個端點可以具下列的屬性: 位置(position) 顏色(color) 法向量(normal) 紋理貼圖座檔(texture coordinates) 雲霧特效座標(fog coordinates) 應用程式資料(application data)

Vertex Array Objects(端點陣列物件) Vertex Array Objects (VAO) are OpenGL Objects that store the set of bindings between Vertex Attributes and the user's source vertex data. glGenVertexArrays – 建立VAO glDeleteVertexArrays – 刪除VAO glIsVertexArray – 檢查是否為VAO glBindVertexArray – 連結 VAO

glGenVertexArrays – 建立VAO 範例 // 建立一個 VAO GLuint vao; glGenVertexArrays(1, &vao); // 建立三個 VAO GLuint vao[3]; glGenVertexArrays(3, vao);

glDeleteVertexArrays – 刪除VAO 範例 // 一個 VAO GLuint vao; glGenVertexArrays(1, &vao); glDeleteVertexArrays(1, &vao); // 三個 VAO GLuint vao[3]; glGenVertexArrays(3, vao); glDeleteVertexArrays(3, vao);

glIsVertexArray – 檢查是否為VAO 範例 GLuint vao, k = 100; Glboolean isVAO; glGenVertexArrays(1, &vao); isVAO = glIsVertexArray(vao); // return true isVAO = glIsVertexArray(k); // return false

glBindVertexArray – 連結 VAO

範例 GLuint vao; glGenVertexArrays(1, &vao); glBindVertexArray(vao); GLuint vao[3]; glGenVertexArrays(3, vao); glBindVertexArray(vao[1]);

VAO 的內部 參見:Vertex Array Object (OpenGL Wiki)

Buffer Objects(暫存區物件) Buffer Objects is the general term for unformatted linear memory allocated by the OpenGL context. These can be used to store vertex data, pixel data retrieved from images or the framebuffer, and a variety of other things. glGenBuffers – 建立BO glDeleteBuffers – 刪除BO glIsBuffer – 檢查是否為BO glBindBuffer – 連結 BO 至特定目標 glBufferData – 配置 BO 的資料

glGenBuffers – 建立BO 範例 GLuint buffer; glGenBuffers(1, &buffer );

glDeleteBuffers – 刪除BO 範例 GLuint buffer; glGenBuffers(1, &buffer); glDeleteBuffers(1, &buffer);

glIsBuffer – 檢查是否為BO 範例 GLuint buffer, k = 100; Glboolean isBO; glGenBuffers(1, &buffer ); isBO = glIsBuffer(buffer); // return true isBO = glIsBuffer(k); // return false

glBindBuffer – 連結 BO 至特定目標 範例 GLuint buffer; glGenBuffers(1, &buffer); glBindBuffer(GL_ARRAY_BUFFER, buffer);

glBufferData – 配置 BO 的資料

Values for usage Parameter of glBufferData() Operations Update Frequency

Values for usage Parameter of glBufferData()

Values for usage Parameter of glBufferData()

範例 // Create and initialize a buffer object GLuint buffer; glGenBuffers(1, &buffer); glBindBuffer(GL_ARRAY_BUFFER, buffer); glBufferData(GL_ARRAY_BUFFER, sizeof(points), points, GL_STATIC_DRAW);

glGetAttribLocation – 取得屬性變數的位址 範例 GLuint loc = glGetAttribLocation(program, "position"); #version 330 in vec4 position; void main() { gl_Position = position; }

Enable/Disable Vertex Attribute Array

glVertexAttribPointer When rendering, OpenGL pulls vertex data from arrays stored in buffer objects. What we need to tell OpenGL is what format our vertex array data in the buffer object is stored in. That is, we need to tell OpenGL how to interpret the array of data stored in the buffer. The glVertexAttribPointer() function tells OpenGL all of this. glVertexAttribPointer() always refers to whatever buffer is bound to GL_ARRAY_BUFFER at the time that this function is called.

範例 #define BUFFER_OFFSET( offset ) ((GLvoid*) (offset)) GLuint loc = glGetAttribLocation( program, "position" ); glEnableVertexAttribArray( loc ); glVertexAttribPointer( loc, 2, GL_FLOAT, GL_FALSE, 0, BUFFER_OFFSET(0) ); #version 330 in vec4 position; void main() { gl_Position = position; }

glDrawArrays

參考資料 Vertex Array Object (OpenGL Wiki)