Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Windows.h>
- #include <gl/glew.h>
- #include <gl/glut.h>
- #include <iostream>
- static int wWidth = 800;
- static int wHeight = 600;
- static float yfov = 45.0f;
- static float zNear = 1.0f;
- static float zFar = 1600.0f;
- static float red[] = {
- 0.63f,
- 0.06f,
- 0.04f
- };
- static float green[] = {
- 0.15f,
- 0.48f,
- 0.09f
- };
- static float white[] = {
- 0.76f,
- 0.75f,
- 0.5f
- };
- using namespace std;
- void SetupLights(void);
- void ReshapeWindow(int width, int height);
- void Render(void);
- int main(int argc, char *argv[])
- {
- glutInit(&argc, argv);
- glewInit();
- glutInitDisplayMode(GLUT_DEPTH | GLUT_RGBA | GLUT_DOUBLE);
- glutInitWindowSize(wWidth, wHeight);
- glutInitWindowPosition(100, 100);
- glutCreateWindow("wtf?");
- glutReshapeFunc(ReshapeWindow);
- glutDisplayFunc(Render);
- glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
- glEnable(GL_CULL_FACE);
- glCullFace(GL_BACK);
- SetupLights();
- glutMainLoop();
- }
- void SetupLights(void)
- {
- glEnable(GL_LIGHTING);
- float lightPosition[] = {
- 278.0f,
- 274.4f,
- 279.5f
- };
- float lightIntensity[] = {
- 0.75f,
- 0.75f,
- 0.75f
- };
- float lightDirection[] = {
- 0.0f,
- -1.0f,
- 0.0f
- };
- glLightfv(GL_LIGHT0, GL_POSITION, lightPosition);
- glLightfv(GL_LIGHT0, GL_AMBIENT_AND_DIFFUSE, lightIntensity);
- glLightfv(GL_LIGHT0, GL_SPECULAR, lightIntensity);
- //glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, lightDirection);
- //glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, 120.0f);
- //glLightf(GL_LIGHT0, GL_SPOT_EXPONENT, 128.0f);
- //glLighti(GL_LIGHT0, GL_CONSTANT_ATTENUATION, 1);
- //glLighti(GL_LIGHT0, GL_LINEAR_ATTENUATION, 1);
- //glLighti(GL_LIGHT0, GL_QUADRATIC_ATTENUATION, 1);
- glEnable(GL_LIGHT0);
- }
- void ReshapeWindow(int width, int height)
- {
- float ratio = (float) width / height;
- glMatrixMode(GL_PROJECTION);
- gluPerspective(yfov, ratio, zNear, zFar);
- gluLookAt(278.0f, 273.0f, -800.0f, 278.0f, 273.0f, -799.0f, 0.0f, 1.0f, 0.0f);
- glMatrixMode(GL_MODELVIEW);
- }
- void Render(void)
- {
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glBegin(GL_TRIANGLES);
- // CEILING
- glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, white);
- glMaterialfv(GL_FRONT, GL_SPECULAR, white);
- glNormal3f(0.0f, -1.0f, 0.0f);
- glVertex3f(556.0f, 548.8f, 0.0f);
- glVertex3f(556.0f, 548.0f, 592.2f);
- glVertex3f(0.0f, 548.8f, 0.0f);
- glVertex3f(556.0f, 548.0f, 592.2f);
- glVertex3f(0.0f, 548.8f, 592.2f);
- glVertex3f(0.0f, 548.8f, 0.0f);
- // FLOOR
- glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, white);
- glMaterialfv(GL_FRONT, GL_SPECULAR, white);
- glNormal3f(0.0f, 1.0f, 0.0f);
- glVertex3f(552.8, 0.0f, 0.0f);
- glVertex3f(0.0f, 0.0f, 0.0f);
- glVertex3f(549.6f, 0.0f, 592.2f);
- glVertex3f(0.0f, 0.0f, 0.0f);
- glVertex3f(0.0f, 0.0f, 592.2f);
- glVertex3f(549.6f, 0.0f, 592.2f);
- // BACK WALL
- glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, white);
- glMaterialfv(GL_FRONT, GL_SPECULAR, white);
- glNormal3f(0.0f, 0.0f, -1.0f);
- glVertex3f(549.6, 0.0f, 592.2f);
- glVertex3f(0.0f, 0.0f, 592.2f);
- glVertex3f(556.0f, 548.8f, 592.2f);
- glVertex3f(0.0f, 0.0f, 592.2f);
- glVertex3f(0.0f, 548.8f, 592.2f);
- glVertex3f(556.0f, 548.8f, 592.2f);
- // LEFT WALL
- glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, red);
- glMaterialfv(GL_FRONT, GL_SPECULAR, red);
- glNormal3f(-1.0f, 0.0f, 0.0f);
- glVertex3f(552.8f, 0.0f, 0.0f);
- glVertex3f(549.6f, 0.0f, 592.2f);
- glVertex3f(556.0f, 548.8f, 0.0f);
- glVertex3f(549.6f, 0.0f, 592.2f);
- glVertex3f(556.0f, 548.8f, 592.2f);
- glVertex3f(556.0f, 548.8f, 0.0f);
- // RIGHT WALL
- glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, green);
- glMaterialfv(GL_FRONT, GL_SPECULAR, green);
- glNormal3f(1.0f, 0.0f, 0.0f);
- glVertex3f(0.0f, 0.0f, 592.2f);
- glVertex3f(0.0f, 0.0f, 0.0f);
- glVertex3f(0.0f, 548.8f, 592.2f);
- glVertex3f(0.0f, 0.0f, 0.0f);
- glVertex3f(0.0f, 548.8f, 0.0f);
- glVertex3f(0.0f, 548.8f, 592.2f);
- glEnd();
- glutSwapBuffers();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement