All Projects → markphelps → Go Trace

markphelps / Go Trace

Licence: mit
Implementing a path tracer in Go

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

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
Agi
Android GPU Inspector
Stars: ✭ 327 (+324.68%)
Mutual labels:  graphics, trace
Traceshark
This is a tool for Linux kernel ftrace and perf events visualization
Stars: ✭ 63 (-18.18%)
Mutual labels:  trace
Graphics Algorithm
3D图形学算法Code。包括软渲染、光线追踪、PBR等等~
Stars: ✭ 67 (-12.99%)
Mutual labels:  graphics
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
Gpcs4
A Playstation 4 emulator just begin
Stars: ✭ 1,186 (+1440.26%)
Mutual labels:  graphics
Fruity
Rusty bindings for Apple libraries
Stars: ✭ 72 (-6.49%)
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
Axis3d
Functional 3d graphics library
Stars: ✭ 67 (-12.99%)
Mutual labels:  graphics
Julia Logo Graphics
official versions of the Julia logo
Stars: ✭ 64 (-16.88%)
Mutual labels:  graphics
Dubbo Trace
基于Dubbo的分布式系统调用跟踪Demo
Stars: ✭ 72 (-6.49%)
Mutual labels:  trace
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
Pymesh
Geometry Processing Library for Python
Stars: ✭ 1,135 (+1374.03%)
Mutual labels:  graphics

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.

'Scene'

Software License Go Doc Go Report Card SayThanks.io

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].