View difference between Paste ID: M8ffNsVe and w3gmZf8x
SHOW: | | - or go back to the newest paste.
1
#include <Windows.h>
2
3
#include <gl/glew.h>
4
#include <gl/glut.h>
5
6
#include <iostream>
7
8
static int wWidth = 800;
9
static int wHeight = 600;
10
static float yfov = 45.0f;
11
static float zNear = 1.0f;
12
static float zFar = 1600.0f;
13
14
static float red[] = {
15
	0.63f,
16
	0.06f,
17-
	0.04f
17+
	0.04f,
18
	1.0f
19
};
20
21
static float green[] = {
22
	0.15f,
23-
	0.09f
23+
24
	0.09f,
25
	1.0f
26
};
27
28
static float white[] = {
29-
	0.5f
29+
30
	0.75f,
31
	0.5f,
32
	1.0f
33
};
34
35
using namespace std;
36
37
void SetupLights(void);
38
39
void ReshapeWindow(int width, int height);
40
void Render(void);
41
42
int main(int argc, char *argv[])
43
{
44
45
	glutInit(&argc, argv);
46
	glewInit();
47
48
	glutInitDisplayMode(GLUT_DEPTH | GLUT_RGBA | GLUT_DOUBLE);
49
	glutInitWindowSize(wWidth, wHeight);
50
	glutInitWindowPosition(100, 100);
51
52
	glutCreateWindow("wtf?");
53
54
	glutReshapeFunc(ReshapeWindow);
55
	glutDisplayFunc(Render);
56
57
	glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
58
	glEnable(GL_CULL_FACE);
59
	glCullFace(GL_BACK);
60
	
61
	SetupLights();
62
63
	glutMainLoop();
64
65
66
}
67
68
void SetupLights(void)
69
{
70
71
	glEnable(GL_LIGHTING);
72-
		274.4f,
72+
73-
		279.5f
73+
74
		278.0f,
75
		425.0f,
76
		279.5f,
77
		1.0f
78
	};
79-
		0.75f
79+
80
	float lightIntensity[] = {
81
		0.75f,
82
		0.75f,
83
		0.75f,
84
		1.0f
85
	};
86
87
	float lightDirection[] = {
88
		0.0f,
89
		-1.0f,
90
		0.0f
91
	};
92
93
	
94-
	//glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, lightDirection);
94+
95
	glLightfv(GL_LIGHT0, GL_POSITION, lightPosition);
96
	glLightfv(GL_LIGHT0, GL_AMBIENT_AND_DIFFUSE, lightIntensity);
97
	glLightfv(GL_LIGHT0, GL_SPECULAR, lightIntensity);
98
99
	glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, lightDirection);
100
	//glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, 120.0f);
101
	//glLightf(GL_LIGHT0, GL_SPOT_EXPONENT, 128.0f);
102
103
	//glLighti(GL_LIGHT0, GL_CONSTANT_ATTENUATION, 1);
104
	//glLighti(GL_LIGHT0, GL_LINEAR_ATTENUATION, 1);
105
	//glLighti(GL_LIGHT0, GL_QUADRATIC_ATTENUATION, 1);
106
107
	glEnable(GL_LIGHT0);
108
109
}
110
111
void ReshapeWindow(int width, int height)
112
{
113
114
	float ratio = (float) width / height;
115
116
	glMatrixMode(GL_PROJECTION);
117
118
	gluPerspective(yfov, ratio, zNear, zFar);
119
	gluLookAt(278.0f, 273.0f, -800.0f, 278.0f, 273.0f, -799.0f, 0.0f, 1.0f, 0.0f);
120
121
	glMatrixMode(GL_MODELVIEW);
122
123
}
124
125
void Render(void)
126
{
127
128
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
129
130
	
131
	glBegin(GL_TRIANGLES);
132
		
133
		// CEILING
134
135
		glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, white);
136
		glMaterialfv(GL_FRONT, GL_SPECULAR, white);
137
		
138
		glNormal3f(0.0f, -1.0f, 0.0f);
139
140
		glVertex3f(556.0f, 548.8f, 0.0f);
141
		glVertex3f(556.0f, 548.0f, 592.2f);
142
		glVertex3f(0.0f, 548.8f, 0.0f);
143
144
		glVertex3f(556.0f, 548.0f, 592.2f);
145
		glVertex3f(0.0f, 548.8f, 592.2f);
146
		glVertex3f(0.0f, 548.8f, 0.0f);
147
148
		// FLOOR
149
150
		glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, white);
151
		glMaterialfv(GL_FRONT, GL_SPECULAR, white);
152
153
		glNormal3f(0.0f, 1.0f, 0.0f);
154
155
		glVertex3f(552.8, 0.0f, 0.0f);
156
		glVertex3f(0.0f, 0.0f, 0.0f);
157
		glVertex3f(549.6f, 0.0f, 592.2f);
158
159
		glVertex3f(0.0f, 0.0f, 0.0f);
160
		glVertex3f(0.0f, 0.0f, 592.2f);
161
		glVertex3f(549.6f, 0.0f, 592.2f);
162
163
		// BACK WALL
164
165
		glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, white);
166
		glMaterialfv(GL_FRONT, GL_SPECULAR, white);
167
168
		glNormal3f(0.0f, 0.0f, -1.0f);
169
170
		glVertex3f(549.6, 0.0f, 592.2f);
171
		glVertex3f(0.0f, 0.0f, 592.2f);
172
		glVertex3f(556.0f, 548.8f, 592.2f);
173
174
		glVertex3f(0.0f, 0.0f, 592.2f);
175
		glVertex3f(0.0f, 548.8f, 592.2f);
176
		glVertex3f(556.0f, 548.8f, 592.2f);
177
178
		// LEFT WALL
179
180
		glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, red);
181
		glMaterialfv(GL_FRONT, GL_SPECULAR, red);
182
183
		glNormal3f(-1.0f, 0.0f, 0.0f);
184
185
		glVertex3f(552.8f, 0.0f, 0.0f);
186
		glVertex3f(549.6f, 0.0f, 592.2f);
187
		glVertex3f(556.0f, 548.8f, 0.0f);
188
189
		glVertex3f(549.6f, 0.0f, 592.2f);
190
		glVertex3f(556.0f, 548.8f, 592.2f);
191
		glVertex3f(556.0f, 548.8f, 0.0f);
192
193
		// RIGHT WALL
194
195
		glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, green);
196
		glMaterialfv(GL_FRONT, GL_SPECULAR, green);
197
198
		glNormal3f(1.0f, 0.0f, 0.0f);
199
200
		glVertex3f(0.0f, 0.0f, 592.2f);
201
		glVertex3f(0.0f, 0.0f, 0.0f);
202
		glVertex3f(0.0f, 548.8f, 592.2f);
203
204
		glVertex3f(0.0f, 0.0f, 0.0f);
205
		glVertex3f(0.0f, 548.8f, 0.0f);
206
		glVertex3f(0.0f, 548.8f, 592.2f);
207
208
	glEnd();
209
	
210
	glutSwapBuffers();
211
212
}