浏览代码

Reviewed skybox example

Ray 7 年之前
父节点
当前提交
1ff8947864
共有 2 个文件被更改,包括 7 次插入2 次删除
  1. 7 2
      examples/models/models_skybox.c
  2. 二进制
      examples/models/models_skybox.png

+ 7 - 2
examples/models/models_skybox.c

@@ -36,10 +36,15 @@ int main()
     Shader shdrCubemap = LoadShader("resources/shaders/cubemap.vs", "resources/shaders/cubemap.fs");
     Shader shdrCubemap = LoadShader("resources/shaders/cubemap.vs", "resources/shaders/cubemap.fs");
     SetShaderValuei(shdrCubemap, GetShaderLocation(shdrCubemap, "equirectangularMap"), (int[1]){ 0 }, 1);
     SetShaderValuei(shdrCubemap, GetShaderLocation(shdrCubemap, "equirectangularMap"), (int[1]){ 0 }, 1);
     
     
+    // Load HDR panorama (sphere) texture
     Texture2D texHDR = LoadTexture("resources/dresden_square.hdr");
     Texture2D texHDR = LoadTexture("resources/dresden_square.hdr");
+    
+    // Generate cubemap (texture with 6 quads-cube-mapping) from panorama HDR texture
+    // NOTE: New texture is generated rendering to texture, shader computes the sphre->cube coordinates mapping
     skybox.material.maps[MAP_CUBEMAP].texture = GenTextureCubemap(shdrCubemap, texHDR, 512);
     skybox.material.maps[MAP_CUBEMAP].texture = GenTextureCubemap(shdrCubemap, texHDR, 512);
     
     
-    UnloadShader(shdrCubemap);  // Cubemap generation shader not required any more
+    UnloadTexture(texHDR);      // Texture not required anymore, cubemap already generated
+    UnloadShader(shdrCubemap);  // Unload cubemap generation shader, not required anymore
     
     
     SetCameraMode(camera, CAMERA_FIRST_PERSON);  // Set a first person camera mode
     SetCameraMode(camera, CAMERA_FIRST_PERSON);  // Set a first person camera mode
 
 
@@ -76,7 +81,7 @@ int main()
 
 
     // De-Initialization
     // De-Initialization
     //--------------------------------------------------------------------------------------
     //--------------------------------------------------------------------------------------
-    UnloadModel(skybox);        // Unload skybox model
+    UnloadModel(skybox);        // Unload skybox model (and textures)
 
 
     CloseWindow();              // Close window and OpenGL context
     CloseWindow();              // Close window and OpenGL context
     //--------------------------------------------------------------------------------------
     //--------------------------------------------------------------------------------------

二进制
examples/models/models_skybox.png