void InitCamera() { var camera = Scene.CameraEditor.Value; var bounds = ObjectInSpace.SpaceBounds.CalculatedBoundingBox; var cameraLookTo = bounds.GetCenter(); double maxGararite = Math.Max(Math.Max(bounds.GetSize().X, bounds.GetSize().Y), bounds.GetSize().Z); double distance = maxGararite * 2; if (distance < 2) { distance = 2; } double cameraZoomFactor = 1; SphericalDirection cameraDirection = new SphericalDirection(-3.83, -.47); var cameraPosition = cameraLookTo - cameraDirection.GetVector() * distance * cameraZoomFactor; var center = cameraLookTo; Vector3 from = cameraPosition; Vector3 to = center; Degree fov = 65; camera.FieldOfView = fov; camera.NearClipPlane = Math.Max(distance / 10000, 0.01); camera.FarClipPlane = Math.Max(1000, distance * 2); camera.Transform = new Transform(from, Quaternion.LookAt((to - from).GetNormalize(), Vector3.ZAxis)); camera.FixedUp = Vector3.ZAxis; }
protected override void OnCreate() { base.OnCreate(); var scene = CreateScene(false); Component_Mesh mesh = ObjectOfPreview as Component_Mesh; if (mesh != null) { Component_MeshInSpace objInSpace = scene.CreateComponent <Component_MeshInSpace>(); objInSpace.Mesh = mesh; } scene.Enabled = true; SetCameraByBounds(scene.CalculateTotalBoundsOfObjectsInSpace()); if (mesh.EditorCameraTransform != null) { var tr = mesh.EditorCameraTransform; CameraInitialDistance = (tr.Position - CameraLookTo).Length(); CameraDirection = SphericalDirection.FromVector(CameraLookTo - tr.Position); } }
void InitCamera(double distanceScale = 1) { var camera = Scene.CameraEditor.Value; var bounds = Scene.CalculateTotalBoundsOfObjectsInSpace(); var cameraLookTo = bounds.GetCenter(); double maxGararite = Math.Max(Math.Max(bounds.GetSize().X, bounds.GetSize().Y), bounds.GetSize().Z); double distance = maxGararite * 2 * distanceScale; // 2.3; if (distance < 2) { distance = 2; } double cameraZoomFactor = 1; SphericalDirection cameraDirection = new SphericalDirection(-3.83, -.47); var cameraPosition = cameraLookTo - cameraDirection.GetVector() * distance * cameraZoomFactor; var center = cameraLookTo; // GetSceneCenter(); Vector3 from = cameraPosition; //center + cameraDirection.GetVector() * cameraDistance; Vector3 to = center; Degree fov = 65; // 75; //!!!! //camera.AspectRatio = (double)ViewportControl.Viewport.SizeInPixels.X / (double)ViewportControl.Viewport.SizeInPixels.Y; camera.FieldOfView = fov; camera.NearClipPlane = Math.Max(distance / 10000, 0.01); //.1; camera.FarClipPlane = Math.Max(1000, distance * 2); camera.Transform = new Transform(from, Quaternion.LookAt((to - from).GetNormalize(), Vector3.ZAxis)); camera.FixedUp = Vector3.ZAxis; }
protected override void OnLoad(EventArgs e) { base.OnLoad(e); if (Skybox != null) { var scene = CreateScene(false); CreateObject(); scene.Enabled = true; CameraDirection = new SphericalDirection(0, 0); } }
protected override void Update() { var scene = CreateScene(false); if (Skybox != null) { var instanceInScene = (Component_Skybox)Skybox.Clone(); Scene.AddComponent(instanceInScene); CameraDirection = new SphericalDirection(0, 0); } scene.Enabled = true; }
// protected override void OnCreate() { base.OnCreate(); CreateScene(false); UpdateDisplayObject(); Scene.Enabled = true; SetCameraByBounds(Scene.CalculateTotalBoundsOfObjectsInSpace()); var import = ObjectOfPreview as Component_Import3D; var mesh = import?.GetComponent("Mesh") as Component_Mesh; if (mesh != null && mesh.EditorCameraTransform != null) { var tr = mesh.EditorCameraTransform; CameraInitialDistance = (tr.Position - CameraLookTo).Length(); CameraDirection = SphericalDirection.FromVector(CameraLookTo - tr.Position); } }
protected override void Update() { CreateScene(false); var import = ObjectOfPreview as Component_Import3D; if (import != null) { import.CreateForPreviewDisplay(Scene, out _, out _); } Scene.Enabled = true; SetCameraByBounds(Scene.CalculateTotalBoundsOfObjectsInSpace(), 2.6); // 1.7 ); var mesh = import.GetComponent("Mesh") as Component_Mesh; if (mesh != null && mesh.EditorCameraTransform != null) { var tr = mesh.EditorCameraTransform; CameraDistance = (tr.Position - CameraLookTo).Length(); CameraDirection = SphericalDirection.FromVector(CameraLookTo - tr.Position); } }