2010-12-20 60 views
2

我想知道如果任何人有任何好的模式處理XNA的Xbox 360的照明。我目前正試圖實施一個聚光燈組件。我已閱讀延期着色作爲降低複雜性的手段。我也聽說這對於Xbox 360並不是一個好主意,而且它在XNA 4.0中比在XNA 3.0中更加困難。我的目標是製作一個可重複使用的組件,封裝可通過遊戲使用的聚光燈效果。用於Xbox 4.0的Xbox 360照明設計模式?

感謝,

-John

回答

1

延遲渲染允許你在世界本身已經呈現後應用照明。

  • 它在,你是不是被迫選擇照亮,拉它(通常是最接近/最顯著的)之前將影響模型的意義降低複雜性。

  • 它可以使半透明處理和抗鋸齒更復雜。

  • 它允許應用許多燈光,並在場景中移動,這對於向前照明是不切實際的。

  • 它需要幾個緩衝區存在 - 幾何緩衝區爲最小值,但正常和鏡面緩衝區也有幫助。存在用於打包這些緩衝區的技術,但它們確實需要更多的內存,並使用帶寬來寫入。這意味着延期渲染具有較高的前期成本,然後向前渲染,但是提供更多的靈活性與燈光數量和移動它們。

  • 星際爭霸2,戰爭機器和其他遊戲使用延遲渲染器,所以它肯定是一個成熟的解決方案。

  • 它在XNA 4下的複雜性方面差別不大,這裏是顯示XNA 4下的實現的鏈接。主要的區別是如果必須明確地存儲z緩衝區的副本而不是直接訪問它。 http://roy-t.nl/index.php/tag/deferred-rendering/既然你想要一個聚光燈效果,我可以明白你爲什麼會考慮延遲渲染,因爲我猜測的焦點是動態的,你可以考慮光前通也http://jcoluna.wordpress.com/

。但是,如果您之前沒有使用過延期渲染,那麼我建議您先探索Roy的鏈接,以確定您是否滿意成本/複雜性。