Example #1
0
        protected override void PosWithDepthDraw(PloobsEngine.SceneControl.RenderHelper render, Microsoft.Xna.Framework.GameTime gt, ref Microsoft.Xna.Framework.Matrix activeView, ref Microsoft.Xna.Framework.Matrix activeProjection)
        {
            Matrix  viewIT   = Matrix.Invert(Matrix.Transpose(activeView));
            Vector3 position = new Vector3(viewIT.M14, viewIT.M24, viewIT.M34);

            foreach (var item in Billboards)
            {
                if (item.Enabled)
                {
                    SpriteFont font = item.SpriteFont == null ? SpriteFont : item.SpriteFont;

                    basicEffect.World = Matrix.CreateConstrainedBillboard(item.Position, position, Vector3.Down, null, null);

                    basicEffect.View       = activeView;
                    basicEffect.Projection = activeProjection;

                    spriteBatch.Begin(0, null, null, DepthStencilState.DepthRead, RasterizerState.CullNone, basicEffect);

                    Vector2 textOrigin = font.MeasureString(item.Message) / 2;

                    spriteBatch.DrawString(font, item.Message, Vector2.Zero, item.Color, 0, textOrigin, item.Scale, 0, 0);

                    spriteBatch.End();
                }
            }
            render.ResyncStates();
        }
        protected override void AfterDraw(PloobsEngine.SceneControl.RenderHelper render, Microsoft.Xna.Framework.GameTime gt, ref Microsoft.Xna.Framework.Matrix activeView, ref Microsoft.Xna.Framework.Matrix activeProjection)
        {
            foreach (var item in primitives)
            {
                item.iDraw(activeView, activeProjection, render, batch);
            }

            base.AfterDraw(render, gt, ref activeView, ref activeProjection);
        }
Example #3
0
        protected override void Draw(Microsoft.Xna.Framework.GameTime gameTime, PloobsEngine.SceneControl.RenderHelper render)
        {
            base.Draw(gameTime, render);

            render.RenderBegin(Matrix.Identity);

            render.RenderTexture(mouseT, Color.White, new Rectangle(mstate.X, mstate.Y, 10, 10));

            render.RenderEnd();
        }
Example #4
0
        protected override void Draw(GameTime gameTime, PloobsEngine.SceneControl.RenderHelper render)
        {
            base.Draw(gameTime, render);

            render.RenderBegin(Matrix.Identity);

            foreach (Button b in buttons)
            {
                render.RenderText(b.text, b.position, Vector2.One, Color.DarkRed, arenScript);
            }

            render.RenderTexture(mouseT, Color.White, new Rectangle(mstate.X, mstate.Y, 10, 10));

            render.RenderEnd();
        }
