diff --git a/examples/models/models_obj_loading.c b/examples/models/models_obj_loading.c deleted file mode 100644 index 6466c00..0000000 --- a/examples/models/models_obj_loading.c +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************************************* -* -* raylib [models] example - Load and draw a 3d model (OBJ) -* -* This example has been created using raylib 1.3 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2014 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -[ - # Initialization - #-------------------------------------------------------------------------------------- - int screenWidth = 800 - int screenHeight = 450 - - InitWindow(screenWidth, screenHeight, "raylib [models] example - obj model loading") - - # Define the camera to look into our 3d world - Camera camera = [ 0 ] - camera.position = (Vector3)[ 8.0, 8.0, 8.0 ] # Camera position - camera.target = (Vector3)[ 0.0, 2.5f, 0.0 ] # Camera looking at point - camera.up = (Vector3)[ 0.0, 1.0, 0.0 ] # Camera up vector (rotation towards target) - camera.fovy = 45.0 # Camera field-of-view Y - camera.type = CAMERA_PERSPECTIVE # Camera mode type - - Model model = LoadModel("resources/models/castle.obj") # Load OBJ model - Texture2D texture = LoadTexture("resources/models/castle_diffuse.png") # Load model texture - model.material.maps[MAP_DIFFUSE].texture = texture # Set map diffuse texture - Vector3 position = [ 0.0, 0.0, 0.0 ] # Set model position - - SetTargetFPS(60) # Set our game to run at 60 frames-per-second - #-------------------------------------------------------------------------------------- - - # Main game loop - while (!WindowShouldClose()) # Detect window close button or ESC key - [ - # Update - #---------------------------------------------------------------------------------- - #... - #---------------------------------------------------------------------------------- - - # Draw - #---------------------------------------------------------------------------------- - BeginDrawing() - - ClearBackground(RAYWHITE) - - BeginMode3D(camera) - - DrawModel(model, position, 0.2f, WHITE) # Draw 3d model with texture - - DrawGrid(10, 1.0) # Draw a grid - - DrawGizmo(position) # Draw gizmo - - EndMode3D() - - DrawText("(c) Castle 3D model by Alberto Cano", screenWidth - 200, screenHeight - 20, 10, GRAY) - - DrawFPS(10, 10) - - EndDrawing() - #---------------------------------------------------------------------------------- - ] - - # De-Initialization - #-------------------------------------------------------------------------------------- - UnloadTexture(texture) # Unload texture - UnloadModel(model) # Unload model - - CloseWindow() # Close window and OpenGL context - #-------------------------------------------------------------------------------------- - - return 0 -] \ No newline at end of file diff --git a/examples/models/models_obj_loading.py b/examples/models/models_obj_loading.py new file mode 100644 index 0000000..ac94b4e --- /dev/null +++ b/examples/models/models_obj_loading.py @@ -0,0 +1,75 @@ +# /******************************************************************************************* +# * +# * raylib [models] example - Load and draw a 3d model (OBJ) +# * +# * This example has been created using raylib 1.3 (www.raylib.com) +# * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +# * +# * Copyright (c) 2014 Ramon Santamaria (@raysan5) +# * +# ********************************************************************************************/ + +from raylib.static import * + +# Initialization +#-------------------------------------------------------------------------------------- +screenWidth = 800 +screenHeight = 450 + +InitWindow(screenWidth, screenHeight, b"raylib [models] example - obj model loading") + +# Define the camera to look into our 3d world +camera = ffi.new("struct Camera3D *") +camera.position = [ 8.0, 8.0, 8.0 ] # Camera position +camera.target = [ 0.0, 2.5, 0.0 ] # Camera looking at point +camera.up = [ 0.0, 1.0, 0.0 ] # Camera up vector (rotation towards target) +camera.fovy = 45.0 # Camera field-of-view Y +camera.type = CAMERA_PERSPECTIVE # Camera mode type + +model = LoadModel(b"resources/models/castle.obj") # Load OBJ model +texture = LoadTexture(b"resources/models/castle_diffuse.png") # Load model texture +model.materials.maps[MAP_DIFFUSE].texture = texture # Set map diffuse texture +position = [ 0.0, 0.0, 0.0 ] # Set model position + +SetTargetFPS(60) # Set our game to run at 60 frames-per-second +#-------------------------------------------------------------------------------------- + +# Main game loop +while not WindowShouldClose(): # Detect window close button or ESC key + # Update + #---------------------------------------------------------------------------------- + #... + #---------------------------------------------------------------------------------- + + # Draw + #---------------------------------------------------------------------------------- + BeginDrawing() + + ClearBackground(RAYWHITE) + + BeginMode3D(camera[0]) + + DrawModel(model, position, 0.2, WHITE) # Draw 3d model with texture + + DrawGrid(10, 1.0) # Draw a grid + + DrawGizmo(position) # Draw gizmo + + EndMode3D() + + DrawText(b"(c) Castle 3D model by Alberto Cano", screenWidth - 200, screenHeight - 20, 10, GRAY) + + DrawFPS(10, 10) + + EndDrawing() + #---------------------------------------------------------------------------------- + + +# De-Initialization +#-------------------------------------------------------------------------------------- +UnloadTexture(texture) # Unload texture +UnloadModel(model) # Unload model + +CloseWindow() # Close window and OpenGL context +#-------------------------------------------------------------------------------------- + diff --git a/test_dynamic.py b/test_dynamic.py index 2ea96a1..b02d7aa 100644 --- a/test_dynamic.py +++ b/test_dynamic.py @@ -20,7 +20,7 @@ mesh = rl.GenMeshHeightmap(image, [ 16, 8, 16 ]) model = rl.LoadModelFromMesh(mesh) print(model.materials) # SHOULD BE A pointer to a 'struct Material' but some is NULL pointer to 'Material' ? -model.materials[0].maps[rl.MAP_DIFFUSE].texture = texture +model.materials.maps[rl.MAP_DIFFUSE].texture = texture mapPosition = ( -8.0, 0.0, -8.0 ) rl.UnloadImage(image) diff --git a/test_static.py b/test_static.py index 6a35440..5f8072e 100644 --- a/test_static.py +++ b/test_static.py @@ -24,7 +24,7 @@ print(model.materials) print(model.materialCount) print(model.materials[0].maps[rl.MAP_DIFFUSE]) -model.materials[0].maps[MAP_DIFFUSE].texture = texture # Set map diffuse texture +model.materials.maps[MAP_DIFFUSE].texture = texture # Set map diffuse texture print(model.materials[0].maps[rl.MAP_DIFFUSE].value)