From 581af5c50f8c91752e44ff8cdb49663e2059f35e Mon Sep 17 00:00:00 2001 From: Rostyslav Hnatyshyn Date: Sat, 24 Sep 2022 19:16:07 -0700 Subject: [PATCH] Added randomRange, improve AA --- src/Maths.hs | 4 ++++ src/Ray.hs | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Maths.hs b/src/Maths.hs index c295df5..941a032 100644 --- a/src/Maths.hs +++ b/src/Maths.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 diff --git a/src/Ray.hs b/src/Ray.hs index 28ed401..b38bfc0 100644 --- a/src/Ray.hs +++ b/src/Ray.hs @@ -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