SynopsisSome problems came up with the reflection node in SLIM, the shading normal connection wasn't doing anything and I needed to modify it for some watery reflection, so had to roll my own in a SLBOX.
normal Nf = faceforward (N, I); vector V = -normalize (I); point p = transform("object", P); normal n = transform("object", N + point "object" (0,0,0)); p += normalize(n) * b * amplitude; p = transform("object", "current", p); n = calculatenormal(p); vector D = reflect(normalize(I), normalize(n)); D = vtransform("current", "world", D); result = Kr * color environment(v8, D) * v9 * v10;
- float b is a fractal noise used to modify the normal.
- color v8 is an environment texture, remember to convert using environment setting.
- color v9 and v10 are just some more noise and/or fresnel functions.