码迷,mamicode.com
首页 > 其他好文 > 详细

!gluLookAt与glOrtho 参数解析

时间:2015-03-10 13:48:03      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:

void gluLookAt( GLdouble eyeX,

                GLdouble eyeY,

                GLdouble eyeZ,

                GLdouble centerX,

                GLdouble centerY,

                GLdouble centerZ,

                GLdouble upX,

                GLdouble upY,

                GLdouble upZ);

中eye和center是用来确定看的方向,也就是说即使物体不落在eye和center这两点的范围内,也可以看到。

因为用来确定范围的是另一个函数glOrtho,它的参数

void glOrtho(  GLdouble        left,

                        GLdouble        right,

                        GLdouble        bottom,

                        GLdouble        top,

                        GLdouble        nearVal,

                        GLdouble        farVal);

如果物体不落在这个范围内,那就会看不到。只看得到落在范围内的那一部分。

因此glOrtho的参数可以通过物体的boundingbox来确定。他的left right bottom top near far是通过gluLookAt的eye 和center来确定,就是我看的方向然后上下左右前后 (mark:与坐标x,y,z是代表长宽高不是直接等价的)。

e.g., 

double x,z;
x = pLoadModels->g_3DModel->boundBox.max.x - pLoadModels->g_3DModel->boundBox.min.x;
z = pLoadModels->g_3DModel->boundBox.max.z - pLoadModels->g_3DModel->boundBox.min.z;
double normRadius = max(x,z) * 1.1; // correspond to model‘s extend 1.1 倍 circumcircle

范围最好是比原来的扩大1.1,这样不管多大或者多小的模型,都能自动fit into viewport,就不会有的图很大很小或者看不到要手动调整。

 

 

 

 

 

!gluLookAt与glOrtho 参数解析

标签:

原文地址:http://www.cnblogs.com/qingsunny/p/4325555.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!