public LensRayTransferFunction.Parameters ConvertBackSurfaceRayToParameters(Ray ray) { Vector3d canonicalNormal = Vector3d.UnitZ; double surfaceSinTheta = backSurfaceSinTheta; Sphere sphericalSurface = backSphericalSurface; ElementSurface surface = ElementSurfaces.First(); return(ConvertSurfaceRayToParameters(ray, canonicalNormal, surfaceSinTheta, sphericalSurface, surface)); }
/// <summary> /// /// </summary> /// <param name="sample">Sample in parametric UV space [0; 1]^2</param> /// <param name="direction">Direction relative to local frame on the /// surface point in normalized spherical coordinates [0; 1]^2, similar /// to Sampler.UniformSampleSphere(). /// X = theta ... elevation (from plane to normal) /// Y = phi ... azimuth</param> /// <returns></returns> public Ray ConvertParametersToBackSurfaceRay( LensRayTransferFunction.Parameters parameters) { Vector3d canonicalNormal = Vector3d.UnitZ; double surfaceSinTheta = backSurfaceSinTheta; Sphere sphericalSurface = backSphericalSurface; ElementSurface surface = ElementSurfaces.First(); return(ConvertParametersToSurfaceRay(parameters, canonicalNormal, surfaceSinTheta, sphericalSurface, surface)); }