public Watch3DxControl() { InitializeComponent(); // DataContext = this; // titles view1.Title = "Watch3DxNode"; view1.SubTitle = "SharpDX"; // camera setup view1.Camera = new PerspectiveCamera { Position = new Point3D(3, 3, 5), LookDirection = new Vector3D(-3, -3, -5), UpDirection = new Vector3D(0, 1, 0), FarPlaneDistance = 5000000 }; // default render technique view1.RenderTechniquesManager = new DefaultRenderTechniquesManager(); view1.RenderTechnique = view1.RenderTechniquesManager.RenderTechniques[DefaultRenderTechniqueNames.Phong]; view1.EffectsManager = new DefaultEffectsManager(view1.RenderTechniquesManager); // Setup lights var directionalLight3D = new DirectionalLight3D { Color = Color.White, Direction = new Vector3(-2, -5, -2) }; var ambientLight3D = new AmbientLight3D {Color = Color.White}; view1.Items.Add(ambientLight3D); view1.Items.Add(directionalLight3D); // Geometry var mb = new MeshBuilder(); mb.AddSphere(new Vector3(0, 0, 0), 0.5); mb.AddBox(new Vector3(0, 0, 0), 1, 0.5, 2, BoxFaces.All); var meshGeometry = mb.ToMeshGeometry3D(); var meshGeomModel = new MeshGeometryModel3D { Geometry = meshGeometry, Material = PhongMaterials.Red }; // Add the Model to the viewport view1.Items.Add(meshGeomModel); }
public void ResetCameraPosition(Rect3D boundingBox) { //var boneCollection = MainViewModel.ProjData.BoneCollection; // Point3D modelCenter = new Point3D(boundingBox.X + boundingBox.SizeX / 2.0, boundingBox.Y + boundingBox.SizeY / 2.0, boundingBox.Z + boundingBox.SizeZ / 2.0); //Point3D modelCenter = new Point3D(0,200,0); HelixToolkit.Wpf.SharpDX.OrthographicCamera orthoCam1 = Camera1 as HelixToolkit.Wpf.SharpDX.OrthographicCamera; if (orthoCam1 != null) { orthoCam1.Position = new Point3D(modelCenter.X, modelCenter.Y, modelCenter.Z + 1000 * boundingBox.Size.Z); orthoCam1.UpDirection = new Vector3D(0, 1, 0); orthoCam1.LookDirection = new Vector3D(0, 0, -1000 * boundingBox.Size.Z); orthoCam1.NearPlaneDistance = 0; orthoCam1.FarPlaneDistance = 1e15; orthoCam1.Width = 300; } hVp3D.Camera = orthoCam1; HelixToolkit.Wpf.SharpDX.AmbientLight3D Light1 = new HelixToolkit.Wpf.SharpDX.AmbientLight3D(); HelixToolkit.Wpf.SharpDX.DirectionalLight3D Light2 = new HelixToolkit.Wpf.SharpDX.DirectionalLight3D(); HelixToolkit.Wpf.SharpDX.DirectionalLight3D Light3 = new HelixToolkit.Wpf.SharpDX.DirectionalLight3D(); Light1.Color = new SharpDX.Color(0.4f, 0.4f, 0.4f); Light2.Color = new SharpDX.Color(0.6f, 0.6f, 0.6f); Light3.Color = new SharpDX.Color(0.5f, 0.5f, 0.5f); Light1.Direction = new Vector3(-10, -1000, -(float)boundingBox.Size.Z); Light2.Direction = new Vector3(1000, 0, -(float)boundingBox.Size.Z); Light3.Direction = new Vector3(-1000, -(float)boundingBox.Size.Y, 300); hVp3D.Items.Add(Light1); hVp3D.Items.Add(Light2); hVp3D.Items.Add(Light3); }
public void SetupLights() { // Setup lights var directionalLight3D = new DirectionalLight3D { Color = Color.White, Direction = new Vector3(-2, -5, -2) }; var ambientLight3D = new AmbientLight3D { Color = Color.White }; view1.Items.Add(ambientLight3D); view1.Items.Add(directionalLight3D); }