Пример #1
0
        public void Close()
        {
            _sc.RemoveRenderTarget(_view);

            _sc.Stop();
            _sc.Dispose();

            _panel.Controls.Clear();
            _view.Dispose();

            _graphicsDevice.Dispose();

            _scene          = null;
            _sc             = null;
            _view           = null;
            _graphicsDevice = null;
        }
Пример #2
0
        public void Open(Environment environment, string path)
        {
            var options = new GraphicsDeviceOptions()
            {
                HasMainSwapchain     = false,
                ResourceBindingModel = ResourceBindingModel.Improved,
                SwapchainDepthFormat = PixelFormat.R32_Float,
            };

            //_graphicsDevice = GraphicsDevice.CreateVulkan(options);
            _graphicsDevice = GraphicsDevice.CreateD3D11(options);

            _view = new VeldridControl(_graphicsDevice, options)
            {
                Dock = DockStyle.Fill,
            };
            _panel.Controls.Add(_view);
            _panel.Controls.Add(_settingsPanel);

            _camera      = new RotationCamera(_view.Width, _view.Height);
            _view.Camera = _camera;

            _sc = new SceneContext(_graphicsDevice);
            _sc.AddRenderTarget(_view);

            _scene = new Scene();

            _mdl = MdlFile.FromFile(path);

            var(min, max) = GetBbox(_mdl, 0);
            _camera.SetBoundingBox(min, max);

            _renderable = new MdlRenderable(_mdl, Vector3.Zero);
            _scene.AddRenderable(_renderable);
            _sc.Scene = _scene;
            _sc.Start();

            _settingsPanel.SetModel(_mdl);
            _settingsPanel.BodyPartModelSelected += BodyPartSelected;
            _settingsPanel.SequenceSelected      += SequenceSelected;
        }
Пример #3
0
        public void Open(Environment environment, string path)
        {
            var options = new GraphicsDeviceOptions()
            {
                HasMainSwapchain     = false,
                ResourceBindingModel = ResourceBindingModel.Improved,
                SwapchainDepthFormat = PixelFormat.R32_Float,
            };

            //_graphicsDevice = GraphicsDevice.CreateVulkan(options);
            _graphicsDevice = GraphicsDevice.CreateD3D11(options);

            _view = new VeldridControl(_graphicsDevice, options)
            {
                Dock = DockStyle.Fill
            };
            _panel.Controls.Add(_view);

            _sc = new SceneContext(_graphicsDevice);
            _sc.AddRenderTarget(_view);

            _scene = new Scene();

            BspFile bsp;

            using (var stream = File.OpenRead(path))
            {
                bsp = new BspFile(stream);
            }

            _scene.AddRenderableSource(new BspRenderable(bsp, environment));

            LoadModels(bsp, environment);


            _sc.Scene = _scene;
            _sc.Start();
        }