Example #5
0
        protected override void PosWithDepthDraw(PloobsEngine.SceneControl.RenderHelper render, Microsoft.Xna.Framework.GameTime gt, ref Microsoft.Xna.Framework.Matrix activeView, ref Microsoft.Xna.Framework.Matrix activeProjection)
        {
            effect.Parameters["InvProj"].SetValue(Matrix.Invert(activeView * activeProjection));
            effect.Parameters["halfPixel"].SetValue(GraphicInfo.HalfPixel);
            effect.Parameters["DepthBuffer"].SetValue(render[PrincipalConstants.DephRT]);

            render.PushBlendState(BlendState.AlphaBlend);
            foreach (var item in Decals)
            {
                effect.Parameters["ProjectedTexture"].SetValue(item.tex);
                effect.Parameters["ProjectorViewProjection"].SetValue(item.view * item.Projection);
                render.RenderFullScreenQuadVertexPixel(effect);
            }
            render.PopBlendState();

            base.PosWithDepthDraw(render, gt, ref activeView, ref activeProjection);
        }
        protected override void PosWithDepthDraw(PloobsEngine.SceneControl.RenderHelper render, Microsoft.Xna.Framework.GameTime gt, Microsoft.Xna.Framework.Matrix activeView, Microsoft.Xna.Framework.Matrix activeProjection)
        {
            Matrix  viewIT   = Matrix.Invert(Matrix.Transpose(activeView));
            Vector3 position = new Vector3(viewIT.M14, viewIT.M24, viewIT.M34);

            foreach (var item in Billboards)
            {
                basicEffect.World = Matrix.CreateConstrainedBillboard(item.Position, position, Vector3.Up, null, null);

                basicEffect.View       = activeView;
                basicEffect.Projection = activeProjection;

                spriteBatch.Begin(0, null, null, DepthStencilState.DepthRead, RasterizerState.CullNone, basicEffect);
                spriteBatch.Draw(item.Texture, Vector2.Zero, item.Texture.Bounds, Color.White, 0, new Vector2(item.Texture.Bounds.Center.X, item.Texture.Bounds.Center.Y), item.Scale, SpriteEffects.None, 1);
                spriteBatch.End();
            }
            render.ResyncStates();
        }
        protected override void PosWithDepthDraw(PloobsEngine.SceneControl.RenderHelper render, Microsoft.Xna.Framework.GameTime gt, ref Microsoft.Xna.Framework.Matrix activeView, ref Microsoft.Xna.Framework.Matrix activeProjection)
        {
            Matrix invertY = Matrix.CreateScale(1, -1, 1);

            basicEffect.World      = invertY;
            basicEffect.View       = Matrix.Identity;
            basicEffect.Projection = activeProjection;

            spriteBatch.Begin(0, null, null, DepthStencilState.DepthRead, RasterizerState.CullNone, basicEffect);

            foreach (var item in Billboards)
            {
                if (item.Enabled)
                {
                    Vector3 viewSpaceTextPosition = Vector3.Transform(item.Position, activeView * invertY);
                    spriteBatch.Draw(item.Texture, new Vector2(viewSpaceTextPosition.X, viewSpaceTextPosition.Y), item.Texture.Bounds, Color.White, 0, new Vector2(item.Texture.Bounds.Center.X, item.Texture.Bounds.Center.Y), item.Scale, SpriteEffects.None, viewSpaceTextPosition.Z);
                }
            }


            spriteBatch.End();
            render.ResyncStates();
        }
Example #8
0
        protected override void PosWithDepthDraw(PloobsEngine.SceneControl.RenderHelper render, Microsoft.Xna.Framework.GameTime gt, ref Microsoft.Xna.Framework.Matrix activeView, ref Microsoft.Xna.Framework.Matrix activeProjection)
        {
            Matrix invertY = Matrix.CreateScale(1, -1, 1);

            basicEffect.World      = invertY;
            basicEffect.View       = Matrix.Identity;
            basicEffect.Projection = activeProjection;

            spriteBatch.Begin(0, null, null, DepthStencilState.DepthRead, RasterizerState.CullNone, basicEffect);

            foreach (var item in Billboards)
            {
                if (item.Enabled)
                {
                    SpriteFont font = item.SpriteFont == null ? SpriteFont : item.SpriteFont;
                    Vector3    viewSpaceTextPosition = Vector3.Transform(item.Position, activeView * invertY);
                    Vector2    textOrigin            = font.MeasureString(item.Message) / 2;
                    spriteBatch.DrawString(font, item.Message, new Vector2(viewSpaceTextPosition.X, viewSpaceTextPosition.Y), item.Color, 0, textOrigin, item.Scale, 0, viewSpaceTextPosition.Z);
                }
            }

            spriteBatch.End();
            render.ResyncStates();
        }
Example #9
0
 public void PosDrawnPhase(Microsoft.Xna.Framework.GameTime gt, PloobsEngine.SceneControl.IObject obj, PloobsEngine.Cameras.ICamera cam, IList <PloobsEngine.Light.ILight> lights, PloobsEngine.SceneControl.RenderHelper render)
 {
 }
