XNA 4.0でアルファ透明度を適切に行う方法
さて、これに関するいくつかの記事、チュートリアル、質問を読みました。ほとんどは、私の問題を解決しない同じテクニックを指します。半透明のスプライト(texture2Dの本当に)を作成し、それらを別のスプライトにオーバーレイする機能が必要です。 私が見つけたコードサンプルでそれをいくらか達成することはできますが、結果に満足しておらず、これを行う方法があることを知っています。モバイルプログラミング(BREW)では、私たちは古いやり方で、レンダリングの前に各ピクセルの透明度を実際にチェックしました。 この場合、その下のスプライトをその上のアルファとブレンドしてレンダリングするようです。これは、テクスチャをどのようにレンダリングするかによるアーティファクトかもしれませんが、前述したように、すべての例はこの1つのテクニックを指し示しています。先に進む前に、サンプルコードを貼り付けます。 public void Draw(SpriteBatch batch, Camera camera, float alpha) { int tileMapWidth = Width; int tileMapHeight = Height; batch.Begin(SpriteSortMode.Texture, BlendState.AlphaBlend, SamplerState.PointWrap, DepthStencilState.Default, RasterizerState.CullNone, null, camera.TransformMatrix); for (int x = 0; x < tileMapWidth; x++) { for (int y = 0; y < tileMapHeight; y++) { int tileIndex = …