izpi

module
v0.0.0-...-d35cbbc Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 20, 2024 License: CC0-1.0

README

Izpi

Unit Tests

A path tracer implemented in Golang built on top of Peter Shirley's Raytracing books.

Features

  • Rendering into a float64 image buffer.
  • Direct, indirect and image-based lighting.
  • Primitives: Spheres, boxes, rectangles and triangles.
  • Wavefront OBJ import.
  • Materials: Glass, metal, Lambert, Perlin noise.
  • Textures: PNG (LDR) and Radiance (HDR).
  • Normal mapping.
  • Displacement mapping through sub-texel mesh tessellation.

The Stanford dragon

The Stanford dragon in a Cornell box

A demonstration of the effect of displacement mapping on a surface using Bricks078 from ambientCG.com, licensed under CC0 1.0 Universal.

Displacement mapping in a Cornell box

Directories

Path Synopsis
cmd
pkg
aabb
Package aabb implements functions to work with axis-aligned bounding boxes.
Package aabb implements functions to work with axis-aligned bounding boxes.
camera
Package camera implements a set of functions to work with cameras.
Package camera implements a set of functions to work with cameras.
colour
Package colour implements a float64-based colour model.
Package colour implements a float64-based colour model.
colours
Package colours defines a few useful colours.
Package colours defines a few useful colours.
displacement
Package displacement implements functions to apply displacement maps to triangles and meshes.
Package displacement implements functions to apply displacement maps to triangles and meshes.
display
Package display implements an Fyne-backed preview window.
Package display implements an Fyne-backed preview window.
grid
Package grid implements functions to walk a 2D grid using various algorithms.
Package grid implements functions to walk a 2D grid using various algorithms.
hitable
Package hitable implements the methods used to compute intersections between a ray and geometry.
Package hitable implements the methods used to compute intersections between a ray and geometry.
hitabletarget
Package hitabletarget implements the methods used to extract PDF data from hitables.
Package hitabletarget implements the methods used to extract PDF data from hitables.
mat3
Package mat3 implements functions to work with 3x3 matrices.
Package mat3 implements functions to work with 3x3 matrices.
material
Package material implements the different materials and their properties.
Package material implements the different materials and their properties.
onb
Package onb implements methods to work with ortho-normal bases
Package onb implements methods to work with ortho-normal bases
output
Package output implements the file output functionality.
Package output implements the file output functionality.
pdf
Package pdf implements methods to work with probability density functions.
Package pdf implements methods to work with probability density functions.
perlin
Package perlin implements functions to generate Perlin noise.
Package perlin implements functions to generate Perlin noise.
postprocess
Package postprocess implements the postprocess pipeline.
Package postprocess implements the postprocess pipeline.
ray
Package ray implements the interface and methods to work with rays.
Package ray implements the interface and methods to work with rays.
render
Package render implements the main rendering loop.
Package render implements the main rendering loop.
sampler
Package sampler implements different types of samplers.
Package sampler implements different types of samplers.
scatterrecord
Package scatterrecord implements the scatter record.
Package scatterrecord implements the scatter record.
scene
Package scene implements structures and methods to work with scenes.
Package scene implements structures and methods to work with scenes.
scenes
Package scenes implements some sample scenes.
Package scenes implements some sample scenes.
serde
Package serde implements functions to serialise and deserialise scene data.
Package serde implements functions to serialise and deserialise scene data.
texture
Package texture implements different types of textures.
Package texture implements different types of textures.
vec3
Package vec3 provides utility functions to work with vectors.
Package vec3 provides utility functions to work with vectors.
wavefront
Package wavefront implements functions to parse Wavefront OBJ files and transform the data.
Package wavefront implements functions to parse Wavefront OBJ files and transform the data.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL