diff options
| author | raysan5 <raysan5@gmail.com> | 2015-05-04 23:46:31 +0200 |
|---|---|---|
| committer | raysan5 <raysan5@gmail.com> | 2015-05-04 23:46:31 +0200 |
| commit | eae98e1c34512579d69966c99713bd0c45bfcb50 (patch) | |
| tree | 86b224238a9a017d45e5267b59f755b1c6dfbd1a /examples/models_custom_shader.c | |
| parent | ba257b09f55f240ec48200383fe49ca4bf3e1cab (diff) | |
| download | raylib-eae98e1c34512579d69966c99713bd0c45bfcb50.tar.gz raylib-eae98e1c34512579d69966c99713bd0c45bfcb50.zip | |
Big batch of changes, check description:
- Camera system moved to a separate module [camera.c]
- WIP: Added customization functions for camera controls
- Added custom shaders support on batch drawing
- Complete redesign of textures module to support multiple texture
formats (compressed and uncompressed)
Diffstat (limited to 'examples/models_custom_shader.c')
| -rw-r--r-- | examples/models_custom_shader.c | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/examples/models_custom_shader.c b/examples/models_custom_shader.c new file mode 100644 index 00000000..5430ed65 --- /dev/null +++ b/examples/models_custom_shader.c @@ -0,0 +1,86 @@ +/******************************************************************************************* +* +* raylib [models] example - Load and draw a 3d model (OBJ) +* +* This example has been created using raylib 1.0 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2014 Ramon Santamaria (Ray San - raysan@raysanweb.com) +* +********************************************************************************************/ + +#include "raylib.h" + +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + int screenWidth = 1280; + int screenHeight = 720; + + InitWindow(screenWidth, screenHeight, "raylib [models] example - custom shader"); + + // Define the camera to look into our 3d world + Camera camera = {{ 10.0, 8.0, 10.0 }, { 0.0, 0.0, 0.0 }, { 0.0, 1.0, 0.0 }}; + + Texture2D texture = LoadTexture("resources/catsham.png"); // Load model texture + Shader shader = LoadShader("resources/shaders/custom.vs", "resources/shaders/custom.fs"); + //Shader poste = LoadShader("resources/shaders/custom.vs", "resources/shaders/pixel.fs"); + + Model cat = LoadModel("resources/cat.obj"); // Load OBJ model + + SetModelTexture(&cat, texture); // Bind texture to model + //SetModelShader(&cat, poste); + + Vector3 catPosition = { 0.0, 0.0, 0.0 }; // Set model position + + SetPostproShader(shader); + + 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 + //---------------------------------------------------------------------------------- + if (IsKeyDown(KEY_LEFT)) catPosition.x -= 0.2; + if (IsKeyDown(KEY_RIGHT)) catPosition.x += 0.2; + if (IsKeyDown(KEY_UP)) catPosition.z -= 0.2; + if (IsKeyDown(KEY_DOWN)) catPosition.z += 0.2; + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + Begin3dMode(camera); + + DrawModel(cat, catPosition, 0.1f, WHITE); // Draw 3d model with texture + + DrawGrid(10.0, 1.0); // Draw a grid + + DrawGizmo(catPosition); // Draw gizmo + + End3dMode(); + + DrawFPS(10, 10); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadTexture(texture); // Unload texture + UnloadModel(cat); // Unload model + UnloadShader(shader); + //UnloadShader(poste); + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +}
\ No newline at end of file |
