簡體   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