Added randomRange, improve AA

master
Rostyslav Hnatyshyn 2 years ago
parent 07cde95341
commit 581af5c50f
  1. 4
      src/Maths.hs
  2. 4
      src/Ray.hs

@ -4,6 +4,7 @@ module Maths
unitVector,
randV3,
rand,
randRange,
reflect,
refract,
reflectance,
@ -19,6 +20,9 @@ import System.Random
rand :: (RandomGen g) => Rand g Double
rand = getRandomR (-1.0, 1.0 :: Double)
randRange :: (RandomGen g) => Double -> Double -> Rand g Double
randRange a b = getRandomR (a, b :: Double)
randV3 :: (RandomGen g) => Rand g (V3 Double)
randV3 = do
x <- rand

@ -25,8 +25,8 @@ calculateRayNormal r t = unitVector (rayAt r t ^-^ V3 0.0 0.0 1.0)
buildRayAA :: (RandomGen g) => Double -> Double -> Double -> Double -> Camera -> Rand g Ray
buildRayAA u v w h camera = do
ur <- rand
vr <- rand
ur <- randRange 0 1
vr <- randRange 0 1
return $ buildRay ((u + ur) / w) ((v + vr) / h) camera
buildRay :: Double -> Double -> Camera -> Ray

Loading…
Cancel
Save