我的opengl讀書筆記

2021-07-24 15:45:31 字數 1493 閱讀 8653

1.點的大小預設為 1 個畫素,但也可以改變之。

改變的命令為

glpointsize,其函式原型如下: void glpointsize(glfloat size);

size 必須大於 0.0f,預設值為 1.0f,單位為「畫素」。 注意:對於具體的 opengl 實現,點的大小都有個限度的,如果設定的 size 超過最大值,則設定可能會有 問題。

例子:void mydisplay(void)

2.畫多邊形:

從三維的角度上說乙個多邊形具有兩個面,有填充,只畫邊緣輪廓線和只繪定點方式(填充是opengl預設方式)

glpolygonmode(gl_front,gl_fill);//設定正面,填充

glpolygonmode(gl_back,gl_line);//反面,邊緣

glpolygonmode(gl_front_and_back,gl_point);//兩面,頂點繪製

鏤空多邊形:

一開始要使用glenable(gl_polygon_stipple);啟用樓控模式(用gldisabe(gl_polygon_stipple)關閉

顏色填充方式

glshademodel(gl_smooth);//平滑方式(預設)

glshademodel(gl_flat);//單色模式

3.模型變換

通過矩陣變換來實現的,變換之前,應當先設定當前操作矩陣為「模型檢視矩陣」,即:

glmatrixmode(gl_modelview);

先把當前矩陣設為單位矩陣:glloadidentitiy();

再用下面三個函式:

gltranslate(x,y,z)//x,y,z為該方向的位移值

glrotate(x,y,z,angle)//物體將繞著(0,0,0)到(x,y,z)的直線以逆時針旋轉angle角度

glscale(x,y,z)//xyz是該方向上的縮放比例

注意:實際變換的順序和**中寫的順序是相反的

我們看到的「先旋轉後移動」在opengl**中是「先移動後旋轉」

改變觀察點位置glulookat(x1,y1,z1,x2,y2,z2)//前三個引數是觀察點的位置,中間三個引數是觀察目標的位置,最後三個引數表示從(0,0,0)到(x3,y3,z3)的直線是觀察者認為的「上」方向。

投影變換:(opengl支援兩種型別投影變換:透視投影和正投影)(也是通過矩陣變換實現的)

定義:定義乙個可視空間,可視空間外的物體都不會被繪製到螢幕上。(從現在起座標不再是-1.0到1.0了)

glmatrixmode(gl_projection)

glloadidentity();

透視投影實現的兩個函式:

glfrustum

glupersepective

正投影:

glortho

(備註:如果圖形空間本身就是二維的,可以直接就使用gluortho2d,它的使用類似於glorgtho)

視口變換:

glviewport來定義視口

讀書筆記 OpenGL超級寶典

對於某些函式的理解 glclear和glclearcolor glclearcolor指定glclear清除特定緩衝區時使用的值。glflush 讓所有已傳送的命令盡快的由實際的繪製引擎執行。glviewport 前兩個引數指的是左下角。glpushmatrix glrotatef glbegin和...

我的散裝讀書筆記

基於已知資料,對未知資料的不確定性推斷。三個關鍵字 1 已知資料 2 未知資料 3 不確定性推斷。資料分析報告的寫作要基於乙個重要的前提,就是讀者不會超級認真的讀,簡稱 沒空看前提。由此可以獲得以下推論 既然領導時間緊張沒空看,那麼分析報告應該越精簡越好 既然領導時間緊張沒空看,重點應該突出越好 摘...

我的讀書筆記 《非暴力溝通》

前半部分介紹了 非暴力溝通 的要素 框架 運用技巧,是務實的。後半部分則是一些例子及類似 雞湯 的話,是務虛的。個人感覺對於書上所教的,不能照搬照用,其並不是十分符合我們中國人的性格與方式,也並不是十分符合這個快節奏的時代,或許對於親人密友,這樣的溝通方式是極好的。如果說實用性,可能不如各種職場的溝...