OpenGL學習筆記以及其它學習思考

最近是不少天都沒有寫博客了,這是一個很很差的習慣。天天學習的內容若是不進行總結的話,基本上是全都忘掉了。因此仍是得堅持寫博客。編程

  • C#編程基礎回顧

三個關鍵字:數組

  1. new:(1):建立對象。  在堆中開闢一塊空間(對象屬於引用類型 因此是在堆中開闢空間)、在開闢的空間中建立對象、調用類的無參的構造函數

       (2):徹底隱藏父類的同名函數   意思就是在繼承中  子類和父類的方法同名的時候  須要徹底隱藏父類的方法時候使用  緩存

  2. this:(1):指代當前類的對象  特別是用在構造函數中  this.Name=name; 這裏的this就是這個意思ide

      (2):繼承本身的構造函數   (通常繼承最全的那個構造函數)函數

  3.base: (1):繼承父類的構造函數  用於繼承的時候工具

界面設計方面: (1):菜單欄有    數據資源、衛星資源、服務資源、插件資源、專題空間、全球目標、資源搜索學習

       (2):打開、影像模式、地圖模式、海圖模式、三維地形、地名管理、基礎數據設置、自動隱藏、全屏,幫助、登陸、退出ui

       (3):工具組包含:面積量測工具、文字情報引接與組織關聯、手動校訂、影像數據管理於應用、距離測量工具、空間可視域分析、全球基礎影像下載this

       (4):標題欄WPF、全球目標、顯示疆界線、登錄、氣象水文數據顯示、新天空盒。spa

不清楚的地方:   全屏顯示功能(也就是隱藏了工具條,將最上面的logo欄去掉)、工具組是哪個空間來實現的?、若是實現鼠標不在控件上面就將控件的透明度下降。

 

OpenGL: 先來了解一下函數。學習了這麼久的OpenGL,感受就是在知道OpenGL的渲染流程以及各類小細節、而後就是學習各類函數

1:從緩存對象中回讀數據:glGetBUfferSubData

2:直接訪問緩存中數據:glMapBuffer(GLenum target,GLenum access)

3:執行解除映射操做:glUmMapBuffer()

4:更精確的設置訪問模式:glMapBufferRange(GLenum target,GLintptr offset, GLsizeiptr length,GLbitfiled access);

5:拋棄緩存對象中的部分或者數據:glinvalidateBufferData()  glinvalidateBufferSubData()

6:頂點規範:glVertxAttribPointer(GLuint index,GLint size,GLenum type, GLboolean normalized, GLsizei stide, const GLvoid*pointer);初始化的屬性指針索引傳入這個函數。

7:整型頂點屬性:glVertexAttribIPointer() 它不會執行自動轉換到浮點數的操做

8:雙精度頂點屬性:glVertexAttribLPointer() 它的type必須爲DOUBLE

9:頂點屬性的壓縮格式:????????

10:靜態頂點屬性的規範(難理解) 每一個屬性的頂點屬性能夠經過glVertexAttrib*()系列參數進行設置

11:OpenGL的繪製命令 :包括兩部分

  • 1:索引形式 其綁定的數據類型  GL_ELEMENT_ARRAY_BUFFER  最基本的索引形式的繪製命令  glDrawElements(GLenum mode ,GLsizei count, GLenum type,Const GLvoid* indices)   使用count個元素來定義一系列幾何圖元,而元素的索引值保存在一個綁定大到 GL_ELEMENT_ARRAY_BUFFER的緩存中。indices定義了元素數組緩存中的偏移地址。此函數會從當前啓用的頂點屬性數組中讀取頂點的信息,而後使用它們來構建mode指定的圖元類型。  使用了元素數組緩存中的索引數據來索引各個頂點屬性數組
  • 2:非索引形式:  基本的繪製命令:glDrawArrays()  直接將緩存對象中的頂點屬性按照自身的排列順序,直接取出並使用。
相關文章
相關標籤/搜索