示例#1
0
        public override void Render(Scene scene)
        {
            if (RenderTechniquePyramid)
            {
                techPyramidRaw = new TechPyramid(scene.FrameBuffer.Width, scene.FrameBuffer.Height,
                                                 minDepth: 1, maxDepth: MaxDepth, merges: true);
                techPyramidWeighted = new TechPyramid(scene.FrameBuffer.Width, scene.FrameBuffer.Height,
                                                      minDepth: 1, maxDepth: MaxDepth, merges: true);
            }

            if (EnableConnections || NumLightPaths == 0)
            {
                // Classic Bidir requires exactly one light path for every camera path.
                NumLightPaths = scene.FrameBuffer.Width * scene.FrameBuffer.Height;
            }

            InitializeRadius(scene);

            base.Render(scene);

            // Store the technique pyramids
            if (RenderTechniquePyramid)
            {
                string pathRaw = Path.Join(scene.FrameBuffer.Basename, "techs-raw");
                techPyramidRaw.WriteToFiles(pathRaw);

                string pathWeighted = Path.Join(scene.FrameBuffer.Basename, "techs-weighted");
                techPyramidWeighted.WriteToFiles(pathWeighted);
            }
        }
示例#2
0
        public override void Render(Scene scene)
        {
            if (RenderTechniquePyramid)
            {
                techPyramidRaw = new TechPyramid(scene.FrameBuffer.Width, scene.FrameBuffer.Height,
                                                 minDepth: 1, maxDepth: MaxDepth, merges: false);
                techPyramidWeighted = new TechPyramid(scene.FrameBuffer.Width, scene.FrameBuffer.Height,
                                                      minDepth: 1, maxDepth: MaxDepth, merges: false);
            }

            // Classic Bidir requires exactly one light path for every camera path.
            NumLightPaths = scene.FrameBuffer.Width * scene.FrameBuffer.Height;

            base.Render(scene);

            // Store the technique pyramids
            if (RenderTechniquePyramid)
            {
                string pathRaw = System.IO.Path.Join(scene.FrameBuffer.Basename, "techs-raw");
                techPyramidRaw.WriteToFiles(pathRaw);

                string pathWeighted = System.IO.Path.Join(scene.FrameBuffer.Basename, "techs-weighted");
                techPyramidWeighted.WriteToFiles(pathWeighted);
            }
        }
示例#3
0
        public override void Render(Scene scene)
        {
            if (RenderTechniquePyramid)
            {
                techPyramidRaw = new TechPyramid(scene.FrameBuffer.Width, scene.FrameBuffer.Height,
                                                 minDepth: 1, maxDepth: MaxDepth, merges: false);
                techPyramidWeighted = new TechPyramid(scene.FrameBuffer.Width, scene.FrameBuffer.Height,
                                                      minDepth: 1, maxDepth: MaxDepth, merges: false);
            }

            base.Render(scene);

            if (RenderTechniquePyramid)
            {
                techPyramidRaw.WriteToFiles(Path.Join(scene.FrameBuffer.Basename, "techs-raw"));
                techPyramidWeighted.WriteToFiles(Path.Join(scene.FrameBuffer.Basename, "techs-weighted"));
            }
        }