2014-02-04 4 views
0

У меня есть этот дом с центром в начале координат (0,0,0) с размерами 10x10x20. Я хочу сделать изометрическую проекцию, но дом не displayed.Here код для дома:Изометрическая проекция с gluLookAt

glBegin(GL_TRIANGLES); 

//roof 

glColor3f(1,1,0.35); 
glVertex3f(-5, 5, 10); 
glVertex3f(5, 5, 10); 
glVertex3f(0, 11.160254, 10); 

glColor3f(1,1,0.35); 
glVertex3f(-5, 5, -10); 
glVertex3f(5, 5, -10); 
glVertex3f(0, 11.160254, -10); 

glEnd(); 

/* We tell we want to draw quads */ 
glBegin(GL_QUADS); 

/* Every four calls to glVertex, a quad is drawn */ 


//roof 
glColor3f(1,1,0.5); 
glVertex3f(-5, 5, 10); 
glVertex3f(0, 11.160254, 10); 
glVertex3f(0, 11.160254, -10); 
glVertex3f(-5, 5, -10); 

glColor3f(1,1,0.5); 
glVertex3f(5, 5, 10); 
glVertex3f(0, 11.160254, 10); 
glVertex3f(0, 11.160254, -10); 
glVertex3f(5, 5, -10); 


//left face blue 
glColor3f(0, 0, 1); 
glVertex3f(-5, -5, -10); 
glVertex3f(-5, -5, 10); 
glVertex3f(-5, 5, 10); 
glVertex3f(-5, 5, -10); 


//right face cyan 
glColor3f(0, 1, 1); 
glVertex3f(5, -5, -10); 
glVertex3f(5, -5, 10); 
glVertex3f(5, 5, 10); 
glVertex3f(5, 5, -10); 


//bottom face magenta 
glColor3f(1, 0, 1); 
glVertex3f(-5, -5, -10); 
glVertex3f(-5, -5, 10); 
glVertex3f(5, -5, 10); 
glVertex3f(5, -5, -10); 


//top face yellow 
glColor3f(1, 1, 0); 
glVertex3f(-5, 5, -10); 
glVertex3f(-5, 5, 10); 
glVertex3f(5, 5, 10); 
glVertex3f(5, 5, -10); 

//red back face 
glColor3f(1, 0, 0); 
glVertex3f(-5, -5, -10); 
glVertex3f(-5, 5, -10); 
glVertex3f(5, 5, -10); 
glVertex3f(5, -5, -10); 


//front face green 
glColor3f(0, 1, 0); 
glVertex3f(-5, -5, 10); 
glVertex3f(-5, 5, 10); 
glVertex3f(5, 5, 10); 
glVertex3f(5, -5, 10); 

glEnd();

Может кто-нибудь помочь мне с параметрами, которые мне нужно положить в gluLookAt, чтобы получить изометрическую проекцию?

+0

Это должно помочь: http://stackoverflow.com/questions/1059200/true-isometric-projection-with-opengl –

ответ

0

Хорошо, вы можете попробовать это:

gluLookAt(0.0, 0.0, 10.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); 

глаза на (0.0, 0.0, 10.0), обратите внимание на центральную точку (0,0, 0,0, 0,0), до есть (0.0, 1.0, 0.0) ,

Ниже очень четкое изображение, чтобы объяснить эту функцию:

(от http://profs.sci.univr.it/~colombar/html_openGL_tutorial/en/08viewing_005.html)

К сожалению, я не могу вставить изображение, потому что такая потребность 10 репутации. :(

+0

спасибо. Но теперь я могу видеть только зеленую переднюю грань дома. все окно зеленое. Это похоже на то, что камера приближается к лицевой поверхности. Не могли бы вы объяснить, что я могу сделать? –

+1

Вы можете перемещать положение глаз, например (20.0, 20.0, 20.0). «Это абсолютно бесполезно? Не могли бы вы это объяснить?» –

+0

Я не спускал его вниз. –

Смежные вопросы