此網站有詳細介紹該函式的各個參數的定義
在OpenGL裡面可以使用該函式讓你的物體(or線條)有遠小近大的效果
Opengl super bible
有提供source code下載
可以參考第五章ccube
那...opengl es呢?
glFrustum 看起來可以 (參考9.080可以知道glFrustum and gluPerspective的差異)
依照"从零开始学习OpenGL ES之三 – 透视"的參數做設定
會有效果
但是旋轉起來感覺很奇怪
Update:
旋轉的方式有解嚕
感謝blig提供的solution
// replacement for gluPerspective
void setPerspective(GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar){
GLdouble top, bottom, left, right;
top = zNear * tan(pi180*fovy/2);
bottom = -top;
right = aspect*top;
left = -right;
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum(left, right, bottom, top, zNear, zFar);
glMatrixMode(GL_MODELVIEW);
}
旋轉就有遠近效果
效果呈現1:
效果呈現2:
無遠近效果呈現:
沒有留言:
張貼留言