protected override Entity Create() { var root = base.Create(); spotMesh = new LightSpotMesh(GraphicsDevice); spotMesh.Build(GraphicsCommandList, LightSpot); spotMaterial = GizmoUniformColorMaterial.Create(GraphicsDevice, (Color) new Color4(GetLightColor(GraphicsDevice), 1f)); spotEntity = new Entity("Spot Mesh of {0}".ToFormat(root.Id)) { new ModelComponent { Model = new Model { spotMaterial, new Mesh { Draw = spotMesh.MeshDraw }, }, RenderGroup = RenderGroup, } }; return(root); }
protected override Entity Create() { debugRootEntity = new Entity($"Voxel volume of {Component.Entity.Name}"); material = GizmoUniformColorMaterial.Create(GraphicsDevice, Color.CornflowerBlue); box = new BoxMesh(GraphicsDevice); box.Build(); debugEntity = new Entity($"Voxel volume mesh of {Component.Entity.Name}") { new ModelComponent { Model = new Model { material, new Mesh { Draw = box.MeshDraw }, }, RenderGroup = RenderGroup, } }; return(debugRootEntity); }
protected override Entity Create() { var root = base.Create(); var renderingSettings = Game.PackageSettings?.GetConfiguration <RenderingSettings>(); var aspect = (renderingSettings == null) ? 1.7778f : (float)renderingSettings.DefaultBackBufferWidth / (float)renderingSettings.DefaultBackBufferHeight; cameraParameters = new CameraParameters(Component, aspect); frustumMesh = new CameraFrustumMesh(GraphicsDevice); frustumMesh.Build(GraphicsCommandList, cameraParameters); var frustumMaterial = GizmoUniformColorMaterial.Create(GraphicsDevice, new Color(0.75f, 0.75f, 1f, 1f)); frustum = new Entity("Camera frustumMesh of {0}".ToFormat(root.Id)) { new ModelComponent { Model = new Model { frustumMaterial, new Mesh { Draw = frustumMesh.MeshDraw }, }, RenderGroup = RenderGroup, } }; return(root); }
protected override Entity Create() { var root = base.Create(); lightRay = new Entity($"Light ray for light gizmo {root.Id}"); rayMaterial = GizmoUniformColorMaterial.Create(GraphicsDevice, (Color) new Color4(GetLightColor(GraphicsDevice), 1f)); // build the ray mesh var coneMesh = GeometricPrimitive.Cone.New(GraphicsDevice, ConeRadius, ConeHeight, GizmoTessellation).ToMeshDraw(); var bodyMesh = GeometricPrimitive.Cylinder.New(GraphicsDevice, BodyLength, BodyRadius, GizmoTessellation).ToMeshDraw(); var coneEntity = new Entity($"Light ray for light gizmo {root.Id}") { new ModelComponent { Model = new Model { rayMaterial, new Mesh { Draw = coneMesh } }, RenderGroup = RenderGroup } }; coneEntity.Transform.Rotation = Quaternion.RotationX(-MathUtil.PiOverTwo); coneEntity.Transform.Position.Z = -BodyLength - ConeHeight * 0.5f; lightRay.AddChild(coneEntity); var bodyEntity = new Entity($"Light ray body for light gizmo {root.Id}") { new ModelComponent { Model = new Model { rayMaterial, new Mesh { Draw = bodyMesh } }, RenderGroup = RenderGroup } }; bodyEntity.Transform.Position.Z = -BodyLength / 2; bodyEntity.Transform.Rotation = Quaternion.RotationX(-MathUtil.PiOverTwo); lightRay.AddChild(bodyEntity); return(root); }
/// <summary> /// Creates a material having a uniform color. /// </summary> /// <param name="color">The color of the material</param> /// <returns>the material</returns> protected Material CreateUniformColorMaterial(Color color) { return(GizmoUniformColorMaterial.Create(GraphicsDevice, color, false)); }