Advertisement
Guest User

Untitled

a guest
Jun 18th, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.56 KB | None | 0 0
  1.  
  2. void initSkybox(){
  3.  
  4.  
  5. //skybox top
  6. glGenTextures(1, &skybox[1]);
  7. glBindTexture(GL_TEXTURE_2D, skybox[1]);
  8. glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
  9. glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
  10. glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
  11. glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
  12. glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
  13. imag.LoadBmpFile("skybox/skyrender0002.bmp");
  14. glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB,
  15. imag.GetNumCols(),
  16. imag.GetNumRows(), 0, GL_RGB, GL_UNSIGNED_BYTE,
  17. imag.ImageData());
  18.  
  19. //skybox right
  20. glGenTextures(1, &skybox[2]);
  21. glBindTexture(GL_TEXTURE_2D, skybox[2]);
  22. glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
  23. glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
  24. glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
  25. glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
  26. glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
  27. imag.LoadBmpFile("skybox/skyrender0003.bmp");
  28. glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB,
  29. imag.GetNumCols(),
  30. imag.GetNumRows(), 0, GL_RGB, GL_UNSIGNED_BYTE,
  31. imag.ImageData());
  32.  
  33. //skybox left
  34. glGenTextures(1, &skybox[3]);
  35. glBindTexture(GL_TEXTURE_2D, skybox[3]);
  36. glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
  37. glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
  38. glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
  39. glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
  40. glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
  41. imag.LoadBmpFile("skybox/skyrender0005.bmp");
  42. glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB,
  43. imag.GetNumCols(),
  44. imag.GetNumRows(), 0, GL_RGB, GL_UNSIGNED_BYTE,
  45. imag.ImageData());
  46.  
  47. //skybox front
  48. glGenTextures(1, &skybox[4]);
  49. glBindTexture(GL_TEXTURE_2D, skybox[4]);
  50. glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
  51. glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
  52. glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
  53. glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
  54. glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
  55. imag.LoadBmpFile("skybox/skyrender0001.bmp");
  56. glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB,
  57. imag.GetNumCols(),
  58. imag.GetNumRows(), 0, GL_RGB, GL_UNSIGNED_BYTE,
  59. imag.ImageData());
  60.  
  61. //skybox back
  62. glGenTextures(1, &skybox[5]);
  63. glBindTexture(GL_TEXTURE_2D, skybox[5]);
  64. glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
  65. glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
  66. glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
  67. glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
  68. glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
  69. imag.LoadBmpFile("skybox/skyrender0004.bmp");
  70. glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB,
  71. imag.GetNumCols(),
  72. imag.GetNumRows(), 0, GL_RGB, GL_UNSIGNED_BYTE,
  73. imag.ImageData());
  74.  
  75. }
  76.  
  77. //================================================================================
  78. //================== OBJECTOS
  79. //================================================================================
  80.  
  81. void drawSkybox(){
  82. glPushMatrix();
  83. glTranslatef (0, 0, 100);
  84.  
  85. glEnable(GL_TEXTURE_2D);
  86. glBindTexture(GL_TEXTURE_2D,skybox[4]);
  87. glColor3f(1.0,1.0,1.0);
  88.  
  89. glBegin(GL_POLYGON);//back
  90. glTexCoord2f(1.0f,0.0f); glVertex3f(200, 0, 0);
  91. glTexCoord2f(0.0f,0.0f); glVertex3f(-200, 0, 0);
  92. glTexCoord2f(0.0f,1.0f); glVertex3f(-200, 200, 0);
  93. glTexCoord2f(1.0f,1.0f); glVertex3f(200, 200, 0);
  94. glEnd();
  95.  
  96. glDisable(GL_TEXTURE_2D);
  97. glEnable(GL_TEXTURE_2D);
  98. glBindTexture(GL_TEXTURE_2D,skybox[2]);
  99.  
  100. glBegin(GL_POLYGON);//top
  101. glTexCoord2f(0.0f,0.0f);glVertex3f(200, 200, 0);
  102. glTexCoord2f(0.0f,1.0f);glVertex3f(-200, 200, 0);
  103. glTexCoord2f(1.0,1.0f);glVertex3f(-200, 200, -200);
  104. glTexCoord2f(1.0,0.0);glVertex3f(200, 200, -200);
  105. glEnd();
  106.  
  107. glDisable(GL_TEXTURE_2D);
  108. glEnable(GL_TEXTURE_2D);
  109. glBindTexture(GL_TEXTURE_2D,skybox[3]);
  110.  
  111. glBegin(GL_POLYGON);
  112. glTexCoord2f(0.0f,0.0f); glVertex3f(-200, 0, -200);
  113. glTexCoord2f(1.0f,0.0f); glVertex3f(-200, 0, 0);
  114. glTexCoord2f(1.0f,1.0f); glVertex3f(-200, 200, 0);
  115. glTexCoord2f(0.0f,1.0f); glVertex3f(-200, 200, -200);
  116. glEnd();
  117.  
  118. glDisable(GL_TEXTURE_2D);
  119. glEnable(GL_TEXTURE_2D);
  120. glBindTexture(GL_TEXTURE_2D,skybox[1]);
  121.  
  122. glBegin(GL_POLYGON);
  123. glTexCoord2f(1.0f,0.0f);glVertex3f(200, 0, -200);
  124. glTexCoord2f(0.0f,0.0f);glVertex3f(200, 0, 0);
  125. glTexCoord2f(0.0f,1.0f);glVertex3f(200, 200, 0);
  126. glTexCoord2f(1.0f,1.0f);glVertex3f(200, 200, -200);
  127. glEnd();
  128.  
  129. glDisable(GL_TEXTURE_2D);
  130. glEnable(GL_TEXTURE_2D);
  131. glBindTexture(GL_TEXTURE_2D,skybox[5]);
  132.  
  133. glBegin(GL_POLYGON);
  134. glTexCoord2f(0.0f,0.0f); glVertex3f(200, 0, -200);
  135. glTexCoord2f(1.0f,0.0f); glVertex3f(-200, 0, -200);
  136. glTexCoord2f(1.0f,1.0f); glVertex3f(-200, 200, -200);
  137. glTexCoord2f(0.0f,1.0f); glVertex3f(200, 200, -200);
  138. glEnd();
  139. glDisable(GL_TEXTURE_2D);
  140.  
  141. glPopMatrix();
  142. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement