Exemple #1
0
        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));
        }
Exemple #2
0
        /// <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));
        }