Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //reflektor
- GLfloat param_swiatla1[5][4] = {
- {1,1,0.2,1}, // [0] światło otoczenia
- {1,1,0.2,1}, // [1] światło rozproszone
- {1,1,0.2,1}, // [2] światło zwierciadlane
- {0,0,0,1}, // [3] położenie
- {-1,0,0} // [4] kierunek świecenia
- };
- //kierunkowe
- GLfloat param_swiatla2[5][4] = {
- {0.505,0.02,0.7,1}, // [0] światło otoczenia
- {0.505,0.02,0.7,1}, // [1] światło rozproszone
- {0.505,0.02,0.7,1}, // [2] światło zwierciadlane
- {10,-5,10,0}, // [3] położenie
- {0,0,0,0} // [4] kierunek świecenia
- };
- void UstawSwiatlaIMaterialy()
- {
- glEnable(GL_LIGHTING);
- // Odblokowanie zrodla swiatla nr 1
- if (zrodlo1 == 1)
- {
- glDisable(GL_LIGHTING);
- glPushMatrix();
- glRotatef(nachylenie_reflektor, 1, 0, 0);
- glBegin(GL_LINE_STRIP);
- glColor3f(0, 0, 0);
- for (int i = 0; i <= 360; i = i + 2)
- {
- glVertex3f(r_reflektor * cos(DEG2RAD(i)), 0, r_reflektor * sin(DEG2RAD(i)));
- }
- glEnd();
- glPopMatrix();
- glPushMatrix();
- glRotatef(nachylenie_reflektor, 1, 0, 0);
- glRotatef(kat_reflektor, 0, 1, 0);
- glTranslatef(r_reflektor, 0, 0);
- glColor3f(1, 1, 0);
- glutSolidSphere(0.3, 5, 5);
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
- // Inicjowanie zrodla swiatla
- glLightfv(GL_LIGHT0, GL_DIFFUSE, param_swiatla1[1]);
- glLightfv(GL_LIGHT0, GL_SPECULAR, param_swiatla1[2]);
- glLightfv(GL_LIGHT0, GL_POSITION, param_swiatla1[3]);
- glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, 45);
- glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, param_swiatla1[4]);
- glPopMatrix();
- }
- else {
- glDisable(GL_LIGHT0);
- }
- if (zrodlo2 == 1)
- {
- glEnable(GL_LIGHT1);
- // Inicjowanie zrodla swiatla
- glLightfv(GL_LIGHT1, GL_DIFFUSE, param_swiatla2[1]);
- glLightfv(GL_LIGHT1, GL_SPECULAR, param_swiatla2[2]);
- glLightfv(GL_LIGHT1, GL_POSITION, param_swiatla2[3]);
- glLightfv(GL_LIGHT1, GL_SPOT_DIRECTION, param_swiatla2[4]);
- }
- else {
- glDisable(GL_LIGHT1);
- }
- switch (obecnymaterial)
- {
- case 0:
- glMaterialfv(GL_FRONT, GL_AMBIENT, material1[0]);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, material1[1]);
- glMaterialfv(GL_FRONT, GL_SPECULAR, material1[2]);
- glMaterialfv(GL_FRONT, GL_SHININESS, material1[3]);
- glMaterialfv(GL_FRONT, GL_EMISSION, material1[4]);
- break;
- case 1:
- glMaterialfv(GL_FRONT, GL_AMBIENT, material2[0]);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, material2[1]);
- glMaterialfv(GL_FRONT, GL_SPECULAR, material2[2]);
- glMaterialfv(GL_FRONT, GL_SHININESS, material2[3]);
- glMaterialfv(GL_FRONT, GL_EMISSION, material2[4]);
- break;
- case 2:
- glMaterialfv(GL_FRONT, GL_AMBIENT, JadeAmbient);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, JadeDiffuse);
- glMaterialfv(GL_FRONT, GL_SPECULAR, JadeSpecular);
- glMaterialfv(GL_FRONT, GL_SHININESS, &JadeShininess);
- glMaterialfv(GL_FRONT, GL_EMISSION, material2[4]);
- break;
- default:
- break;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement