繁体   English   中英

Monogame“点亮”特定对象

[英]Monogame “lighting” specific objects

我在Monogame中做了类似的事情:

2

3

我的问题是,我该怎么做才能仅在支柱上而不是背景绘制照明效果? 使用BlendState.Additive时是否会忽略某些精灵? 那将如何工作? 这是我现在绘制的方式。

//draw background
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.Opaque);
spriteBatch.Draw(Background, Vector2.Zero, Color.White);
spriteBatch.End();

//draw pillar
spriteBatch.Begin(SpriteSortMode.Deferred);
spriteBatch.Draw(Texture, new Rectangle(PillarX, PillarY, Width, Height), Color.White);
spriteBatch.End();

//draw lighting sprite in additive mode
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.Additive);
spriteBatch.Draw(LightTexture, pos, null, Color.OrangeRed, 0f, Vector2.Zero, 
    scale, SpriteEffects.None, 0f);
spriteBatch.End();    

基本上,您有2个选择:

  • 使用像素着色器仅在所需区域上渲染照明精灵或
  • 在粘贴照明精灵之前,请使用模板缓冲区并将支柱渲染到其中。

我不会详细解释这一点,因为在gamedev stackexchange 这个问题上对这两种方式都进行了详尽的解释。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM