Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void setLightning() {
- GLfloat ambient[] = { 1.0, 1.0, 1.0, 1.0 }; // значения RGBA, определяющие интенсивность рассеянного света ис-точника krasniy
- GLfloat diffuse[] = { 1.0, 1.0, 1.0, 1.0 }; // интенсивность диффуз-ного освещения
- GLfloat specular[] = { 0.0, 0.0, 1.0, 1.0 }; // интенсивность осве-щения зеркального от-ражения
- GLfloat position[] = { 40.0, -40.0, 45.0, 1.0 }; // местоположение 0-го источника света – про-жектора
- GLfloat direction[] = { -40.0, -40.0, 10 }; // направление действия про-жектора
- GLfloat pos_0[] = { -40.0, 40.0, 3.0, 1.0 };
- GLfloat amb_0[] = { 1.0, 0.0, 0.0, 1.0 };
- GLfloat dif_0[] = { 1.0, 0.0, 0, 1.0 };
- GLfloat spec_0[] = { 1.0, 1.0, 1.0, 1.0 };
- GLfloat pos_1[] = { 40.0, 40.0, 3.0, 1.0 };
- GLfloat amb_1[] = { 0.0, 0.0, 1.0, 1.0 };
- GLfloat dif_1[] = { 0.0, 0.0, 0.0, 1.0 };
- GLfloat spec_1[] = { 1.0, 1.0, 1.0, 1.0 };
- GLfloat pos_2[] = { -40.0, -40.0, 3.0, 1.0 };
- GLfloat amb_2[] = { 1.0, 0.0, 0.0, 1.0 };
- GLfloat dif_2[] = { 0.0, 0.0, 0.0, 1.0 };
- GLfloat spec_2[] = { 1.0, 1.0, 1.0, 1.0 };
- GLfloat lmodel_ambient[] = { 0.5, 0.2, 0.7, 1.0 }; // полная фоновая интенсивность света
- GLfloat local_view[] = { GL_TRUE }; // местоположение наблю-дателя в начале видовой системы координат
- // Установка параметров источника света (прожектора GL_LIGHT0)
- glLightf(GL_LIGHT0, GL_SPOT_EXPONENT, 10.0); // 0-128; по-казатель распределения интенсивности прожек-тора
- glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, 120.0); // 0-90, 180; угол разброса прожектора
- glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, direction); // направление действия прожектора
- glLightfv(GL_LIGHT0, GL_AMBIENT, ambient); // фоновое осве-щение (рассеянный свет)
- glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse); // диффузное осве-щение
- glLightfv(GL_LIGHT0, GL_SPECULAR, specular); // зеркальное
- glLightfv(GL_LIGHT0, GL_POSITION, position); // местоположение прожектора
- glLightf(GL_LIGHT1, GL_SPOT_EXPONENT, 10.0); // 0-128; по-казатель распределения интенсивности прожек-тора
- glLightf(GL_LIGHT1, GL_SPOT_CUTOFF, 120.0); // 0-90, 180; угол разброса прожектора
- glLightfv(GL_LIGHT1, GL_SPOT_DIRECTION, direction); // направление действия прожектора
- glLightfv(GL_LIGHT1, GL_AMBIENT, amb_0); // фоновое осве-щение (рассеянный свет)
- glLightfv(GL_LIGHT1, GL_DIFFUSE, dif_0); // диффузное осве-щение
- glLightfv(GL_LIGHT1, GL_SPECULAR, spec_0); // зеркальное
- glLightfv(GL_LIGHT1, GL_POSITION, pos_0);
- glLightf(GL_LIGHT2, GL_SPOT_EXPONENT, 10.0); // 0-128; по-казатель распределения интенсивности прожек-тора
- glLightf(GL_LIGHT2, GL_SPOT_CUTOFF, 120.0); // 0-90, 180; угол разброса прожектора
- glLightfv(GL_LIGHT2, GL_SPOT_DIRECTION, direction); // направление действия прожектора
- glLightfv(GL_LIGHT2, GL_AMBIENT, amb_1); // фоновое осве-щение (рассеянный свет)
- glLightfv(GL_LIGHT2, GL_DIFFUSE, dif_1); // диффузное осве-щение
- glLightfv(GL_LIGHT2, GL_SPECULAR, spec_1); // зеркальное
- glLightfv(GL_LIGHT2, GL_POSITION, pos_1);
- glLightf(GL_LIGHT3, GL_SPOT_EXPONENT, 10.0); // 0-128; по-казатель распределения интенсивности прожек-тора
- glLightf(GL_LIGHT3, GL_SPOT_CUTOFF, 120.0); // 0-90, 180; угол разброса прожектора
- glLightfv(GL_LIGHT3, GL_SPOT_DIRECTION, direction); // направление действия прожектора
- glLightfv(GL_LIGHT3, GL_AMBIENT, amb_2); // фоновое осве-щение (рассеянный свет)
- glLightfv(GL_LIGHT3, GL_DIFFUSE, dif_2); // диффузное осве-щение
- glLightfv(GL_LIGHT3, GL_SPECULAR, spec_2); // зеркальное
- glLightfv(GL_LIGHT3, GL_POSITION, pos_2);
- //glLightf(GL_LIGHT1, GL_SPOT_EXPONENT, 10.0); // 0-128; по-казатель распределения интенсивности прожек-тора
- //glLightf(GL_LIGHT1, GL_SPOT_CUTOFF, 120.0); // 0-90, 180; угол разброса прожектора
- //glLightfv(GL_LIGHT1, GL_SPOT_DIRECTION, direction1);
- //glLightfv(GL_LIGHT1, GL_AMBIENT, ambient1); // фоновое осве-щение (рассеянный свет)
- //glLightfv(GL_LIGHT1, GL_DIFFUSE, diffuse); // диффузное осве-щение
- //glLightfv(GL_LIGHT1, GL_SPECULAR, specular); // зеркальное
- //glLightfv(GL_LIGHT1, GL_POSITION, position1);
- //glLightf(GL_LIGHT2, GL_SPOT_EXPONENT, 10.0); // 0-128; по-казатель распределения интенсивности прожек-тора
- //glLightf(GL_LIGHT2, GL_SPOT_CUTOFF, 120.0); // 0-90, 180; угол разброса прожектора
- //glLightfv(GL_LIGHT2, GL_SPOT_DIRECTION, direction2);
- //glLightfv(GL_LIGHT2, GL_AMBIENT, ambient2); // фоновое осве-щение (рассеянный свет)
- //glLightfv(GL_LIGHT2, GL_DIFFUSE, diffuse); // диффузное осве-щение
- //glLightfv(GL_LIGHT2, GL_SPECULAR, specular); // зеркальное
- //glLightfv(GL_LIGHT2, GL_POSITION, position2);
- //glLightf(GL_LIGHT3, GL_SPOT_EXPONENT, 10.0); // 0-128; по-казатель распределения интенсивности прожек-тора
- //glLightf(GL_LIGHT3, GL_SPOT_CUTOFF, 120.0); // 0-90, 180; угол разброса прожектора
- //glLightfv(GL_LIGHT3, GL_SPOT_DIRECTION, direction3);
- //glLightfv(GL_LIGHT3, GL_AMBIENT, ambient3); // фоновое осве-щение (рассеянный свет)
- //glLightfv(GL_LIGHT3, GL_DIFFUSE, diffuse); // диффузное осве-щение
- //glLightfv(GL_LIGHT3, GL_SPECULAR, specular); // зеркальное
- //glLightfv(GL_LIGHT3, GL_POSITION, position3);
- glEnable(GL_LIGHTING); // включение режима анализа освещения
- glEnable(GL_LIGHT0); // включаем прожектор
- glEnable(GL_LIGHT1);
- glEnable(GL_LIGHT2);
- glEnable(GL_LIGHT3);
- glEnable(GL_NORMALIZE); // режим нормализации нормалей
- glEnable(GL_DEPTH_TEST); // тест глубины
- glEnable(GL_COLOR_MATERIAL); // учет цвета материала
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement