private void LoadExportedScene(string fileName) { // Now read the exported file and show in the right Viewport3D Model3D readModel3D; try { // With uncommenting the following few lines we would use Ab3d.ReaderObj from Ab3d.PowerToys to read obj files instead of Assimp //if (fileName.EndsWith(".obj", ignoreCase: true, culture: CultureInfo.InvariantCulture)) //{ // var readerObj = new Ab3d.ReaderObj(); // readModel3D = readerObj.ReadModel3D(fileName); //} //else //{ var assimpWpfImporter = new AssimpWpfImporter(); readModel3D = assimpWpfImporter.ReadModel3D(fileName); //} } catch (Exception ex) { MessageBox.Show("Error reading file:\r\n" + ex.Message); return; } var modelVisual3D = new ModelVisual3D(); modelVisual3D.Content = readModel3D; MainViewport2.Children.Clear(); MainViewport2.Children.Add(modelVisual3D); // Set Camera2 from Camera1 Camera2.TargetPosition = Camera1.TargetPosition; Camera2.Heading = Camera1.Heading; Camera2.Attitude = Camera1.Attitude; Camera2.Distance = Camera1.Distance; Camera2.Refresh(); // This will regenerate light that was cleared with MainViewport2.Children.Clear() ExportedSceneTitleTextBlock.Text = "Scene imported from " + fileName; }