2012-04-17 1 views
-2

Я визуализирую сцену с некоторым изображением карты в OpenGL и используя lat, lon карты как координаты непосредственно. Таким образом, моя сцена не начинается с 0,0 и достигает ширины, высоты. Хотя я могу видеть мой многоугольник (очень маленький), я не могу увеличить, изменив z-значение глаза в gluLookAt().Перспективная проекция OpenGL и местоположение камеры

/* 
* My boundary for map quad with texture 
*/ 
#define TOP 41.9061 
#define BOTTOM 41.8546 
#define LEFT -87.7012 
#define RIGHT -87.6054 

/* 
* window size 
*/ 
const unsigned int window_width = 1024; 
const unsigned int window_height = 739; 

/* 
* drawing a polygon with texture 
*/ 
glEnable(GL_TEXTURE_2D); 
glBindTexture(GL_TEXTURE_2D, mainMapTextureId); 
glBegin(GL_POLYGON); 
//bottom left 
glTexCoord2f(0.0f, 1.0f); 
glVertex3f(LEFT, BOTTOM, 0.0); 

//bottom right 
glTexCoord2f(1.0f, 1.0f); 
glVertex3f(RIGHT, BOTTOM, 0.0); 

//top right 
glTexCoord2f(1.0f, 0.0f); 
glVertex3f(RIGHT, TOP, 0.0); 

//top left 
glTexCoord2f(0.0f, 0.0f); 
glVertex3f(LEFT, TOP, 0.0); 
glEnd(); 


/* 
* Setting up the camera 
*/ 
glMatrixMode(GL_PROJECTION); 
glLoadIdentity(); 
gluPerspective(60.0, (GLfloat)window_width/(GLfloat)window_height, 0.0, 10.0); 
gluLookAt((float)(LEFT+RIGHT)/2.0, (float)(TOP+BOTTOM)/2.0, 1.0, 
       (float)(LEFT+RIGHT)/2.0, (float)(TOP+BOTTOM)/2.0, 0.0, 
     0.0f, 1.0f, 0.0f); 

ответ

2

Неправомерно иметь значение 0.0 для ближайшей плоскости gluPerspective. Попробуйте заменить его номинальным небольшим значением (0.1f).

Также всегда ставьте вызов glGetError в свой код в конце, он будет предупреждать вас о проблемах.

+0

Большое спасибо. Это сработало. – musa