View on GitHub

RayScale - Ray Tracer

Microservices based ray tracer designed to run in containers for scaled & batch operation

Job & Scene Definition Reference

Properties in blue colour are optional, otherwise they are mandatory

Items in italics are specific types/classes of object

Job Input

name:      Name of job to submit
width:     Width of image to render in pixels
height:    Height of image to render in pixels
maxDepth:  Maximum recursion depth when ray tracing (default: 4)
antiAlias: Enable anti-aliasing, removes jagged edges but slower (default: false)
scene:     Scene to render

Scene Definition

backgroundColour: Colour of background, used when ray misses all objects (default: black)
ambientLevel:     Level of ambient light, float typically: 0.0 ~ 0.3 (default: 0.1)
cameraFov:        Camera field of view, lower values "zoom in" (default: 30)
seed:             String used to init random number generator
cameraPos:        Camera position Point in world space
cameraLookAt:     Camera will be oriented and looking at this Point in world space
lights:           Array of Light in the scene
objects:          Array of Object in the scene

Colour Definition

[r, b, g]   Array (tuple) of red, green & blue values. Integers in the range 0 ~ 255

Point Definition

[x, y, z]   Array (tuple) of X, Y & Z co-ordinate values, representing a point in world space.

Rotation Definition

[x, y, z]   Array (tuple) of X, Y & Z rotation values, representing a rotation in 3D space around each axis. Values are in degrees.

Material Definition

Texture Definition