示例#1
0
        /// <summary>
        /// Entry point - pass "verbose" as a command-line
        /// argument to initialize Embree in verbose mode.
        /// </summary>
        public static int Main(String[] args)
        {
            try
            {
                var verbose = (args.Length == 1 && args[0].ToLower() == "verbose");

                if (verbose)
                {
                    Console.WriteLine("Embree.NET Sample [VERBOSE]");
                    Console.WriteLine("===========================");
                    RTC.Register("verbose=999"); // max verbosity?
                }
                else
                {
                    Console.WriteLine("Embree.NET Sample");
                    Console.WriteLine("=================");
                }

                Console.WriteLine(""); // this is for debugging
                Console.WriteLine("[+] " + Bits + "-bit mode.");
                Console.WriteLine("[+] Building a test scene.");

                using (var renderer = new Renderer())
                {
                    var pixBuf = new PixelBuffer(1920, 1080);
                    Console.WriteLine("[+] Now rendering.");
                    renderer.Render(pixBuf); // benchmark?

                    Console.WriteLine("[+] Saving image to 'render.png'.");
                    pixBuf.SaveToFile("render.png"); // save to png format
                }

                if (verbose)
                {
                    RTC.Unregister();
                }

                return(EXIT_SUCCESS);
            }
            catch (Exception e)
            {
                var msg = e is AggregateException ? e.InnerException.Message : e.Message;
                Console.WriteLine(String.Format("[!] Error: {0}.", msg));
                Console.WriteLine("\n========= STACK TRACE =========\n");
                Console.WriteLine(e.StackTrace);
                return(EXIT_FAILURE);
            }
        }
示例#2
0
        /// <summary>
        /// Entry point - pass "verbose" as a command-line
        /// argument to initialize Embree in verbose mode.
        /// </summary>
        public static int Main(String[] args)
        {
            try
            {
                var verbose = (args.Select(s => s.ToLower()).Contains("verbose"));
                var flags   = ParseCommandLineArguments(args);

                if (verbose)
                {
                    Console.WriteLine("Embree.NET Sample [VERBOSE]");
                    Console.WriteLine("===========================");
                }
                else
                {
                    Console.WriteLine("Embree.NET Sample");
                    Console.WriteLine("=================");
                }
                Console.WriteLine(""); // this is for debugging
                Console.WriteLine("[+] " + Bits + "-bit mode.");
                Console.WriteLine("[+] Building a test scene.");
                using (Device device = new Device(verbose))
                {
                    using (var renderer = new Renderer(device))
                    {
                        if (flags.HasFlag(TraversalFlags.Single))
                        {
                            var pixBuf = new PixelBuffer(1920, 1080);
                            Console.WriteLine("[+] Now rendering single.");
                            renderer.Render(pixBuf, TraversalFlags.Single); // benchmark?
                            Console.WriteLine("[+] Saving image to 'render_single.png'.");
                            pixBuf.SaveToFile("render_single.png");         // save to png format
                        }
                        if (flags.HasFlag(TraversalFlags.Packet4))
                        {
                            var pixBuf = new PixelBuffer(1920, 1080);
                            Console.WriteLine("[+] Now rendering packet 4.");
                            renderer.Render(pixBuf, TraversalFlags.Packet4); // benchmark?
                            Console.WriteLine("[+] Saving image to 'render_packet4.png'.");
                            pixBuf.SaveToFile("render_packet4.png");         // save to png format
                        }
                        if (flags.HasFlag(TraversalFlags.Packet8))
                        {
                            var pixBuf = new PixelBuffer(1920, 1080);
                            Console.WriteLine("[+] Now rendering packet 8.");
                            renderer.Render(pixBuf, TraversalFlags.Packet8); // benchmark?
                            Console.WriteLine("[+] Saving image to 'render_packet8.png'.");
                            pixBuf.SaveToFile("render_packet8.png");         // save to png format
                        }
                    }
                }

                return(EXIT_SUCCESS);
            }
            catch (Exception e)
            {
                var msg = e is AggregateException ? e.InnerException.Message : e.Message;
                Console.WriteLine(String.Format("[!] Error: {0}.", msg));
                Console.WriteLine("\n========= STACK TRACE =========\n");
                Console.WriteLine(e.StackTrace);
                return(EXIT_FAILURE);
            }
        }