Example #10
0
        protected override void Draw(Microsoft.Xna.Framework.GameTime gt, PloobsEngine.SceneControl.IObject obj, PloobsEngine.SceneControl.RenderHelper render, PloobsEngine.Cameras.ICamera cam, IList <PloobsEngine.Light.ILight> lights)
        {
            this._shader.Parameters["FarClip"].SetValue(cam.FarPlane);
            this._shader.Parameters["View"].SetValue(cam.View);
            this._shader.Parameters["Projection"].SetValue(cam.Projection);

            Matrix wld = obj.WorldMatrix;

            for (int i = 0; i < obj.Modelo.MeshNumber; i++)
            {
                BatchInformation[] bi = obj.Modelo.GetBatchInformation(i);
                for (int j = 0; j < bi.Count(); j++)
                {
                    Matrix w1 = Matrix.Multiply(bi[j].ModelLocalTransformation, wld);
                    this._shader.Parameters["World"].SetValue(w1);
                    this._shader.Parameters["VPIT"].SetValue(Matrix.Transpose(Matrix.Invert(w1 * cam.View)));
                    render.RenderBatch(bi[j], _shader);
                }
            }
        }
Example #11
0
        public override void PosDrawPhase(GameTime gt, PloobsEngine.SceneControl.IObject obj, PloobsEngine.SceneControl.RenderHelper render, PloobsEngine.Cameras.ICamera cam, IList <PloobsEngine.Light.ILight> lights)
        {
            render.PushRasterizerState(cullMode);
            render.PushBlendState(BlendState.NonPremultiplied);
            alphagradative.Parameters["camCenter"].SetValue(cam.Position);

            for (int i = 0; i < obj.Modelo.MeshNumber; i++)
            {
                BatchInformation[] bi = obj.Modelo.GetBatchInformation(i);

                for (int j = 0; j < bi.Count(); j++)
                {
                    alphagradative.Parameters["colorMap"].SetValue(obj.Modelo.getTexture(TextureType.DIFFUSE, i, j));
                    Matrix w1 = Matrix.Multiply(obj.WorldMatrix, bi[j].ModelLocalTransformation);
                    alphagradative.Parameters["wvp"].SetValue(w1 * cam.ViewProjection);
                    alphagradative.Parameters["w"].SetValue(w1);

                    render.RenderBatch(bi[j], alphagradative);
                }
            }
            render.PopBlendState();
            render.PopRasterizerState();
        }
Example #12
0
 public override void DepthExtractor(GameTime gt, PloobsEngine.SceneControl.IObject obj, ref Matrix View, ref Matrix projection, PloobsEngine.SceneControl.RenderHelper render)
 {
     if (CastShadowAndReflection)
     {
         base.DepthExtractor(gt, obj, ref View, ref projection, render);
     }
 }
Example #13
0
        public override void PosDrawPhase(GameTime gt, PloobsEngine.SceneControl.IObject obj, PloobsEngine.SceneControl.RenderHelper render, PloobsEngine.Cameras.ICamera cam, IList <PloobsEngine.Light.ILight> lights)
        {
            Matrix wld = obj.WorldMatrix;

            for (int i = 0; i < obj.Modelo.MeshNumber; i++)
            {
                BatchInformation[] bi = obj.Modelo.GetBatchInformation(i);
                for (int j = 0; j < bi.Count(); j++)
                {
                    this._shader2.Parameters["DiffuseMap"].SetValue(obj.Modelo.GetTextureInformation(i)[j].getTexture(TextureType.DIFFUSE));
                    Matrix w1 = Matrix.Multiply(bi[j].ModelLocalTransformation, wld);
                    this._shader2.Parameters["worldViewProjection"].SetValue(w1 * cam.ViewProjection);
                    this._shader2.Parameters["lightSamplerBuffer"].SetValue(render[PrincipalConstants.lightRt]);
                    this._shader2.Parameters["LightBufferPixelSize"].SetValue(new Vector2(0.5f / render[PrincipalConstants.lightRt].Width, 0.5f / render[PrincipalConstants.lightRt].Height));
                    render.RenderBatch(bi[j], _shader2);
                }
            }
        }
Example #14
0
 public override void BasicDraw(GameTime gt, PloobsEngine.SceneControl.IObject obj, ref Matrix view, ref Matrix projection, IList <PloobsEngine.Light.ILight> lights, PloobsEngine.SceneControl.RenderHelper render, Plane?clippingPlane, bool useAlphaBlending = false)
 {
     if (CastShadowAndReflection)
     {
         base.BasicDraw(gt, obj, ref view, ref projection, lights, render, clippingPlane, useAlphaBlending);
     }
 }
