示例#1
0
        public ImprovedTextBlockVisual3D()
        {
            InitializeComponent();

            var rnd = new Random();

            _randomIndexes = Enumerable.Range(0, 10).OrderBy(n => rnd.Next(100)).ToArray(); // randomize an array of 10 integers

            _wpfTestScene = new TestScene(WpfViewport3D, isInDXEngine: false);
            _wpfTestScene.CreatesTestScene(_randomIndexes);

            _dxTestScene = new TestScene(DXViewport3D, isInDXEngine: true);
            _dxTestScene.CreatesTestScene(_randomIndexes);

            var alphaClipThreshold = (AlphaClipCheckBox.IsChecked ?? false) ? UsedAlphaClipThreshold : 0f;

            _dxTestScene.SetDXEngineSettings(UseSolidColorEffectCheckBox.IsChecked ?? false, alphaClipThreshold);


            CopyWpfCamera(); // Copy settings from WpfCamera to DXCamera

            WpfCamera.StartRotation(20, 0);

            this.Unloaded += (sender, args) => MainDXViewportView.Dispose();
        }
示例#2
0
        private void OnDXEngineSettingsCheckedChanged(object sender, RoutedEventArgs e)
        {
            if (!this.IsLoaded)
            {
                return;
            }


            // When changing the value of UseSolidColorEffect and Texture_AlphaClipThreshold we need to recreate the 3D scene
            // because their value is only read when the DXEngine's material is created.
            _dxTestScene.TargetViewport3D.Children.Clear();

            _dxTestScene.CreatesTestScene(_randomIndexes);

            var alphaClipThreshold = (AlphaClipCheckBox.IsChecked ?? false) ? UsedAlphaClipThreshold : 0f;

            _dxTestScene.SetDXEngineSettings(UseSolidColorEffectCheckBox.IsChecked ?? false, alphaClipThreshold);

            if (MainDXViewportView.DXScene != null)
            {
                // Enable / disable highly efficient sorting by camera distance
                MainDXViewportView.DXScene.IsTransparencySortingEnabled = DXEngineSortByCameraDistanceEffectCheckBox.IsChecked ?? false;
            }
        }
示例#3
0
        public PerPixelRenderingSample()
        {
            InitializeComponent();

            // If possible use UltraQualityHardwareRendering settings (software rendering or WPF 3D will be used in case a hardware rendering cannot be used)
            // This will use supersampling and improve rendering quality.
            MainViewportView.GraphicsProfiles = new GraphicsProfile[] { GraphicsProfile.UltraQualityHardwareRendering,
                                                                        GraphicsProfile.HighQualitySoftwareRendering,
                                                                        GraphicsProfile.Wpf3D, };

            var dxTestScene = new TestScene(DXViewport3D);

            dxTestScene.CreatesTestScene();
            dxTestScene.StartAnimation();

            var wpfTestScene = new TestScene(WpfViewport3D);

            wpfTestScene.CreatesTestScene();
            wpfTestScene.StartAnimation();

            CopyWpfCamera(); // Copy settings from WpfCamera to DXCamera

            this.Unloaded += (sender, args) => MainViewportView.Dispose();
        }