openGL學習筆記十四 透視投影

2021-10-05 05:02:44 字數 2318 閱讀 6378

三維空間物體顯示近大遠小。

透視投影區域是個稜錐體:

透視投影顯示效果:

* 透視投影

*/#define glew_static

#include

#include

#include

#include

#include

#pragma comment(linker, "/subsystem:\"windows\" /entry:\"maincrtstartup\"" )

//這行是取消顯示控制台

char sztitle[64]

="opengl view"

;// window dimensions

const gluint width =

800, height =

600;

static

void

error_callback

(int error,

const

char

* description)

static

void

key_callback

(glfwwindow* window,

int key,

int scancode,

int action,

int mods)

//頂點資料

struct vertex

;// 繪製

static

void

render

(glfwwindow * window),,

,};glenableclientstate

(gl_vertex_array)

;glvertexpointer(3

, gl_float,

sizeof

(vertex)

, arvert)

;gldrawarrays

(gl_********s,0,

3);glfwswapbuffers

(window)

;glfwpollevents()

;}intmain

(void

)glfwmakecontextcurrent

(window)

;glfwsetkeycallback

(window, key_callback)

; glewexperimental = gl_true;

glewinit()

;glviewport(0

,0, width, height)

;//設定opengl視口 即看到的顯示區域

glmatrixmode

(gl_projection)

;//設定當前操作的是投影矩陣佇列

glloadidentity()

;//將佇列最上層的乙個投影矩陣清空成單位矩陣

//gluperspective (gldouble fovy, gldouble aspect, gldouble znear, gldouble zfar);

//fovy 角度 視角

//aspect 寬高比

//znear 近裁剪面

//zfar 遠裁剪面

gluperspective(60

,double

(width)

/double

(height)

,0.1

,1000);

//產生乙個新的投影矩陣並和上面的投影矩陣佇列最上面單位矩陣相乘,實際上就是產生乙個投影矩陣並放到投影矩陣佇列的最上面

OpenGL學習筆記(十四)

和之前生成的opengl物件一樣,紋理也是使用id引用的。讓我們來建立乙個 unsigned int texture glgentextures 1,texture glgentextures函式首先需要輸入生成紋理的數量,然後把它們儲存在第二個引數的unsigned int陣列中 我們的例子中只是...

openGL學習筆記二十四 紋理迴圈滾動

通過每幀改變紋理uv座標實現紋理迴圈滾動。texturev 0.01f 這裡設定乙個矩形區域 並設定紋理uv座標 for int i 0 i 4 i 頂點資料 struct vertex 紋理id gluint texture float texturev 0 static fibitmap rea...

OpenGL學習筆記

我是一名ios開發者,opengl是乙個比較重要的技術。所以就此開啟我的菜鳥之路。opengl open graphics library 是乙個跨程式設計語 言 跨平台的程式設計圖形程式接 它將計算機的資源抽象稱為乙個個opengl的物件,對這些資源的操作抽象為乙個的opengl指令.direct...