markphelps / Go Trace
Licence: mit
Implementing a path tracer in Go
Stars: ✭ 77
Labels
Projects that are alternatives of or similar to Go Trace
Retrace.gl
Create, ray trace & export programatically defined Signed Distance Function CSG geometries with an API suited for generative art - in your browser! 🎉
Stars: ✭ 149 (+93.51%)
Mutual labels: graphics, path-tracer
Laravel Tracer
Shows the path of each blade file loaded in a template
Stars: ✭ 96 (+24.68%)
Mutual labels: path-tracer, trace
C Ray
C-Ray is a small, simple path tracer written in C
Stars: ✭ 323 (+319.48%)
Mutual labels: graphics, path-tracer
Yocto Gl
Yocto/GL: Tiny C++ Libraries for Data-Driven Physically-based Graphics
Stars: ✭ 1,391 (+1706.49%)
Mutual labels: graphics, path-tracer
Traceshark
This is a tool for Linux kernel ftrace and perf events visualization
Stars: ✭ 63 (-18.18%)
Mutual labels: trace
Retouch
🎬 An OpenGL application for editing and retouching images using depth-maps in 2.5D
Stars: ✭ 63 (-18.18%)
Mutual labels: graphics
Gotracer
A distributed Go implementation of Ray Tracing in One Weekend by Peter Shirley
Stars: ✭ 59 (-23.38%)
Mutual labels: graphics
3d Game Shaders For Beginners
🎮 A step-by-step guide to implementing SSAO, depth of field, lighting, normal mapping, and more for your 3D game.
Stars: ✭ 11,698 (+15092.21%)
Mutual labels: graphics
Indielib Crossplatform
IndieLib is a cross-platform Game Graphics engine. Main focus is OpenGL ES 2.0 for mobile iOS operating system, and OpenGL desktop. **NOT SUPPORTED ANYMORE**
Stars: ✭ 64 (-16.88%)
Mutual labels: graphics
Jaeger Client Ruby
OpenTracing Tracer implementation for Jaeger in Ruby
Stars: ✭ 59 (-23.38%)
Mutual labels: trace
Shaderconductor
ShaderConductor is a tool designed for cross-compiling HLSL to other shading languages
Stars: ✭ 1,146 (+1388.31%)
Mutual labels: graphics
Logbert
Logbert is an advanced log message viewer for log4net, log4j and others.
Stars: ✭ 70 (-9.09%)
Mutual labels: trace
go-trace
Implementing a Path Tracer so that I can teach myself the Go language.
Now with more concurrency! ✨
Following the E-book by Peter Shirley 'Ray Tracing in One Weekend', but in Go instead of C++.
I also wrote a series of posts chronicling the process on my blog.
Options
$ ./bin/go-trace -help
Usage of ./bin/go-trace:
-a value
camera aperture (default 0.010000)
-cpus value
number of CPUs to use (default 8)
-fov value
vertical field of view (degrees) (default 75.000000)
-h value
height of image (pixels) (default 500)
-n value
number of samples per pixel for AA (default 100)
-o value
output filename (default out.png)
-version
show version and exit
-w value
width of image (pixels) (default 600)
-x float
look from X (default 10)
-y float
look from Y (default 4)
-z float
look from Z (default 6)
Running
$ make
go build -o bin/go-trace github.com/markphelps/go-trace/cmd/go-trace
$ ./bin/go-trace
Rendering 600 x 500 pixel scene with 486 objects:
[4 cpus, 100 samples/pixel, 75.00° fov, 0.01 aperture]
[==========----------------------------------------------------------------------] 12.80%
Tests
$ make test
Output
The default output format is PNG and the default filename is out.png.
This can be changed by using the -o
flag as described in the help output.
Ex: $ ./bin/go-trace -o output.jpeg
Current supported file extensions:
- .png
- .jpg
- .jpeg
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].