Esempio n. 1
0
        public void Render(Matrix world, Render3DContext context, Effect renderEffect, string techniqueName)
        {
            _graphicsDevice.BlendState        = BlendState.Opaque;
            _graphicsDevice.DepthStencilState = DepthStencilState.Default;

            var transforms = new Matrix[_model.Bones.Count];

            _model.CopyAbsoluteBoneTransformsTo(transforms);

            foreach (var mesh in _model.Meshes)
            {
                foreach (var effect in mesh.Effects)
                {
                    effect.CurrentTechnique = effect.Techniques[techniqueName];
                    effect.Parameters["World"].SetValue(transforms[mesh.ParentBone.Index] * world);
                    effect.Parameters["View"].SetValue(context.View);
                    effect.Parameters["Projection"].SetValue(context.Projection);
                    effect.Parameters["LightDir"].SetValue(context.LightDir);
                    effect.Parameters["LightMatrix"].SetValue(context.LightMatrix);
                    if (techniqueName != "ShadowDepth")
                    {
                        effect.Parameters["ShadowMap"].SetValue(context.NormalLightDepthRenderTarget);
                    }
                }
                mesh.Draw();
            }
        }
Esempio n. 2
0
 public void Render(Render3DContext context, Effect renderEffect, string techniqueName)
 {
     _geometry.Render(World, context, renderEffect, techniqueName);
 }