0
如何將多個Texture2D合併爲一個大型Texture2D?我試圖通過將地圖分成塊來優化等軸測遊戲。XNA「Texture2D」合併
我試過Google搜索它,發現有關「RenderTarget2D」的文章,但我不確定如何實現這一點。
謝謝, 山姆。
如何將多個Texture2D合併爲一個大型Texture2D?我試圖通過將地圖分成塊來優化等軸測遊戲。XNA「Texture2D」合併
我試過Google搜索它,發現有關「RenderTarget2D」的文章,但我不確定如何實現這一點。
謝謝, 山姆。
沒關係 - 我解決了。
對於任何人也在尋找這個,你基本上使用spriteBatch繪製到「RenderTarget2D」,就像你在屏幕上一樣。
RenderTarget2D render; //declare target
render = new RenderTarget2D(GraphicsDevice, (int)(tileSize.X * numberOfTiles.X), (int)(tileSize.Y * numberOfTiles.Y), 0, SurfaceFormat.Color); //assign target, where tileSize is the size of a tile and numberOfTiles is the number of tiles you are rendering
GraphicsDevice.SetRenderTarget(0, render); //Target the render instead of the backbuffer
batch.Begin();
//draw each tile
batch.End();
GraphicsDevice.SetRenderTarget(0, null); //target the backbuffer again
Texture2D myTexture = render.GetTexture(); //store texture in Texture2D variable
對不起,我比較差的解釋 - 我第一次嘗試在一個教程。
請注意,您的最後一行在XNA 4.0中不起作用。你需要用'GetData'和'SetData'將它複製到一個普通的'Texture2D'中。或者你需要處理'RenderTarget2D.ContentLost'。 (另見:[這裏](http://blogs.msdn.com/b/shawnhar/archive/2010/03/26/rendertarget-changes-in-xna-game-studio-4-0.aspx)和[這裏](http://stackoverflow.com/a/5509633/165500)和[這裏](http://stackoverflow.com/a/6900213/165500))。 –