Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

OpenGL Ex2

.cpp
Скачиваний:
2
Добавлен:
08.10.2015
Размер:
1.45 Кб
Скачать
#include <stdafx.h>

#include <glut.h>

void init()
{
	glClearColor(0.3, 0.3, 0.3, 1.0);
	glEnable(GL_LIGHTING);
	glLightModelf(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
	glEnable(GL_NORMALIZE);
}

void reshape(int width, int height)
{
	glViewport(0, 0, width, height);
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();

	glOrtho(-1.2, 1.2, -1.2, 1.2, -1, 1);

	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();
}

void init_l()
{
	float light0_diffuse[] = { 0.4, 0.7, 0.2 };
	float light0_direction[] = { 0.0, 1.0, 1.0, 1.0 };

	glEnable(GL_LIGHT0);

	glLightfv(GL_LIGHT0, GL_DIFFUSE, light0_diffuse);
	glLightfv(GL_LIGHT0, GL_POSITION, light0_direction);
}

void display()
{
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

	init_l();

	GLfloat x, y;
	glBegin(GL_QUADS);
	glNormal3f(0.0, 0.0, -1.0);
	for (x = -1.0; x < 1.0; x += 0.005)
	{
		for (y = -1.0; y < 1.0; y += 0.005)
		{
			glVertex3f(x, y, 0.0);
			glVertex3f(x, y + 0.005, 0.0);
			glVertex3f(x + 0.005, y + 0.005, 0.0);
			glVertex3f(x + 0.005, y, 0.0);
		}
	}
	glEnd();

	glDisable(GL_LIGHT0);
	glutSwapBuffers();
}

int main(int argc, char** argv)
{
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
	glutInitWindowPosition(500, 500);
	glutInitWindowSize(500,500);
	glutCreateWindow("Приклад №2 Орлюк");
	init();
	glutDisplayFunc(display);
	glutReshapeFunc(reshape);
	glutMainLoop();
}
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]