public void RenderChildren(GraphicsDevice gd) { JadeEffect shader = JadeShaderManager.GetShader(ShaderLabel); shader.SetParameters(this); foreach (ModelMesh mesh in Model.Meshes) { gd.Indices = mesh.IndexBuffer; shader.Effect.Begin(); foreach (EffectPass pass in shader.Effect.CurrentTechnique.Passes) { pass.Begin(); foreach (ModelMeshPart part in mesh.MeshParts) { gd.VertexDeclaration = part.VertexDeclaration; gd.Vertices[0].SetSource(mesh.VertexBuffer, part.StreamOffset, part.VertexStride); gd.Textures[0] = ((BasicEffect)part.Effect).Texture; gd.DrawIndexedPrimitives(PrimitiveType.TriangleList, part.BaseVertex, 0, part.NumVertices, part.StartIndex, part.PrimitiveCount); } pass.End(); } shader.Effect.End(); } }
public void Draw(GraphicsDevice gd) { if (this is IJadeHasMaterial) { ((IJadeHasMaterial)this).SetMaterialProperties(); } if (this is IJadeRenderable) { JadeEffect shader = JadeShaderManager.GetShader(ShaderLabel); shader.SetParameters(this); shader.Effect.Begin(); foreach (EffectPass pass in shader.Effect.CurrentTechnique.Passes) { pass.Begin(); ((IJadeRenderable)this).Render(gd); pass.End(); } shader.Effect.End(); } if (this is IJadeChildRenderer) { ((IJadeChildRenderer)this).RenderChildren(gd); } }
protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.CornflowerBlue); JadeObjectManager.Draw(GraphicsDevice); base.Draw(gameTime); JadeShaderManager.PostProcess(GraphicsDevice); }
protected override void LoadContent() { JadeCameraManager.LoadContent(GraphicsDevice); JadeObjectManager.RootNode.LoadContent(GraphicsDevice, Content); JadeShaderManager.LoadContent(GraphicsDevice, Content); base.LoadContent(); }
public void SetMaterialProperties() { Effect effect = JadeShaderManager.GetShader(ShaderLabel).Effect; if (effect.Parameters["MaterialDiffuseColor"] != null) { effect.Parameters["MaterialDiffuseColor"].SetValue(MaterialDiffuseColor); } if (effect.Parameters["MaterialSpecularColor"] != null) { effect.Parameters["MaterialSpecularColor"].SetValue(MaterialSpecularColor); } if (effect.Parameters["MaterialSpecularPower"] != null) { effect.Parameters["MaterialSpecularPower"].SetValue(MaterialSpecularPower); } }
public void RenderChildren(GraphicsDevice gd) { JadeEffect shader = JadeShaderManager.GetShader(ShaderLabel); shader.Effect.Begin(); foreach (EffectPass pass in shader.Effect.CurrentTechnique.Passes) { for (int i = 0; i < 6; i++) { Sides[i].SetPosition(JadeCameraManager.ActiveCamera.Position + Offsets[i]); shader.SetParameters(Sides[i]); pass.Begin(); Sides[i].Render(gd); pass.End(); } } shader.Effect.End(); }
static void Main(string[] args) { sword.SetScale(new Vector3(0.25f)); sword.SetPosition(new Vector3(sword.Position.X, sword.Position.Y, sword.Position.Z - 2.5f)); game.IsMouseVisible = true; JadeInputManager.AddDevice(keyboard); JadeInputManager.AddDevice(mouse); keyboard.OnKeyRelease += keyboard_OnKeyRelease; keyboard.OnKeyHeld += keyboard_OnKeyHeld; mouse.OnMove += mouse_OnMove; mouse.OnScroll += mouse_OnScroll; mouse.OnClick += mouse_OnClick; mouse.OnRelease += mouse_OnRelease; JadeShaderManager.AddEffect("BS", basicEffect); skybox.ShaderLabel = "BS"; sword.ShaderLabel = "BS"; JadeObjectManager.AddObject(skybox); JadeObjectManager.AddObject(sword); game.Run(); }
protected override void Initialize() { JadeShaderManager.Initalize(); JadeInputManager.Initialize(this); base.Initialize(); }