openGL 學習筆記 2

2021-07-26 14:54:37 字數 2648 閱讀 5058

藍寶書 第二章

1 windows平台使用標頭檔案(根據環境不同會有變化)

#include

#include

#include

2 opengl變數型別與c語言變數型別對應表

表2.1 第81頁

3 api函式命名規則

庫字首+根命令+引數數量+引數型別

glcolor3f

(……)

4 常見rgb復合顏色表

表2.2 89頁

5 單緩衝和雙緩衝

glutinitdisplaymode(glut_******)     ->使用glflush()

glutinitdisplaymode(glut_double)   ->使用glutswapbuffers()

6 opengl狀態機

使用void glenable(glenum capability) 啟用某一功能/狀態

使用void gldisable(glenum capability) 禁用某一功能/狀態

使用glboolean glisenabled(glenum capability) 查詢某一功能/狀態是否啟用

使用下列函式獲得功能/狀態的引數

void glgetbooleanv(glenum

pname

, glboolean *

params

);void glgetdoublev(glenum

pname

, gldouble *

params

);void glgetfloatv(glenum

pname

, glfloat *

params

);void glgetintegerv(glenum

pname

, glint *

params);

7 儲存和恢復狀態

儲存狀態 void glpushattrib(glbitfield mask)

恢復狀態 void glpopattrib(glbitfield mask)

例如:glpushatrrib(gl_texture_bit|gl_lighting_bit)

8 錯誤資訊

返回錯誤 glenum glgeterror(void)

返回錯誤詳細資訊 const glubyte* gluerrorstring(glenum errorcode)

表2.3 錯誤資訊列舉   105頁

9 獲取字串

const glubyte *glgetstring(glenum name)

const char* version = (const char*)glgetstring(gl_version); 獲取版本號

glgetstring(gl_vendor); 返回opengl的提供廠商。

glgetstring(gl_renderer); 返回執行opengl渲染的裝置,通常就是顯示卡的名字。

glgetstring(gl_extensions); 返回所支援的所有擴充套件,每兩個擴充套件之間用空格隔開。

10 控制行為

void glhint(glenum target, glenum mode)

參考

11 opengl擴充套件(對其他裝置/平台的支援)

略……

**:

例2.1

#include #include #include #include void renderscene(void)

///// set up the rendering state

void setuprc(void)

///// main program entry point

int main(int argc, char* argv)

例2.2

#include #include #include #include void renderscene(void)

void setuprc()

void changesize(glsizei w, glsizei h)//視窗大小改變函式---2d

int main(int argc,char* argv)

例2.3 跳動方塊

#include #include #include #include //初始化方塊位置和大小

glfloat x1 = 0.0f;

glfloat y1 = 0.0f;

glfloat rsize = 25;

//每一步x y移動的方向

glfloat xstep = 5.0f;

glfloat ystep = 5.0f;

glfloat windowwidth;

glfloat windowhight;

void renderscene(void)

void timerfunction(int value)

void setuprc()

void changesize(glsizei w, glsizei h)

int main(int argc, char* argv)

openGL學習筆記(2)

x,y,z 組合起來表示兩個重要的值,乙個是方向,乙個是向量 多邊形面積公式 float s 0.0 for i 0 i0 順時針給予點 a是背面的面積 a 0 ab bc ac ab ac cb 共同起點指向被減 已知兩個非零向量a,b 作 oa a ob b 則角aob稱為向量a和向量b的夾角 ...

openGL學習筆記2(顏色)

opengl支援兩種顏色模式 一種是rgba,一種是顏色索引模式。無論哪種顏色模式,計算機都必須為每乙個畫素儲存一些資料。不同的是,rgba模式中,資料直接就代表了顏色 而顏色索引模式中,資料代表的是乙個索引,要得到真正的顏色,還必須去查索引表。ex void mydisplay void glco...

OpenGL學習筆記

我是一名ios開發者,opengl是乙個比較重要的技術。所以就此開啟我的菜鳥之路。opengl open graphics library 是乙個跨程式設計語 言 跨平台的程式設計圖形程式接 它將計算機的資源抽象稱為乙個個opengl的物件,對這些資源的操作抽象為乙個的opengl指令.direct...