Add existing file
This commit is contained in:
parent
f770ca0981
commit
3b62f9f7a4
2 changed files with 500 additions and 0 deletions
70
examples/shaders/raymarching/main.go
Normal file
70
examples/shaders/raymarching/main.go
Normal file
|
@ -0,0 +1,70 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
rl "github.com/gen2brain/raylib-go/raylib"
|
||||
)
|
||||
|
||||
func main() {
|
||||
screenWidth := int32(1280)
|
||||
screenHeight := int32(720)
|
||||
|
||||
rl.SetConfigFlags(rl.FlagMsaa4xHint) // ENABLE 4X MSAA IF AVAILABLE
|
||||
|
||||
rl.InitWindow(screenWidth, screenHeight, "raylib [shaders] example - raymarching")
|
||||
|
||||
camera := rl.Camera{}
|
||||
camera.Position = rl.NewVector3(2.5, 2.5, 3.0)
|
||||
camera.Target = rl.NewVector3(0.0, 0.0, 0.7)
|
||||
camera.Up = rl.NewVector3(0.0, 1.0, 0.0)
|
||||
camera.Fovy = 65.0
|
||||
|
||||
shader := rl.LoadShader("", "raymarching.fs")
|
||||
|
||||
viewEyeLoc := rl.GetShaderLocation(shader, "viewEye")
|
||||
viewCenterLoc := rl.GetShaderLocation(shader, "viewCenter")
|
||||
runtTimeLoc := rl.GetShaderLocation(shader, "runTime")
|
||||
resolutionLoc := rl.GetShaderLocation(shader, "resolution")
|
||||
|
||||
resolution := []float32{float32(screenWidth), float32(screenHeight)}
|
||||
rl.SetShaderValue(shader, resolutionLoc, resolution, rl.ShaderUniformVec2)
|
||||
|
||||
runTimer := float32(0)
|
||||
|
||||
rl.DisableCursor()
|
||||
|
||||
rl.SetTargetFPS(60)
|
||||
|
||||
for !rl.WindowShouldClose() {
|
||||
rl.UpdateCamera(&camera, rl.CameraThirdPerson) // Update camera with free camera mode
|
||||
|
||||
camPos := []float32{camera.Position.X, camera.Position.Y, camera.Position.Z}
|
||||
camTarget := []float32{camera.Target.X, camera.Target.Y, camera.Target.Z}
|
||||
|
||||
deltaTime := rl.GetFrameTime()
|
||||
runTimer += deltaTime
|
||||
runTime := []float32{runTimer}
|
||||
|
||||
rl.SetShaderValue(shader, viewEyeLoc, camPos, rl.ShaderUniformVec3)
|
||||
rl.SetShaderValue(shader, viewCenterLoc, camTarget, rl.ShaderUniformVec3)
|
||||
rl.SetShaderValue(shader, runtTimeLoc, runTime, rl.ShaderUniformFloat)
|
||||
|
||||
rl.BeginDrawing()
|
||||
|
||||
rl.ClearBackground(rl.RayWhite)
|
||||
|
||||
rl.BeginShaderMode(shader)
|
||||
|
||||
rl.DrawRectangle(0, 0, int32(rl.GetScreenWidth()), int32(rl.GetScreenHeight()), rl.White)
|
||||
rl.EndShaderMode()
|
||||
|
||||
rl.DrawText("(c) Raymarching shader by Iñigo Quilez. MIT License.", screenWidth-280, screenHeight-20, 10, rl.Black)
|
||||
|
||||
rl.DrawFPS(10, 10)
|
||||
|
||||
rl.EndDrawing()
|
||||
}
|
||||
|
||||
rl.UnloadShader(shader) // Unload shader
|
||||
|
||||
rl.CloseWindow()
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue