Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #5
0
 /// <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));
 }