openGL基本操作學習

2021-08-20 08:29:45 字數 2446 閱讀 6135

要交關於opengl的作業了,所以就在網上找了一些教程,發現非常麻煩,就找了一本書看一看,順便記錄一些基本操作。

void glortho(gldouble left, gldouble right, gldouble bottom, gldouble top, gldouble near, gldouble far);建立正投影裁剪區域。

在使用glortho之前,需要先對座標系進行設定,將其調整為投影座標系

glmatrixmode(gl_projected);

glloadidentity();

繪製正方形,並且在改變視窗大小時,維持形狀不變

//first one

#include

#include

#include

void renderscene(void)

void setuprc(void)

void changesize(glsizei w, glsizei h)

int main(int argc, char* argv)

生成動畫:小方塊在視窗內跑來跑去,碰到邊界返回

//first one

#include

#include

#include

glfloat x1 = 0.0f;

glfloat y = 0.0f;

glfloat rsize = 25;

glfloat xstep = 1.0f;

glfloat ystep = 1.0f;

glfloat windowwidth, windowheight;

void renderscene(void)

void timerfunction(int value)

void setuprc(void)

void changesize(glsizei w, glsizei h)

int main(int argc, char* argv)

到了這裡,作業基本上就能搞定了,基本的opengl操作應該也差不多行了。

後面的內容有機會再看吧。有空再來更新

幾何變換:管線

函式功能:

glulookat:在場景中建立觀察者的位置??

使用照相機在場景中移動?

gltranslate/glrotate:在場景中設定物體的位置

glscale:對物體進行伸縮

gluperspective:建立透視變換

glloadmatrix/glmutmatrix:執行自己的矩陣變換

變換各種:

viewing:指定觀察者和照相機的位置

modeling:在場景中移動物體

modelview:描述始圖和模型變換的對偶性

projection:改變可視區域的大小或重新設定形狀

viewport:偽變換,對視窗上的最終輸出進行縮放

檢視變換:確定場景的拍攝點,在進行其他變換之前需要先指定檢視變換(在場景中放置照相機並讓它指向某個方向)

投影變換:模型檢視變換之後應用在物體的頂點之上,定義了可視區域,建立了裁剪平面(用它來確定幾何圖形能否被觀察者看到)

投影方式:正投影 和 透視投影

在使用opengl提供的變換函式時,要注意的是,變換函式的效果是累積性的

解決方法:把模型檢視矩陣重置為乙個已知的狀態

把單位矩陣載入到模型檢視矩陣

glmatrixmode(gl_modelview);

glloadidentity();

矩陣堆疊:用於儲存模型始圖矩陣或者投影矩陣(儲存自己經常使用的,方便操作)

照相機管理

照相機變換:

void glulookat(

gldouble eyex, gldouble eyey, gldouble eyez,

gldouble centerx, gldouble centery, gldouble centerz,

gldouble upx, gldouble upy, gldouble upz

);

例項:透視投影下太陽系的觀察

#include 

#include

#include

void setuprc()

void timerfunction(int value)

void changesize(glsizei w, glsizei h)

void renderscene(void)

int main(int argc, char* argv)

OpenGL學習筆記 14 畫素操作

影象與點陣圖不同的是,影象的每個儲存可以儲存rgba顏色 繪製乙個矩形畫素資料 void gldrawpixels glsizei width,glsizei height,glenum format,glenum type,const glvoid pixels 如下示例 create check...

OpenGL學習筆記 動畫基本概念

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

OpenGL畫素操作

簡單的opengl畫素操作 opengl提供了簡潔的函式來操作畫素 glreadpixels 讀取一些畫素。當前可以簡單理解為 把已經繪製好的畫素 它可能已經被儲存到顯示卡的視訊記憶體中 讀取到記憶體 gldrawpixels 繪製一些畫素。當前可以簡單理解為 把記憶體中一些資料作為畫素資料,進行繪...