/// <summary> /// /// </summary> /// <param name="control"></param> public override void Load(Control control) { base.Load(control); camera = new PerspectiveCamera(60, control.Width / (float)control.Height, 0.1f, 1000000.0f); this.camera.Position.Z = 0.2f; controls = new TrackballControls(control, camera); controls.RotateSpeed = 5.0f; controls.ZoomSpeed = 5; controls.PanSpeed = 2; controls.NoZoom = false; controls.NoPan = false; controls.StaticMoving = true; controls.DynamicDampingFactor = 0.3f; scene = new Scene(); scene.Add(camera); // light var dirLight = new DirectionalLight(Color.White); dirLight.Position = new Vector3(200, 200, 1000).Normalize(); camera.Add(dirLight); camera.Add(dirLight.target); var material = new MeshLambertMaterial() { Color = Color.White, Side = ThreeCs.Three.DoubleSide }; // Link in the loader var loader = new VTKLoader(); loader.Loaded += (o, args) => { args.BufferGeometry.ComputeVertexNormals(); var mesh = new Mesh(args.BufferGeometry, material); mesh.Position.Y = -0.09f; scene.Add(mesh); }; loader.Load(@"examples\models/vtk/bunny.vtk"); }
/// <summary> /// /// </summary> /// <param name="control"></param> public override void Load(Control control) { base.Load(control); camera = new PerspectiveCamera(70, control.Width / (float)control.Height, 1, 10000); camera.Position.Z = 1000; controls = new TrackballControls(control, camera); controls.RotateSpeed = 1.0f; controls.ZoomSpeed = 1.2f; controls.PanSpeed = 0.8f; controls.NoZoom = false; controls.NoPan = false; controls.StaticMoving = true; controls.DynamicDampingFactor = 0.3f; scene = new Scene(); scene.Add(new AmbientLight((Color)colorConvertor.ConvertFromString("#505050"))); var light = new SpotLight(Color.White, 1.5f); light.Position = new Vector3(0, 500, 2000); light.CastShadow = true; light.shadowCameraNear = 200; light.shadowCameraFar = camera.Far; light.shadowCameraFov = 50; light.shadowBias = -0.00022f; light.shadowDarkness = 0.5f; light.shadowMapWidth = 2048; light.shadowMapHeight = 2048; scene.Add(light); var geometry = new BoxGeometry(40, 40, 40); for (var i = 0; i < 200; i++) { var object3D = new Mesh(geometry, new MeshLambertMaterial() { Color = new Color().Random() }); ((MeshLambertMaterial)object3D.Material).Ambient = ((MeshLambertMaterial)object3D.Material).Color; object3D.Position.X = Mat.Random() * 1000 - 500; object3D.Position.Y = Mat.Random() * 600 - 300; object3D.Position.Z = Mat.Random() * 800 - 400; object3D.Rotation.X = (float)(Mat.Random() * 2 * Math.PI); object3D.Rotation.Y = (float)(Mat.Random() * 2 * Math.PI); object3D.Rotation.Z = (float)(Mat.Random() * 2 * Math.PI); object3D.Scale.X = Mat.Random() * 2 + 1; object3D.Scale.Y = Mat.Random() * 2 + 1; object3D.Scale.Z = Mat.Random() * 2 + 1; object3D.CastShadow = true; object3D.ReceiveShadow = true; scene.Add(object3D); object3Ds.Add(object3D); } plane = new Mesh( new PlaneGeometry(2000, 2000, 8, 8), new MeshBasicMaterial() { Color = Color.Black, Opacity = 0.25f, Transparent = true } ); plane.Visible = true; // scene.Add(plane); renderer.SetClearColor((Color)colorConvertor.ConvertFromString("#F0F0F0")); renderer.SortObjects = false; renderer.shadowMapEnabled = true; renderer.shadowMapType = Three.PCFShadowMap; }