Browse Source

Review heightmap example for raylib 1.8

raysan5 8 years ago
parent
commit
163339991c
1 changed files with 10 additions and 8 deletions
  1. 10 8
      examples/models/models_heightmap.c

+ 10 - 8
examples/models/models_heightmap.c

@@ -23,11 +23,14 @@ int main()
     // Define our custom camera to look into our 3d world
     // Define our custom camera to look into our 3d world
     Camera camera = {{ 18.0f, 16.0f, 18.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f };
     Camera camera = {{ 18.0f, 16.0f, 18.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f };
 
 
-    Image image = LoadImage("resources/heightmap.png");         // Load heightmap image (RAM)
-    Texture2D texture = LoadTextureFromImage(image);            // Convert image to texture (VRAM)
-    Model map = LoadHeightmap(image, (Vector3){ 16, 8, 16 });   // Load heightmap model with defined size
-    map.material.texDiffuse = texture;                          // Set map diffuse texture
-    Vector3 mapPosition = { -8.0f, 0.0f, -8.0f };               // Set model position (depends on model scaling!)
+    Image image = LoadImage("resources/heightmap.png");             // Load heightmap image (RAM)
+    Texture2D texture = LoadTextureFromImage(image);                // Convert image to texture (VRAM)
+    
+    Mesh mesh = GenMeshHeightmap(image, (Vector3){ 16, 8, 16 });    // Generate heightmap mesh (RAM and VRAM)
+    Model model = LoadModelFromMesh(mesh);                          // Load model from generated mesh
+
+    model.material.maps[MAP_DIFFUSE].texture = texture;             // Set map diffuse texture
+    Vector3 mapPosition = { -8.0f, 0.0f, -8.0f };                   // Define model position
 
 
     UnloadImage(image);                     // Unload heightmap image from RAM, already uploaded to VRAM
     UnloadImage(image);                     // Unload heightmap image from RAM, already uploaded to VRAM
     
     
@@ -52,8 +55,7 @@ int main()
 
 
             Begin3dMode(camera);
             Begin3dMode(camera);
 
 
-                // NOTE: Model is scaled to 1/4 of its original size (128x128 units)
-                DrawModel(map, mapPosition, 1.0f, RED);
+                DrawModel(model, mapPosition, 1.0f, RED);
 
 
                 DrawGrid(20, 1.0f);
                 DrawGrid(20, 1.0f);
 
 
@@ -71,7 +73,7 @@ int main()
     // De-Initialization
     // De-Initialization
     //--------------------------------------------------------------------------------------
     //--------------------------------------------------------------------------------------
     UnloadTexture(texture);     // Unload texture
     UnloadTexture(texture);     // Unload texture
-    UnloadModel(map);           // Unload model
+    UnloadModel(model);         // Unload model
 
 
     CloseWindow();              // Close window and OpenGL context
     CloseWindow();              // Close window and OpenGL context
     //--------------------------------------------------------------------------------------
     //--------------------------------------------------------------------------------------