OpenGL的基本概念

2021-09-11 14:27:47 字數 1585 閱讀 6550

opengl的版本

os系統預設支援opengl es1.0、es2.0以及es3.0 3個版本,三者之間並不是簡單的版本公升級,設計理念甚至完全不同,在開發opengl專案前,需要根據業務需求選擇合適的版本。通過eaglcontext指定es版本號

eaglcontext *mcontext = [[eaglcontext alloc] initwithapi:keaglrenderingapiopengles2]; 還有1.0和3.0 

opengl座標系

opengl座標系不同於uikit座標系,其實它是這樣的

glkviewcontroller & glkview

系統對opengl進行了簡單的封裝,繼承glkviewcontroller定義了自己的viewcontroller,clkviewcontroller的view為clkview類

glkviewcontroller渲染並非nsrunloopcommonmodes,而是nsdefaultloopmode,因此在uikit使用clkviewcontroller,當滑動介面的時候,opengl是不會渲染的

eaglcontext

eaglcontext與uikit中的cgcontextref相識,eaglcontext相當於opengl繪製控制代碼或者上下文,在繪製圖之前需要指定使用建立的上下文繪製。

[eaglcontext setcurrentcontext:self.mcontext];

渲染場景的**
- (void)glkview:(glkview *)view drawinrect:(cgrect)rect {

glclearcolor(0.3f, 0.6f, 1.0f, 1.0f);

glclear(gl_color_buffer_bit | gl_depth_buffer_bit);

//啟動著色器

[self.meffect preparetodraw];

gldrawelements(gl_********s, self.mcount, gl_unsigned_int, 0);

glclear-清除viewport的快取區

gl_api void          gl_apientry glclear (glbitfield mask);

gl_api void          gl_apientry glclearcolor (glfloat red, glfloat green, glfloat blue, glfloat alpha);// 清除顏色的設定

gl_api void          gl_apientry glcleardepthf (glclampf depth);

gl_api void          gl_apientry glclearstencil (glint s);

gl_color_buffer_bit: 當前可寫的顏色緩衝

gl_depth_buffer_bit: 深度緩衝

gl_accum_buffer_bit: 累積緩衝

gl_stencil_buffer_bit: 模板緩衝

OpenGL學習筆記 動畫基本概念

幀速 一秒鐘展現的畫面超過24幅,人眼就會以為是連續的。平時 的電視,一般是25到30幅之間。對乙個正常人來說,每秒60到120幅圖畫是最合適的,速度過快,人眼就反應不過來了。換而言之,整個動畫的速度,往往取決於顯示時間最慢的那個畫面。如果用c語言偽 來描述這一過程,就是 for i 0 i 這個w...

基本概念 C 基本概念

由於工作中需要用到c 編寫的一些工具,有時候需要根據需求修改或者定製工具,所以現在不得不學習一下c 的基礎語法,此為筆記,不成章法!機器語言 組合語言 高階語言 面向過程的程式設計方法 物件導向的程式設計方法 泛型程式設計方法 1 演算法設計 2 源程式編輯 3 編譯 4 連線 5 執行除錯 輸入裝...

基本概念 數控系統基本概念

第一章 基本概念 數控工具機cnc是一種按事先編制好的加工零件程式進行加工的高效 自動化加工裝置。是 computer numerical control machine tools 的簡稱。數控工具機較好地解決了複雜 精密 小批量 多品種的零件加工問題,是一種柔性的 高效能的自動化工具機。西門子系...