SHOW:
|
|
- or go back to the newest paste.
1 | let average (n : int, f : int -> V4d) = | |
2 | - | vertex { |
2 | + | let mutable result = V4d.Zero |
3 | - | let arr = FixedSizeArray<_10, float>() |
3 | + | for i in 0..n-1 do |
4 | result <- result + f i | |
5 | - | let factor = 2.0 |
5 | + | result / (float n) |
6 | - | arr.[0] <- 0.5 |
6 | + | |
7 | - | let newArr = arr |> Fixed.map (fun a -> factor * a) |
7 | + | |
8 | - | let test = newArr.[0] |
8 | + | vertex { |
9 | let pos = average(10, fun i -> v.pos) | |
10 | - | let f = fun (m : M44d) -> (m * pos) * test |
10 | + | |
11 | let arr = FixedSizeArray<_10, float>() | |
12 | - | let wp = f uniform.ModelTrafo |
12 | + | |
13 | let factor = 2.0 | |
14 | - | return { v with pos = uniform.ViewProjTrafo * wp |
14 | + | arr.[0] <- 0.5 |
15 | - | world = wp |
15 | + | let newArr = arr |> Fixed.map (fun a -> factor * a) |
16 | - | n = uniform.NormalMatrix * v.n } |
16 | + | let test = newArr.[0] |
17 | ||
18 | - | } |
18 | + | let f = fun (m : M44d) -> (m * pos) * test |
19 | ||
20 | let wp = f uniform.ModelTrafo | |
21 | ||
22 | return { v with pos = uniform.ViewProjTrafo * wp | |
23 | world = wp | |
24 | n = uniform.NormalMatrix * v.n } | |
25 | ||
26 | } |