Added randomRange, improve AA

This commit is contained in:
2022-09-24 19:16:07 -07:00
parent 07cde95341
commit 581af5c50f
2 changed files with 6 additions and 2 deletions
+4
View File
@@ -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
+2 -2
View File
@@ -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