我的圖形設備被設置如下:很難理解渲染目標和後臺緩存在monogame
GraphicsDeviceManager = new GraphicsDeviceManager(GameBase.GameRef);
GraphicsDeviceManager.PreferredBackBufferWidth = 640;
GraphicsDeviceManager.PreferredBackBufferHeight = 480;
GraphicsDeviceManager.ApplyChanges();
我不能對谷歌的任何地方找到解釋的首選後臺緩衝區寬度是指什麼。
我設置了這樣的渲染目標:
RenderTarget = new RenderTarget2D(
GraphicsDeviceManager.GraphicsDevice,
640,
480,
false,
GraphicsDeviceManager.GraphicsDevice.PresentationParameters.BackBufferFormat,
DepthFormat.Depth24);
我找不到什麼640和480相對於如何渲染目標繪製實際上意味着在谷歌什麼。
我遇到的問題是,如果我調整窗口大小,一切都會延伸。我試圖理解什麼是單人遊戲正在做這件事,然後最終找出解決方案。
在開始我的窗戶是640×480和PreferredBackBufferWidth和高度四百八十零分之六百四十零和渲染目標是四百八十○分之六百四十〇
如果我調整窗口的大小,以1920×1080例如,一切綿延,所以不知何故monogame不再將640x480紋理渲染到屏幕的640x480部分,但我沒有更改任何值或爲此完成任何代碼。
如果我調整屏幕,應該渲染目標被摧毀,並在窗口的新尺寸重建,還是應該後臺緩衝區的寬度和高度來改變,或兩者,或其他什麼東西?
我很迷茫,沒有任何在線文檔足夠的技術詳細回答。一旦我理解了它,我應該可以編寫一些代碼,以便在調整屏幕大小時不發生任何事情,所有內容都保持相同的大小,並且右側/底部邊緣周圍有一個黑色區域,因爲窗口比我大渲染。
目前無法檢查。但據我記憶,兩者都應調整大小。將背景緩衝區視爲「正在繪製的紙張」,而RenderTarget是「您要將已繪製的圖片投影到的平面」。所以如果你不想伸展,那麼你需要改變回緩衝區以在「紙張」上留出更多的空間,然後改變RenderTarget來實際上有一些「放置你的繪圖的地方」。 –
所以我一個簡單的(示例)場景,你的後臺緩衝區應該有你計劃定位的最大尺寸。 –
我知道你的意思,回到XNA還活着的那一天,很容易找到有關XNA教程的幫助,而不是MSDN上的框架參考主題。我能找到的最好的是[本文](https://msdn.microsoft.com/en-us/library/bb195022.aspx),縱橫比也有一些。希望它有幫助 – MickyD