OpenGL 프로그램을 수행하면서 문제가 발생했습니다. 문제가 무엇인지 확인할 수 있습니까?OpenGL에서 gluPerspective 사용
을 사용하는 경우 y 축을 기준으로 평면을 회전합니다. glOrtho
을 사용할 때는 올바르게 작동하지만 gluPerspective
은 그렇지 않습니다.
gluPerspective
에 약간의 문제가 있습니다. 왜냐하면 각도를 0으로 변경하면 모든 것을 볼 수 있지만 모든 것을 볼 수 없기 때문입니다. 그러나 45로 변경하면 화면에 아무 것도 나타나지 않고 가까운 값과 먼 값에 대한 단서를 얻지 못합니다.
#include iostream
#include "Xlib.h"
#include "gl.h"
#include "glu.h"
#include "glut.h"
#include math.h
void setupRC()
{
glClearColor(1,0,0,1);
glColor3f(0,0,0);
}
void timerfunc(int value)
{
glutPostRedisplay();
glutTimerFunc(1, timerfunc ,1);
}
void RenderScene()
{
glColor3f(0,0,0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
static GLfloat rot = 0.0f,x =0.0f , y=1.0f , z=0.0f;
rot++;
glPushMatrix();
glRotatef(rot,0.0,1.0,0.0);
glBegin(GL_POLYGON);
glVertex3i(1,-1,0);
glVertex3i(1,1,0);
glVertex3i(-1,1,0);
glVertex3i(-1,-1,0);
glVertex3i(1,-1,0);
glEnd();
glPopMatrix();
if (rot == 360)
rot = 0;
glutSwapBuffers();
}
void ChangeSize(GLint w, GLint h)
{
if(h==0)
h = 1;
GLfloat aspectratio = (GLfloat)w/(GLfloat)h;
glViewport(0,0,w,h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0f, aspectratio, 1,1000);
/*if(w <= h)
glOrtho(-100,100,-100/aspectratio, 100/aspectratio, 1,-1);
else
glOrtho(-100*aspectratio, 100*aspectratio , -100,100,1,-1);*/
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
int main(int argc , char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
glutInitWindowSize(800,600);
glutInitWindowPosition(0,0);
glutCreateWindow("chelsea");
glutTimerFunc(1, timerfunc , 1);
setupRC();
glutDisplayFunc(RenderScene);
glutReshapeFunc(ChangeSize);
glutMainLoop();
return 0;
}
는 아마도 더 자세한 설명 제목을 작성합니다
당신은 Z 축을 따라 음의 번역을 적용하여,
? – torgerfovy=45
에 "모든 일"을 참조 카메라에서 멀리 다각형을 이동 할 수있게하려면완벽한 단어와 구두점을 사용하면 질문을 읽기가 쉬워지며 더 가볍게 답을 얻을 수 있습니다. – Nifle
oh k. 알았어. 의견을 주셔서 감사합니다 – yuneek