OpenGL實戰教程(8) 第七站 顯示列表

2021-10-04 14:39:30 字數 1386 閱讀 4581

對於複雜的圖形,有成千上萬個頂點,每次重新整理螢幕都於重新計算頂點,讓cpu執行重複的工作,浪費了cpu資源和執行速度的下降。如果把計算好的結果存放到顯示列表中,需要重新整理螢幕時,只需要把資料重新整理到顯示卡裡就可以了,節省cpu計算資源。

gluint glgenlists (glsizei range);

glsizei range:指定要分配幾個顯示列表。

返回的是分配的若干連續編號中最小的乙個(即起始號)。

gluint  minnum2= glgenlists (2)

;// 分配2個顯示列表

gluint minnum3 = glgenlists (3)

;// 分配3個顯示列表

void glnewlist (gluint list, glenum mode);

gluint list:當前正在操作的顯示列表號。

glenum mode:gl compile和gl compile and execute,

gl compile宣告當前顯示列表只是裝入相應opengl語句,不執行;

gl compile and execute表示在裝入的同時,執行一遍當前顯示列表。

glnewlist

(list, gl_compile)

;glcolor3f

(1.0f

,0.0f

,0.0f);

glvertex2f

(0.0f

,0.0f);

glend()

;

void glcalllists (glsizei n, glenum type, const glvoid *lists);// 呼叫一組

void glcalllist (gluint list);// 呼叫乙個

glsizei n:表示顯示列表的個數

glenum type,:表示lists的型別,gl_byte,gl_unsigned_byte,gl_short,gl_unsigned_short,gl_int,gl_unsigned_int,gl_float。

const glvoid *lists:顯示列表陣列

gluint lists=

;// 起始值為10

gllistbase(10

);// 則實際上呼叫的是編號為11, 13, 14, 18的四個顯示列表。

glcalllists(4

, gl_unsigned_int, lists)

;

void gldeletelists (gluint list, glsizei range);

gluint list:指定起始號

glsizei range:指定要分配幾個顯示列表。

OpenGL教程翻譯 第七課 旋轉變換

接下來的變換是旋轉,就是說給定乙個角度和點,我們將點繞著乙個座標軸旋轉。我們總是變化 三個裡面的兩個,而不讓第三部分變化。這意味著,旋轉路徑總在三個座標軸平面中的乙個之中 繞z軸的是xy面 繞x軸的是yz面 繞y軸的是xy面。還有許多複雜的旋轉轉變可以讓你繞任意乙個向量旋轉,但是眼下我們並不需要這些...

opengl 教程 8 物體縮放

縮放矩陣比較簡單,它的目的就是在三個軸 x,y,z 方向,對物體長度進行縮放 或者說,對頂點在三個軸的分量進行縮放 當然也可以選擇某個軸方向來縮放。對物體進行縮放的原因主要是用來匹配世界空間不同物體的大小,因為三維物體建模都是在模型空間,通常 x,y,z 的範圍都是 0,1 而世界空間中,物體有大有...

廖大python實戰教程第七天

使用模板 mvc的全名是model view controller,是模型 檢視 控制器的縮寫,是一種軟體設計典範。使用mvc的目的是使m和v的 分離,從而使乙個程式可以有不同的表現形式。這個地方在所難免。實在沒想到用ide照著敲都會有一些不注意的小細節錯誤。一開始頁面是 404 not found...