Сфера в OpenGL Приветствую! Сегодня мы с вами нарисуем сферу с помощью OpenGL! Я надеюсь, что этот урок вам понравится и вы полюбите язык C++ также как полюбил его я. C++ кстати говоря мне понравился именно из-за простого и понятного программирования под OpenGL, хотя программистом графиков я не стал, а стал системщиком. ВНИМАНИЕ! ДЛЯ НАПИСАНИЯ ПРОГРАММЫ ТРЕБУЕТСЯ Microsoft Visual C++ 6.0! СКАЧАТЬ ВЫ МОЖЕТЕ ЕГО НА САЙТЕ VBBOOK.RU! Теперь начнем приготовление. Создайте новый проект: File -> New -> Win32 Console Application -> Empty Project Далее назовите его Sphere. Затем установите: Build -> Set Active Configuration -> Win32 Release И добавьте в: Project -> Settings -> Link -> Object/library modules Библиотеки opengl32.lib, glaux.lib, glu32.lib Все, подготовку закончили. Вот вам код: void CALLBACK resize(int width,int height)
{
glViewport(0,0,width,height);
glMatrixMode( GL_PROJECTION );
glLoadIdentity();
glOrtho(-5,5, -5,5, 2,12);
gluLookAt( 0,0,5, 0,0,0, 0,1,0 );
glMatrixMode( GL_MODELVIEW );
}
void CALLBACK display(void)
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glTranslated(0.01,0,0);
glColor3d(1,0,0);
auxSolidSphere( 1 );
auxSwapBuffers();
}
void main()
{
float pos[4] = {3,3,3,1};
float dir[3] = {-1,-1,-1};
GLfloat mat_specular[] = {1,1,1,1};
auxInitPosition( 50, 10, 400, 400);
auxInitDisplayMode( AUX_RGB | AUX_DEPTH | AUX_DOUBLE );
auxInitWindow( "Our First OpenGL Application!" );
auxIdleFunc(display);
auxReshapeFunc(resize);
glEnable(GL_DEPTH_TEST);
glEnable(GL_COLOR_MATERIAL);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glLightfv(GL_LIGHT0, GL_POSITION, pos);
glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, dir);
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
glMaterialf(GL_FRONT, GL_SHININESS, 128.0);
auxMainLoop(display);
}
Не забудьте подключить библиотеки: windows.inc GL/gl.h GL/glu.h GL/glaux.h Вот и все. А совсем ленивые могут скачать исходники в исходниках :).
Урок 7 - Движок HGE. Введение
|