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(); }
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; } }
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(); }