Skip to content

QuintonQu/Mimosa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mimosa

Quinton's Ray Tracer with Metal

Introduction

This is an exercise project for writing ray tracing in Metal shader. The project is based on sample code Accelerating ray tracing using Metal from Apple. The code is written in Objective-C++ and Metal Shading Language. Hopefully, I will add Metal-CPP support to this project in the future.

App Viewer

The app viewer is written in Swift. It is a simple app that can load a scene and render it. You can simply choose different scenes and path tracing algorithms.

Here's a little video to help you learn how to operate the app.

Features

Geometry

  • OpenVDB
  • Obj file loader
  • Sphere
  • (One side) Triangle
  • (One side) Cube / Plane with triangle

Material

  • Blinn-phong
  • Phong
  • Diffuse
  • Metallic
  • Dielectric

Light

  • Point light
  • Important Sampling Environment map
  • Sky box / Environment map
  • Area light (Mesh light)

Texture

  • Checker texture
  • Perlin noise
  • Texture mapping
  • Normal mapping
  • Displacement mapping

Path Tracer

  • Volumetric rendering
  • Multiple importance sampling
  • Naive Path tracer
  • Next event estimation

Other Functions

  • Moving Camera
  • IOS Deployment
  • Choosing different scene

References