Example #15
0
 protected override void Draw(Microsoft.Xna.Framework.GameTime gt, PloobsEngine.SceneControl.IObject obj, PloobsEngine.SceneControl.RenderHelper render, PloobsEngine.Cameras.ICamera cam, IList <PloobsEngine.Light.ILight> lights)
 {
     render.PushBlendState(laser_blends);
     effect.CurrentTechnique = effect_technique;
     world.SetValue(obj.WorldMatrix);
     wvp.SetValue(shader_matrices_combined[1] = obj.WorldMatrix * cam.View * cam.Projection);
     effect_color.SetValue(color.ToVector4());
     effect_center_to_viewer.SetValue(cam.Position);
     render.RenderBatch(obj.Modelo.GetBatchInformation(0)[0], effect);
     render.PopBlendState();
 }
        protected override void Draw(GameTime gameTime, PloobsEngine.SceneControl.RenderHelper render)
        {
            base.Draw(gameTime, render);

            border.Draw(render, this.World.Camera2D);
        }
Example #17
0
 /// <summary>
 /// Pos drawn Function.
 /// Called after all objects are Draw
 /// </summary>
 /// <param name="gt">The gt.</param>
 /// <param name="obj">The obj.</param>
 /// <param name="cam">The cam.</param>
 /// <param name="lights">The lights.</param>
 /// <param name="render">The render.</param>
 public void PosDrawnPhase(GameTime gt, PloobsEngine.SceneControl.IObject obj, PloobsEngine.Cameras.ICamera cam, System.Collections.Generic.IList <PloobsEngine.Light.ILight> lights, PloobsEngine.SceneControl.RenderHelper render)
 {
 }
Example #18
0
 public void Drawn(Microsoft.Xna.Framework.GameTime gt, PloobsEngine.SceneControl.IObject obj, PloobsEngine.Cameras.ICamera cam, IList <PloobsEngine.Light.ILight> lights, PloobsEngine.SceneControl.RenderHelper render)
 {
     ForwardEnvironmentShader.iDraw(gt, obj, render, cam, lights);
 }
Example #19
0
        /// <summary>
        /// Normal Drawn Function.
        /// </summary>
        /// <param name="gt">The gt.</param>
        /// <param name="obj">The obj.</param>
        /// <param name="cam">The cam.</param>
        /// <param name="lights">The lights.</param>
        /// <param name="render">The render.</param>
        public void Drawn(GameTime gt, PloobsEngine.SceneControl.IObject obj, PloobsEngine.Cameras.ICamera cam, System.Collections.Generic.IList <PloobsEngine.Light.ILight> lights, PloobsEngine.SceneControl.RenderHelper render)
        {
            if (first)
            {
                _terrainModel.Initialize(cam, render.device);
                first = false;
            }

            if (_terrainModel.Effect is IEffectMatrices)
            {
                IEffectMatrices effectMatrices = (IEffectMatrices)_terrainModel.Effect;
                effectMatrices.World      = obj.WorldMatrix;
                effectMatrices.View       = cam.View;
                effectMatrices.Projection = cam.Projection;
            }

            render.SetSamplerStates(SamplerState.LinearWrap, 6);
            _terrainModel.Draw();
            render.SetSamplerStates(ginfo.SamplerState, 6);
        }
Example #20
0
        public void PreDrawnPhase(Microsoft.Xna.Framework.GameTime gt, PloobsEngine.SceneControl.IWorld mundo, PloobsEngine.SceneControl.IObject obj, PloobsEngine.Cameras.ICamera cam, IList <PloobsEngine.Light.ILight> lights, PloobsEngine.SceneControl.RenderHelper render)
        {
            Vector3 pos = obj.PhysicObject.Position;

            render.PushRasterizerState(d);
            render.RenderSceneToTextureCube(RenderTargetCube,
                                            Color.AliceBlue, mundo, ref pos, gt, true, false, new List <PloobsEngine.SceneControl.IObject>()
            {
                obj
            });
            render.PopRasterizerState();
        }