2010年8月19日 星期四

gluPerspective - opengl 讓物體(or線條)有遠小近大的感覺

此網站有詳細介紹該函式的各個參數的定義
在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:



無遠近效果呈現:

透過Facebook分享

沒有留言: