Я думаю, что я мог неправильно понять использование gluperspective () и мне нужна помощь.
В настоящее время у меня есть этот код, который выдает пустой черный экран (из того, что, как я думал, я понял, он должен создать два квадрата, один ближе, а другой дальше). Это не делает этого, и мне нужно понять, почему нет.
#include <SDL/SDL.h>
#include <SDL/SDL_opengl.h>
#include <GL/glu.h>
#include "functionfile.h"
int main(int argc, char **argv)
{
init_perspective(640, 480);
glTranslatef(0,0,10);
glColor4f(1.0,1.0,1.0,1.0);
glBegin(GL_QUADS);
glVertex3f(0, 0,0);
glVertex3f(10, 0,0);
glVertex3f(10,10,0);
glVertex3f(0, 10,0);
glEnd();
glLoadIdentity();
glTranslatef(0,0,50);
glBegin(GL_QUADS);
glVertex3f(0, 0, 0);
glVertex3f(10, 0, 0);
glVertex3f(10, 10, 0);
glVertex3f(0, 10, 0);
glEnd();
glLoadIdentity();
SDL_GL_SwapBuffers();
SDL_Delay(2000);
SDL_Quit();
return 0;
}
// from header file "functionfile.h"
void init_perspective(int width, int height)
{
SDL_Init(SDL_INIT_EVERYTHING);
SDL_SetVideoMode(width, height, 32, SDL_OPENGL);
SDL_WM_SetCaption( "OpenGL Test", NULL );
glClearColor( 0, 0, 0, 0 );
glMatrixMode( GL_PROJECTION );
glLoadIdentity();
gluPerspective(45, width/height, 1, 100);
glMatrixMode( GL_MODELVIEW );
glLoadIdentity();
glClear( GL_COLOR_BUFFER_BIT );
}