0

私は XNA を使用して PC ゲームを作成しており、RenderTarget2D で世界のものを描画し、次にライトマスクのものを別のものに描画することでライティングを行っています。とにかく、最初は 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年の制限にどのようにアプローチできるかについて誰かがアイデアを持っているのではないでしょうか?

編集:別の考え..おそらく、解像度が大きいことを検出したときに、デフォルトで現在の解像度に設定するのではなく、低く設定します。そうすれば特に気にする必要はありません。この方法の問題点は、フルスクリーン モードでは画面の解像度が変更されるため、ゲームを終了するときに再度解像度を変更する必要があり、面倒なことです。次に、ボーダーレスウィンドウモードでは、ウィンドウは小さくなりますが、解像度は変わらないようです。

4

0 に答える 0