public void DrawMetaballTarget(SpriteBatch sB, GraphicsDevice graphicsDevice) { graphicsDevice.SetRenderTarget(Target); graphicsDevice.Clear(Color.Transparent); SpiritMod.Metaballs.borderNoise.Parameters["offset"].SetValue((float)Main.time / 10f); sB.Begin(SpriteSortMode.Immediate, BlendState.Additive, SamplerState.PointClamp, DepthStencilState.Default, RasterizerState.CullNone); SpiritMod.Metaballs.borderNoise.CurrentTechnique.Passes[0].Apply(); foreach (var m in Metaballs) { m.DrawOnMetaballLayer(sB); } sB.End(); AddEffect(sB, graphicsDevice, Target, SpiritMod.Metaballs.metaballColorCode); sB.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend, SamplerState.PointClamp, DepthStencilState.Default, RasterizerState.CullNone, null); foreach (var s in Sprites) { s.DrawGalaxyMappedSprite(sB); } sB.End(); SpiritMod.Metaballs.metaballEdgeDetection.Parameters["width"].SetValue((float)Main.screenWidth / 2); SpiritMod.Metaballs.metaballEdgeDetection.Parameters["height"].SetValue((float)Main.screenHeight / 2); SpiritMod.Metaballs.metaballEdgeDetection.Parameters["border"].SetValue(BorderColor.ToVector4()); AddEffect(sB, graphicsDevice, Target, SpiritMod.Metaballs.metaballEdgeDetection); }
private void AssignTextureParameters() { if (ParameterExists("surfaceTexture")) { effect.Parameters["surfaceTexture"].SetValue(Texture2D); } if (ParameterExists("borderColor")) { effect.Parameters["borderColor"].SetValue(BorderColor.ToVector4()); } if (ParameterExists("borderSize")) { effect.Parameters["borderSize"].SetValue(BorderSize); } }