packages feed

crocodile-0.1.2: app/src/RussianRoulette.hs

-- Shared module for russian roulette across path tracer and photon mapper

module RussianRoulette where

import Material
import Colour

data RussianRouletteChoice = DiffuseReflect | SpecularReflect | Absorb deriving Eq

-- Compute russian roulette coefficients
russianRouletteCoefficients :: Material -> (Double, Double)
russianRouletteCoefficients mat = (diffuseP, specularP)
    where
      diffuseP = (magnitude . Material.diffuse) mat
      specularP = (magnitude . Material.specular) mat