OpenGL3D例子詳細介紹

2021-08-09 07:58:14 字數 1778 閱讀 5601

3d稜錐和立方體

立方體會繞著自己的乙個麵心自旋轉,與此同時稜錐和立方體會繞著豎軸公轉(應該是y軸,在opengl中是手性座標系,y軸朝上)

效果圖如下:

這個例子是我們的圖形學實驗的乙個例子,我會把重要的行數進行註解說明,其中有滑鼠互動函式是空函式體,並沒有進行呼叫,讀者可以自行研究,後續我可能會推出攝像機漫遊版本的,敬請期待

放完整**:

**

這裡使用到的是opengl 和 glut 進行編寫學習的筆記,乙個簡單的出口

使用到的開發庫有 linux (gl glu glut) windows(opengl32.lib glu32.lib glut32.lib)

實現: 繪製乙個三角錐和正方體

乙個關鍵點是init函式中的glenable(gl_depth_test);開啟深度測試

自己關閉和開啟看看效果有什麼不同

*/#include #include using namespace std;

glfloat g_angle = 0; // 設定旋轉的角度

//*************************==opengl 部分*************************

// 初始化opengl的一些引數

void init()

//------------------------------------

// 設定重新整理時間

void timer(int p)

//-----------------------------------

// 顯示我們要繪製的模型

void display()

//-----------------------------------

// 當視窗變化的時候會呼叫這裡

void reshape(int w, int h)

//-----------------------------------

//鍵盤事件

void keyboard(unsigned char key, int x, int y)

}//------------------------------------

// 滑鼠滑鼠事件・

/*第乙個引數有三個取值,分別代表左鍵右鍵和中間的滑輪;第二個引數可以是按下,可以是離開,也可以只是放著不動,第三個是發生相應的座標*/

void mouseevent(int button, int state, int x, int y)

//-------------------------------------

// 滑鼠移動事件

void motionmove(int x,int y)

int main(int argc, char *argv)

--------------------------分割線----------------------------------------

OpenGL 3D 超級寶典學習筆記

2d笛卡兒座標 由乙個x座標和乙個y座標構成,x座標測量水平方向的位置,而y座標則測試垂直方向的位置,原點 x 0,y 0 兩根軸從負無窮擴充套件到正無窮,兩軸垂直相交。視口viewport 裁剪區域的高度與寬度一般不與視窗的寬度與高度相匹配,因此座標系統從邏輯笛卡兒座標對映到物理螢幕畫素座標,這種...

OpenGL和D3D的區別

1 世界座標系 opengl為右手座標系d3d為左手座標系 2 裁剪空間 opengl中z的範圍 1.0,1.0 d3d為 0.0,1.0 3 shader shader開始是以彙編的形式出現,在推出一段時間後,就出現如下幾種類c的高階語言 注 這些高階語言會被編譯成顯示卡識別的彙編 opengl的...

OpenGL學習(3) 簡單介紹

opengl本身並不是乙個api,僅僅是乙個規範 specification opengl規範嚴格規定了每個函式該如何執行,以及它們的輸出值。至於內部具體每個函式是如何實現 implement 的,將由opengl庫的開發者自行決定。實際的opengl庫的開發者通常是顯示卡的生產商。opengl的一...