Added randomRange, improve AA
This commit is contained in:
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user