Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# XNA RenderTarget2D大小限制_C#_Xna_Resolution - Fatal编程技术网

C# XNA RenderTarget2D大小限制

C# XNA RenderTarget2D大小限制,c#,xna,resolution,C#,Xna,Resolution,我一直在使用XNA制作一个PC游戏,我正在使用RenderTarget2D进行照明,在其中一个中绘制世界内容,然后在另一个中绘制lightmask内容。无论如何,我一开始使用1920x1080显示器时没有遇到任何问题,但我刚刚升级到27英寸2560x1440 S-IPS显示器,现在我遇到了一个错误,因为我的显示器分辨率设置高于2048,这显然是纹理的最大尺寸 它正在尝试绘制大小为2560 x 1440的纹理,因此我需要找到一种绕过该限制的方法。我想,对于大屏幕,我可以以某种方式将其拆分为多个Re

我一直在使用XNA制作一个PC游戏,我正在使用RenderTarget2D进行照明,在其中一个中绘制世界内容,然后在另一个中绘制lightmask内容。无论如何,我一开始使用1920x1080显示器时没有遇到任何问题,但我刚刚升级到27英寸2560x1440 S-IPS显示器,现在我遇到了一个错误,因为我的显示器分辨率设置高于2048,这显然是纹理的最大尺寸

它正在尝试绘制大小为2560 x 1440的纹理,因此我需要找到一种绕过该限制的方法。我想,对于大屏幕,我可以以某种方式将其拆分为多个RenderTarget2D。我的问题是如何通过灯光遮罩:

drawMain();
drawLightMask();

ScreenManager.SpriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend);
lightingEffect.Parameters["lightMask"].SetValue(lightMask);
lightingEffect.CurrentTechnique.Passes[0].Apply();
ScreenManager.SpriteBatch.Draw(mainScene, new Vector2(0, 0), Color.White);
ScreenManager.SpriteBatch.End();
我相信其他人必须处理这个问题,所以也许有人对我如何处理2048年的限制有一些想法


编辑:另一个想法。也许当我检测到他们有一个大的分辨率时,我只是将其设置得更低,而不是将其默认设置为当前分辨率。这样就不必担心了。这种方式的问题是,在全屏模式下,它会改变他们的屏幕分辨率,所以当他们退出游戏时,它必须改变分辨率又是一种混乱。然后在无边界winowed模式下,窗口变小了,但它似乎不会改变你的分辨率。

我假设你使用Reach配置文件。切换到HiDef对你来说是一种选择吗?太棒了!我刚刚读到了差异,但我不知道HiDef。我在过去的2年里只在WP7游戏上工作。它似乎是rs的大小可以达到4096,这将不仅仅是解决我的问题,而不必一起破解。一个问题:“Xbox 360,以及任何配备DirectX 10(或同等产品:见下文)GPU的Windows PC“他们似乎需要一个支持DirectX 10的GPU。DX10现在已经很老了,所以这似乎不是什么大问题。笔记本电脑呢?他们倾向于使用支持DX10的GPU吗?我读了更多关于找到问题答案的内容。这解决了我的问题谢谢!