private void Form1_Load(object sender, EventArgs e) { elementHost = new ElementHost { Dock = DockStyle.Fill }; panel1.Controls.Add(elementHost); viewport3DX = new HelixToolkit.Wpf.SharpDX.Viewport3DX( ); elementHost.Child = viewport3DX; var b1 = new MeshBuilder(); b1.AddSphere(new Vector3(0, 0, 0), 0.5); b1.AddBox(new Vector3(0, 0, 0), 1, 0.5, 2, BoxFaces.All); MeshGeometry3D model = b1.ToMeshGeometry3D(); MeshGeometryModel3D test = new MeshGeometryModel3D { Material = PhongMaterials.Gold, Geometry = model }; var ambientLight = new AmbientLight3D { Color = new Color4(0.1f, 0.1f, 0.1f, 1.0f) }; var directionalLight = new DirectionalLight3D { Color = SharpDX.Color.White, Direction = new Vector3(-2, -5, -2) }; viewport3DX.Items.Add(ambientLight); viewport3DX.Items.Add(directionalLight); //test.Attach( viewport3DX ); viewport3DX.Items.Add(test); }
public void InitViewport() { Viewport.Items.Clear(); var model = new AmbientLight3D { Color = new Color4(1, 1, 1, 1) }; if (Viewport.RenderHost != null && Viewport.RenderHost.RenderTechnique != null) { model.Attach(Viewport.RenderHost); } Viewport.Items.Add(model); var model2 = new DirectionalLight3D { Direction = new Vector3(1, 1, 1) }; if (Viewport.RenderHost != null && Viewport.RenderHost.RenderTechnique != null) { model2.Attach(Viewport.RenderHost); } Viewport.Items.Add(model2); var model3 = new DirectionalLight3D { Direction = new Vector3(-1, -1, -1) }; if (Viewport.RenderHost != null && Viewport.RenderHost.RenderTechnique != null) { model3.Attach(Viewport.RenderHost); } Viewport.Items.Add(model3); }
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); }
/// <summary> /// Initialize the Helix with these values. These values should be attached before the /// visualization starts. Deleting them and attaching them does not make any effect on helix. /// So they are initialized before the process starts. /// </summary> private void InitializeHelix() { if (Model3DDictionary == null) { throw new Exception("Helix could not be initialized."); } directionalLight = new DirectionalLight3D { Color = directionalLightColor, Direction = directionalLightDirection, Name = DefaultLightName }; if (!Model3DDictionary.ContainsKey(DefaultLightName)) { Model3DDictionary.Add(DefaultLightName, directionalLight); } var gridModel3D = new DynamoLineGeometryModel3D { Geometry = Grid, Transform = Model1Transform, Color = Color.White, Thickness = 0.3, IsHitTestVisible = false, Name = DefaultGridName }; if (!Model3DDictionary.ContainsKey(DefaultGridName)) { Model3DDictionary.Add(DefaultGridName, gridModel3D); } var axesModel3D = new DynamoLineGeometryModel3D { Geometry = Axes, Transform = Model1Transform, Color = Color.White, Thickness = 0.3, IsHitTestVisible = false, Name = DefaultAxesName }; if (!Model3DDictionary.ContainsKey(DefaultAxesName)) { Model3DDictionary.Add(DefaultAxesName, axesModel3D); } AttachAllGeometryModel3DToRenderHost(); }
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); }
/// <summary> /// Initialize the Helix with these values. These values should be attached before the /// visualization starts. Deleting them and attaching them does not make any effect on helix. /// So they are initialized before the process starts. /// </summary> private void InitializeHelix() { directionalLight = new DirectionalLight3D { Color = directionalLightColor, Direction = directionalLightDirection }; if (model3DDictionary != null && !model3DDictionary.ContainsKey("DirectionalLight")) { model3DDictionary.Add("DirectionalLight", directionalLight); } LineGeometryModel3D gridModel3D = new LineGeometryModel3D { Geometry = Grid, Transform = Model1Transform, Color = SharpDX.Color.White, Thickness = 0.3, IsHitTestVisible = false }; if (model3DDictionary != null && !model3DDictionary.ContainsKey("Grid")) { model3DDictionary.Add("Grid", gridModel3D); } LineGeometryModel3D axesModel3D = new LineGeometryModel3D { Geometry = Axes, Transform = Model1Transform, Color = SharpDX.Color.White, Thickness = 0.3, IsHitTestVisible = false }; if (model3DDictionary != null && !model3DDictionary.ContainsKey("Axes")) { model3DDictionary.Add("Axes", axesModel3D); } }
public static void AddView(Viewport3DX view) { _view = view; _view.Camera = new HelixToolkit.Wpf.SharpDX.OrthographicCamera() { LookDirection = new System.Windows.Media.Media3D.Vector3D(0, -7, -10), Position = new System.Windows.Media.Media3D.Point3D(10, 5, 0), Width = 50, UpDirection = new System.Windows.Media.Media3D.Vector3D(0, 100, 0), FarPlaneDistance = 5000, NearPlaneDistance = -10f }; DirectionalLight3D directionalLight3D = new DirectionalLight3D(); directionalLight3D.Direction = view.Camera.LookDirection; directionalLight3D.Color = Color.FromRgb(214, 214, 214); _view.Items.Add(directionalLight3D); view.EffectsManager = new DefaultEffectsManager(); }