|
| 1 | +from raylib.dynamic import raylib as rl, ffi |
| 2 | +from raylib.colors import * |
| 3 | + |
| 4 | +screenWidth = 1260 |
| 5 | +screenHeight = 768 |
| 6 | + |
| 7 | +rl.InitWindow(screenWidth, screenHeight, b'Skymap Demo') |
| 8 | + |
| 9 | +camera = ffi.new('struct Camera3D *', [[1, 1, 1], [4, 1, 4], [0, 1, 0], 70, 0]) |
| 10 | + |
| 11 | +cube = rl.GenMeshCube(100, 100, 100) |
| 12 | +skybox = rl.LoadModelFromMesh(cube) |
| 13 | + |
| 14 | +skybox.materials[0].shader = rl.LoadShader( |
| 15 | + b'resources/shaders/skybox.vs', |
| 16 | + b'resources/shaders/skybox.fs' |
| 17 | +) |
| 18 | + |
| 19 | +rl.SetShaderValue( |
| 20 | + skybox.materials[0].shader, |
| 21 | + rl.GetShaderLocation(skybox.materials[0].shader, b"environmentMap"), |
| 22 | + ffi.new('int[]', [rl.MAP_CUBEMAP]), |
| 23 | + rl.UNIFORM_INT |
| 24 | +) |
| 25 | + |
| 26 | +shdrCubemap = rl.LoadShader( |
| 27 | + b'resources/shaders/cubemap.vs', |
| 28 | + b'resources/shaders/cubemap.fs' |
| 29 | +) |
| 30 | + |
| 31 | +rl.SetShaderValue( |
| 32 | + shdrCubemap, |
| 33 | + rl.GetShaderLocation(shdrCubemap, b'equirectangularMap'), |
| 34 | + ffi.new('int[]', [0]), |
| 35 | + rl.UNIFORM_INT |
| 36 | +) |
| 37 | + |
| 38 | +texHDR = rl.LoadTexture(b'resources/dresden_square.hdr') |
| 39 | + |
| 40 | +skybox.materials[0].maps[rl.MAP_CUBEMAP].texture = rl.GenTextureCubemap(shdrCubemap, texHDR, 512); |
| 41 | + |
| 42 | +rl.UnloadTexture(texHDR) |
| 43 | +rl.UnloadShader(shdrCubemap) |
| 44 | + |
| 45 | +rl.SetCameraMode(camera[0], rl.CAMERA_FIRST_PERSON) |
| 46 | + |
| 47 | +rl.SetTargetFPS(60) |
| 48 | + |
| 49 | +while not rl.WindowShouldClose(): |
| 50 | + rl.UpdateCamera(camera) |
| 51 | + rl.BeginDrawing() |
| 52 | + rl.ClearBackground(RAYWHITE) |
| 53 | + rl.BeginMode3D(camera[0]) |
| 54 | + rl.DrawModel(skybox, [0, 0, 0], 1.0, WHITE) |
| 55 | + rl.DrawGrid(10, 1.0) |
| 56 | + for x in range(10): |
| 57 | + for y in range(10): |
| 58 | + rl.DrawCube([x * 2, 0, y * 2], 1, 1, 1, MAROON) |
| 59 | + rl.DrawCubeWires([x * 2, 0, y * 2], 1, 1, 1, RED) |
| 60 | + rl.EndMode3D() |
| 61 | + rl.DrawFPS(10, 10) |
| 62 | + rl.EndDrawing() |
| 63 | + |
| 64 | +rl.CloseWindow() |
| 65 | +rl.UnloadShader(skybox.materials[0].shader) |
| 66 | +rl.UnloadTexture(skybox.materials[0].maps[rl.MAP_CUBEMAP].texture) |
| 67 | +rl.UnloadModel(skybox) |
0 commit comments