要交關於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 繪製一些畫素。當前可以簡單理解為 把記憶體中一些資料作為畫素資料,進行繪...