Advertisement
Guest User

123123123123

a guest
Dec 11th, 2019
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.93 KB | None | 0 0
  1. void setLightning() {
  2. GLfloat ambient[] = { 1.0, 1.0, 1.0, 1.0 }; // значения RGBA, определяющие интенсивность рассеянного света ис-точника krasniy
  3.  
  4. GLfloat diffuse[] = { 1.0, 1.0, 1.0, 1.0 }; // интенсивность диффуз-ного освещения
  5. GLfloat specular[] = { 0.0, 0.0, 1.0, 1.0 }; // интенсивность осве-щения зеркального от-ражения
  6.  
  7. GLfloat position[] = { 40.0, -40.0, 45.0, 1.0 }; // местоположение 0-го источника света – про-жектора
  8.  
  9.  
  10.  
  11. GLfloat direction[] = { -40.0, -40.0, 10 }; // направление действия про-жектора
  12.  
  13. GLfloat pos_0[] = { -40.0, 40.0, 3.0, 1.0 };
  14. GLfloat amb_0[] = { 1.0, 0.0, 0.0, 1.0 };
  15. GLfloat dif_0[] = { 1.0, 0.0, 0, 1.0 };
  16. GLfloat spec_0[] = { 1.0, 1.0, 1.0, 1.0 };
  17.  
  18. GLfloat pos_1[] = { 40.0, 40.0, 3.0, 1.0 };
  19. GLfloat amb_1[] = { 0.0, 0.0, 1.0, 1.0 };
  20. GLfloat dif_1[] = { 0.0, 0.0, 0.0, 1.0 };
  21. GLfloat spec_1[] = { 1.0, 1.0, 1.0, 1.0 };
  22.  
  23. GLfloat pos_2[] = { -40.0, -40.0, 3.0, 1.0 };
  24. GLfloat amb_2[] = { 1.0, 0.0, 0.0, 1.0 };
  25. GLfloat dif_2[] = { 0.0, 0.0, 0.0, 1.0 };
  26. GLfloat spec_2[] = { 1.0, 1.0, 1.0, 1.0 };
  27.  
  28. GLfloat lmodel_ambient[] = { 0.5, 0.2, 0.7, 1.0 }; // полная фоновая интенсивность света
  29. GLfloat local_view[] = { GL_TRUE }; // местоположение наблю-дателя в начале видовой системы координат
  30. // Установка параметров источника света (прожектора GL_LIGHT0)
  31. glLightf(GL_LIGHT0, GL_SPOT_EXPONENT, 10.0); // 0-128; по-казатель распределения интенсивности прожек-тора
  32. glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, 120.0); // 0-90, 180; угол разброса прожектора
  33. glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, direction); // направление действия прожектора
  34. glLightfv(GL_LIGHT0, GL_AMBIENT, ambient); // фоновое осве-щение (рассеянный свет)
  35. glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse); // диффузное осве-щение
  36. glLightfv(GL_LIGHT0, GL_SPECULAR, specular); // зеркальное
  37. glLightfv(GL_LIGHT0, GL_POSITION, position); // местоположение прожектора
  38.  
  39. glLightf(GL_LIGHT1, GL_SPOT_EXPONENT, 10.0); // 0-128; по-казатель распределения интенсивности прожек-тора
  40. glLightf(GL_LIGHT1, GL_SPOT_CUTOFF, 120.0); // 0-90, 180; угол разброса прожектора
  41. glLightfv(GL_LIGHT1, GL_SPOT_DIRECTION, direction); // направление действия прожектора
  42. glLightfv(GL_LIGHT1, GL_AMBIENT, amb_0); // фоновое осве-щение (рассеянный свет)
  43. glLightfv(GL_LIGHT1, GL_DIFFUSE, dif_0); // диффузное осве-щение
  44. glLightfv(GL_LIGHT1, GL_SPECULAR, spec_0); // зеркальное
  45. glLightfv(GL_LIGHT1, GL_POSITION, pos_0);
  46.  
  47. glLightf(GL_LIGHT2, GL_SPOT_EXPONENT, 10.0); // 0-128; по-казатель распределения интенсивности прожек-тора
  48. glLightf(GL_LIGHT2, GL_SPOT_CUTOFF, 120.0); // 0-90, 180; угол разброса прожектора
  49. glLightfv(GL_LIGHT2, GL_SPOT_DIRECTION, direction); // направление действия прожектора
  50. glLightfv(GL_LIGHT2, GL_AMBIENT, amb_1); // фоновое осве-щение (рассеянный свет)
  51. glLightfv(GL_LIGHT2, GL_DIFFUSE, dif_1); // диффузное осве-щение
  52. glLightfv(GL_LIGHT2, GL_SPECULAR, spec_1); // зеркальное
  53. glLightfv(GL_LIGHT2, GL_POSITION, pos_1);
  54.  
  55. glLightf(GL_LIGHT3, GL_SPOT_EXPONENT, 10.0); // 0-128; по-казатель распределения интенсивности прожек-тора
  56. glLightf(GL_LIGHT3, GL_SPOT_CUTOFF, 120.0); // 0-90, 180; угол разброса прожектора
  57. glLightfv(GL_LIGHT3, GL_SPOT_DIRECTION, direction); // направление действия прожектора
  58. glLightfv(GL_LIGHT3, GL_AMBIENT, amb_2); // фоновое осве-щение (рассеянный свет)
  59. glLightfv(GL_LIGHT3, GL_DIFFUSE, dif_2); // диффузное осве-щение
  60. glLightfv(GL_LIGHT3, GL_SPECULAR, spec_2); // зеркальное
  61. glLightfv(GL_LIGHT3, GL_POSITION, pos_2);
  62.  
  63. //glLightf(GL_LIGHT1, GL_SPOT_EXPONENT, 10.0); // 0-128; по-казатель распределения интенсивности прожек-тора
  64. //glLightf(GL_LIGHT1, GL_SPOT_CUTOFF, 120.0); // 0-90, 180; угол разброса прожектора
  65. //glLightfv(GL_LIGHT1, GL_SPOT_DIRECTION, direction1);
  66. //glLightfv(GL_LIGHT1, GL_AMBIENT, ambient1); // фоновое осве-щение (рассеянный свет)
  67. //glLightfv(GL_LIGHT1, GL_DIFFUSE, diffuse); // диффузное осве-щение
  68. //glLightfv(GL_LIGHT1, GL_SPECULAR, specular); // зеркальное
  69. //glLightfv(GL_LIGHT1, GL_POSITION, position1);
  70.  
  71.  
  72. //glLightf(GL_LIGHT2, GL_SPOT_EXPONENT, 10.0); // 0-128; по-казатель распределения интенсивности прожек-тора
  73. //glLightf(GL_LIGHT2, GL_SPOT_CUTOFF, 120.0); // 0-90, 180; угол разброса прожектора
  74. //glLightfv(GL_LIGHT2, GL_SPOT_DIRECTION, direction2);
  75. //glLightfv(GL_LIGHT2, GL_AMBIENT, ambient2); // фоновое осве-щение (рассеянный свет)
  76. //glLightfv(GL_LIGHT2, GL_DIFFUSE, diffuse); // диффузное осве-щение
  77. //glLightfv(GL_LIGHT2, GL_SPECULAR, specular); // зеркальное
  78. //glLightfv(GL_LIGHT2, GL_POSITION, position2);
  79.  
  80.  
  81.  
  82.  
  83.  
  84. //glLightf(GL_LIGHT3, GL_SPOT_EXPONENT, 10.0); // 0-128; по-казатель распределения интенсивности прожек-тора
  85. //glLightf(GL_LIGHT3, GL_SPOT_CUTOFF, 120.0); // 0-90, 180; угол разброса прожектора
  86. //glLightfv(GL_LIGHT3, GL_SPOT_DIRECTION, direction3);
  87. //glLightfv(GL_LIGHT3, GL_AMBIENT, ambient3); // фоновое осве-щение (рассеянный свет)
  88. //glLightfv(GL_LIGHT3, GL_DIFFUSE, diffuse); // диффузное осве-щение
  89. //glLightfv(GL_LIGHT3, GL_SPECULAR, specular); // зеркальное
  90. //glLightfv(GL_LIGHT3, GL_POSITION, position3);
  91.  
  92.  
  93.  
  94.  
  95. glEnable(GL_LIGHTING); // включение режима анализа освещения
  96. glEnable(GL_LIGHT0); // включаем прожектор
  97. glEnable(GL_LIGHT1);
  98. glEnable(GL_LIGHT2);
  99. glEnable(GL_LIGHT3);
  100.  
  101. glEnable(GL_NORMALIZE); // режим нормализации нормалей
  102. glEnable(GL_DEPTH_TEST); // тест глубины
  103. glEnable(GL_COLOR_MATERIAL); // учет цвета материала
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement