Advertisement
Guest User

Untitled

a guest
Jan 28th, 2020
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.84 KB | None | 0 0
  1. //reflektor
  2. GLfloat param_swiatla1[5][4] = {
  3. {1,1,0.2,1}, // [0] światło otoczenia
  4. {1,1,0.2,1}, // [1] światło rozproszone
  5. {1,1,0.2,1}, // [2] światło zwierciadlane
  6. {0,0,0,1}, // [3] położenie
  7. {-1,0,0} // [4] kierunek świecenia
  8. };
  9.  
  10. //kierunkowe
  11. GLfloat param_swiatla2[5][4] = {
  12. {0.505,0.02,0.7,1}, // [0] światło otoczenia
  13. {0.505,0.02,0.7,1}, // [1] światło rozproszone
  14. {0.505,0.02,0.7,1}, // [2] światło zwierciadlane
  15. {10,-5,10,0}, // [3] położenie
  16. {0,0,0,0} // [4] kierunek świecenia
  17. };
  18.  
  19.  
  20.  
  21.  
  22. void UstawSwiatlaIMaterialy()
  23. {
  24. glEnable(GL_LIGHTING);
  25. // Odblokowanie zrodla swiatla nr 1
  26.  
  27.  
  28. if (zrodlo1 == 1)
  29. {
  30. glDisable(GL_LIGHTING);
  31. glPushMatrix();
  32.  
  33. glRotatef(nachylenie_reflektor, 1, 0, 0);
  34. glBegin(GL_LINE_STRIP);
  35. glColor3f(0, 0, 0);
  36. for (int i = 0; i <= 360; i = i + 2)
  37. {
  38. glVertex3f(r_reflektor * cos(DEG2RAD(i)), 0, r_reflektor * sin(DEG2RAD(i)));
  39. }
  40. glEnd();
  41. glPopMatrix();
  42.  
  43. glPushMatrix();
  44.  
  45. glRotatef(nachylenie_reflektor, 1, 0, 0);
  46. glRotatef(kat_reflektor, 0, 1, 0);
  47. glTranslatef(r_reflektor, 0, 0);
  48.  
  49.  
  50. glColor3f(1, 1, 0);
  51. glutSolidSphere(0.3, 5, 5);
  52. glEnable(GL_LIGHTING);
  53.  
  54. glEnable(GL_LIGHT0);
  55.  
  56. // Inicjowanie zrodla swiatla
  57. glLightfv(GL_LIGHT0, GL_DIFFUSE, param_swiatla1[1]);
  58. glLightfv(GL_LIGHT0, GL_SPECULAR, param_swiatla1[2]);
  59. glLightfv(GL_LIGHT0, GL_POSITION, param_swiatla1[3]);
  60. glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, 45);
  61. glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, param_swiatla1[4]);
  62.  
  63. glPopMatrix();
  64. }
  65. else {
  66. glDisable(GL_LIGHT0);
  67. }
  68.  
  69. if (zrodlo2 == 1)
  70. {
  71. glEnable(GL_LIGHT1);
  72.  
  73. // Inicjowanie zrodla swiatla
  74. glLightfv(GL_LIGHT1, GL_DIFFUSE, param_swiatla2[1]);
  75. glLightfv(GL_LIGHT1, GL_SPECULAR, param_swiatla2[2]);
  76. glLightfv(GL_LIGHT1, GL_POSITION, param_swiatla2[3]);
  77. glLightfv(GL_LIGHT1, GL_SPOT_DIRECTION, param_swiatla2[4]);
  78. }
  79. else {
  80. glDisable(GL_LIGHT1);
  81. }
  82.  
  83. switch (obecnymaterial)
  84. {
  85. case 0:
  86. glMaterialfv(GL_FRONT, GL_AMBIENT, material1[0]);
  87. glMaterialfv(GL_FRONT, GL_DIFFUSE, material1[1]);
  88. glMaterialfv(GL_FRONT, GL_SPECULAR, material1[2]);
  89. glMaterialfv(GL_FRONT, GL_SHININESS, material1[3]);
  90. glMaterialfv(GL_FRONT, GL_EMISSION, material1[4]);
  91. break;
  92. case 1:
  93. glMaterialfv(GL_FRONT, GL_AMBIENT, material2[0]);
  94. glMaterialfv(GL_FRONT, GL_DIFFUSE, material2[1]);
  95. glMaterialfv(GL_FRONT, GL_SPECULAR, material2[2]);
  96. glMaterialfv(GL_FRONT, GL_SHININESS, material2[3]);
  97. glMaterialfv(GL_FRONT, GL_EMISSION, material2[4]);
  98. break;
  99. case 2:
  100. glMaterialfv(GL_FRONT, GL_AMBIENT, JadeAmbient);
  101. glMaterialfv(GL_FRONT, GL_DIFFUSE, JadeDiffuse);
  102. glMaterialfv(GL_FRONT, GL_SPECULAR, JadeSpecular);
  103. glMaterialfv(GL_FRONT, GL_SHININESS, &JadeShininess);
  104. glMaterialfv(GL_FRONT, GL_EMISSION, material2[4]);
  105. break;
  106. default:
  107. break;
  108. }
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement