static void Main() { int w = 622; int h = 381; Canvas canvas = new Canvas(w, h); CancellationTokenSource source = new CancellationTokenSource(); try { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); var form = new MainForm(canvas); SceneData scene = new SceneData(); CacheData cacheData = new CacheData(scene); // new Vec(-20, 5, 18); var camera = new PerspectiveCamera(new Vector(-22, 5, 25), new Vector(-3, 4, 0)); //var camera = new OrtogonalCamera(new Vector(-22+10, 5+4, 25-10), new Vector(-3+10, 4+4, 0-10)); List <Tracer> tracers = new List <Tracer>(); for (int i = 0; i < 3; i++) { var rayMarchings = new List <IRayMarching>() { //new RayMarchingScene(scene, 0.02f), //new RayMarchingScene(scene, 0.04f), //new RayMarchingScene(scene, 0.08f), new RayMarchingCache(scene, cacheData, 0.02f), new RayMarchingCache(scene, cacheData, 0.04f), new RayMarchingCache(scene, cacheData, 0.08f), }; tracers.Add(new Tracer(canvas, camera, rayMarchings, scene.lights, i)); } AsyncRun(form, cacheData, tracers, source.Token); Application.Run(form); } finally { source.Cancel(); } }
public CacheData(SceneData scene) { this.scene = scene; }