An open API service indexing awesome lists of open source software.

https://github.com/oaklight/rayerson

A CPU-based Ray-tracer using Golang
https://github.com/oaklight/rayerson

golang ray-tracing

Last synced: about 1 year ago
JSON representation

A CPU-based Ray-tracer using Golang

Awesome Lists containing this project

README

          

# Rayerson
A Golang implementation of ray tracing rendering engine

![img](assets/outComplex-1560580365410.png)

## How to run the code

```
# compile render
go build render.go

# run with a scene file and designate the output image path
# render [-p[=nThread]]
render -p test/sceneSimple.csv outSimple.png
```

## Dataset and result

All three datasets are in `./test/` folder, corresponding results are in the same folder.

You may modify the code in function `RandomScene` in `./render/scene.go` to generate randomly placed sphere with varying materials.

A report on Rayerson is included [here](Rayerson_a_CPU-based_ray_tracing_engine.pdf).

## Dependencies

All dependencies are standard libraries:

- math
- math/rand
- fmt
- image
- image/color
- image/png
- sync
- os
- time
- bufio
- strconv
- runtime
- strings