No description
  • Go 99.1%
  • Just 0.9%
Find a file
Luke Mattfeld 5491c12dd4
Merge pull request #4 from Solidsilver/feat/fastmath
Added ability to switch on "fast math" approximations for intensive trigonometric operations at the cost of a lack of accuracy
Added dedicated "movie" renderer for creating videos from camera motion
Improved live camera movement
Improved live rendering techniques
Added options system to centralize turning on and off parts of the renderer.
2025-04-04 16:15:54 -07:00
.vscode updated go version 2023-12-15 14:04:14 -08:00
assets cleaned up, added README 2023-06-09 13:16:28 -07:00
cmd cleaned up profs, updated gitignore 2024-08-20 20:38:25 -07:00
pkg cleaned up a few things 2025-04-04 16:04:01 -07:00
.gitignore cleaned up profs, updated gitignore 2024-08-20 20:38:25 -07:00
go.mod added fast version of dist 2024-02-14 15:07:41 -08:00
go.sum updated go version 2023-12-15 14:04:14 -08:00
justfile updated go version 2023-12-15 14:04:14 -08:00
README.md cleaned up, added README 2023-06-09 13:16:28 -07:00

go-ray-march

This is a multi-threaded ray marching renderer written in Golang that allows for the creation of a scene (including lighting, basic shapes and a MandleBulb) and rendering to an image file on disk.

Sample Image

Features

  • Multi-threaded rendering
  • Different shapes (Sphere, Cube, MandleBulb)
  • Lighting
  • Image export

Future Goals

  • Add more advanced shading/lighting & reflections
  • Add scene builder outside of renderer code
  • Add ability to create videos
  • Real-time rendering preview window
  • Basic GUI

Requirements

  • Golang

Installation

  1. Clone the repository
git clone https://github.com/Solidsilver/go-ray-march.git
  1. Build the project (make sure Go is installed)
go build -o go-ray-march ./cmd/image_render/image_render.go

Usage

You may run the standalone executible, or import into your own package.

To run a basic render,:

go run ./cmd/image_render/image_render.go

To use go-ray-march in your own project, simply import the renderer package and use the features provided. Example usage can be found at the end of the renderer/renderer.go file.

Contributing

  1. Fork the repository
  2. Create a new branch with a meaningful name (git checkout -b new-feature)
  3. Commit your changes (git commit -am 'Adding a new feature')
  4. Push to the branch (git push origin new-feature)
  5. Create a Pull Request

License

MIT License © Solidsilver