Exemplo n.º 1
0
        /// <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");
        }
Exemplo n.º 2
0
        /// <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;
        }