summaryrefslogtreecommitdiffhomepage
path: root/examples/src/models
diff options
context:
space:
mode:
Diffstat (limited to 'examples/src/models')
-rw-r--r--examples/src/models/models_cubicmap.c12
-rw-r--r--examples/src/models/models_heightmap.c20
-rw-r--r--examples/src/models/models_mesh_picking.c28
-rw-r--r--examples/src/models/models_obj_loading.c2
4 files changed, 33 insertions, 29 deletions
diff --git a/examples/src/models/models_cubicmap.c b/examples/src/models/models_cubicmap.c
index 0e61302..d8be932 100644
--- a/examples/src/models/models_cubicmap.c
+++ b/examples/src/models/models_cubicmap.c
@@ -2,7 +2,7 @@
*
* raylib [models] example - Cubicmap loading and drawing
*
-* This example has been created using raylib 1.3 (www.raylib.com)
+* This example has been created using raylib 1.8 (www.raylib.com)
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
*
* Copyright (c) 2015 Ramon Santamaria (@raysan5)
@@ -25,11 +25,13 @@ int main()
Image image = LoadImage("resources/cubicmap.png"); // Load cubicmap image (RAM)
Texture2D cubicmap = LoadTextureFromImage(image); // Convert image to texture to display (VRAM)
- Model map = LoadCubicmap(image); // Load cubicmap model (generate model from image)
+
+ Mesh mesh = GenMeshCubicmap(image, (Vector3){ 1.0f, 1.0f, 1.0f });
+ Model model = LoadModelFromMesh(mesh);
// NOTE: By default each cube is mapped to one part of texture atlas
Texture2D texture = LoadTexture("resources/cubicmap_atlas.png"); // Load map texture
- map.material.texDiffuse = texture; // Set map diffuse texture
+ model.material.maps[MAP_DIFFUSE].texture = texture; // Set map diffuse texture
Vector3 mapPosition = { -16.0f, 0.0f, -8.0f }; // Set model position
@@ -56,7 +58,7 @@ int main()
Begin3dMode(camera);
- DrawModel(map, mapPosition, 1.0f, WHITE);
+ DrawModel(model, mapPosition, 1.0f, WHITE);
End3dMode();
@@ -76,7 +78,7 @@ int main()
//--------------------------------------------------------------------------------------
UnloadTexture(cubicmap); // Unload cubicmap texture
UnloadTexture(texture); // Unload map texture
- UnloadModel(map); // Unload map model
+ UnloadModel(model); // Unload map model
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
diff --git a/examples/src/models/models_heightmap.c b/examples/src/models/models_heightmap.c
index 10069e0..e476d1b 100644
--- a/examples/src/models/models_heightmap.c
+++ b/examples/src/models/models_heightmap.c
@@ -2,7 +2,7 @@
*
* raylib [models] example - Heightmap loading and drawing
*
-* This example has been created using raylib 1.3 (www.raylib.com)
+* This example has been created using raylib 1.8 (www.raylib.com)
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
*
* Copyright (c) 2015 Ramon Santamaria (@raysan5)
@@ -23,11 +23,14 @@ int main()
// 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 };
- 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
@@ -52,8 +55,7 @@ int main()
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);
@@ -71,7 +73,7 @@ int main()
// De-Initialization
//--------------------------------------------------------------------------------------
UnloadTexture(texture); // Unload texture
- UnloadModel(map); // Unload model
+ UnloadModel(model); // Unload model
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
diff --git a/examples/src/models/models_mesh_picking.c b/examples/src/models/models_mesh_picking.c
index 0b5247e..e150fe9 100644
--- a/examples/src/models/models_mesh_picking.c
+++ b/examples/src/models/models_mesh_picking.c
@@ -35,7 +35,7 @@ int main()
Model tower = LoadModel("resources/tower.obj"); // Load OBJ model
Texture2D texture = LoadTexture("resources/tower.png"); // Load model texture
- tower.material.texDiffuse = texture; // Set model diffuse texture
+ tower.material.maps[MAP_DIFFUSE].texture = texture; // Set model diffuse texture
Vector3 towerPos = { 0.0f, 0.0f, 0.0f }; // Set model position
BoundingBox towerBBox = CalculateBoundingBox(tower.mesh);
@@ -89,7 +89,7 @@ int main()
cursorColor = PURPLE;
hitObjectName = "Triangle";
- bary = VectorBarycenter(nearestHit.hitPosition, ta, tb, tc);
+ bary = Vector3Barycenter(nearestHit.position, ta, tb, tc);
hitTriangle = true;
}
else hitTriangle = false;
@@ -136,15 +136,15 @@ int main()
// If we hit something, draw the cursor at the hit point
if (nearestHit.hit)
{
- DrawCube(nearestHit.hitPosition, 0.3, 0.3, 0.3, cursorColor);
- DrawCubeWires(nearestHit.hitPosition, 0.3, 0.3, 0.3, RED);
+ DrawCube(nearestHit.position, 0.3, 0.3, 0.3, cursorColor);
+ DrawCubeWires(nearestHit.position, 0.3, 0.3, 0.3, RED);
Vector3 normalEnd;
- normalEnd.x = nearestHit.hitPosition.x + nearestHit.hitNormal.x;
- normalEnd.y = nearestHit.hitPosition.y + nearestHit.hitNormal.y;
- normalEnd.z = nearestHit.hitPosition.z + nearestHit.hitNormal.z;
+ normalEnd.x = nearestHit.position.x + nearestHit.normal.x;
+ normalEnd.y = nearestHit.position.y + nearestHit.normal.y;
+ normalEnd.z = nearestHit.position.z + nearestHit.normal.z;
- DrawLine3D(nearestHit.hitPosition, normalEnd, RED);
+ DrawLine3D(nearestHit.position, normalEnd, RED);
}
DrawRay(ray, MAROON);
@@ -163,14 +163,14 @@ int main()
DrawText(FormatText("Distance: %3.2f", nearestHit.distance), 10, ypos, 10, BLACK);
DrawText(FormatText("Hit Pos: %3.2f %3.2f %3.2f",
- nearestHit.hitPosition.x,
- nearestHit.hitPosition.y,
- nearestHit.hitPosition.z), 10, ypos + 15, 10, BLACK);
+ nearestHit.position.x,
+ nearestHit.position.y,
+ nearestHit.position.z), 10, ypos + 15, 10, BLACK);
DrawText(FormatText("Hit Norm: %3.2f %3.2f %3.2f",
- nearestHit.hitNormal.x,
- nearestHit.hitNormal.y,
- nearestHit.hitNormal.z), 10, ypos + 30, 10, BLACK);
+ nearestHit.normal.x,
+ nearestHit.normal.y,
+ nearestHit.normal.z), 10, ypos + 30, 10, BLACK);
if (hitTriangle) DrawText(FormatText("Barycenter: %3.2f %3.2f %3.2f", bary.x, bary.y, bary.z), 10, ypos + 45, 10, BLACK);
}
diff --git a/examples/src/models/models_obj_loading.c b/examples/src/models/models_obj_loading.c
index 50d42d2..70f9216 100644
--- a/examples/src/models/models_obj_loading.c
+++ b/examples/src/models/models_obj_loading.c
@@ -25,7 +25,7 @@ int main()
Model dwarf = LoadModel("resources/model/dwarf.obj"); // Load OBJ model
Texture2D texture = LoadTexture("resources/model/dwarf_diffuse.png"); // Load model texture
- dwarf.material.texDiffuse = texture; // Set dwarf model diffuse texture
+ dwarf.material.maps[MAP_DIFFUSE].texture = texture; // Set map diffuse texture
Vector3 position = { 0.0f, 0.0f, 0.0f }; // Set model position
SetTargetFPS(60); // Set our game to run at 60 frames-per-second