〓 Admin 〓
製作しているゲームの近況や私事など
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
現在作っているフレームワークに3Dと2Dを併用する仕様を組み込みました。
ローグにおいて、ダンジョンは3D、ミニマップは2Dで描画する処理を作るためです。
仕様は単純にSprite Batchを作ってAlpha Blendで描画するもの。
Before
After
Σ(゚д゚;) <なんという事でしょう。匠の仕業により綺麗だったダンジョンが完全崩壊してしまいました。
ローグにおいて、ダンジョンは3D、ミニマップは2Dで描画する処理を作るためです。
仕様は単純にSprite Batchを作ってAlpha Blendで描画するもの。
Before
After
Σ(゚д゚;) <なんという事でしょう。匠の仕業により綺麗だったダンジョンが完全崩壊してしまいました。
このバグ、ひげねこ氏のサイトにて解説されていました。
http://blogs.msdn.com/b/ito/archive/2007/03/13/spritebatch-part2.aspx
どうやらSpriteBatch.Beginを呼んだ後、Endを呼んでもGraphicDeviceのRenderStateプロパティが2D用に変更されたままなのだそうです。
じゃぁそのプロパティをいじればいいじゃないかと思いましたが、GraphicDeviceを見てもRenderStateなんてない!
…どうやらXNA Framework4.0になった際に細分化されていたようです。これも同サイトにて解説されています。
http://blogs.msdn.com/b/ito/archive/2010/03/25/renderstate-where-are-you.aspx
これを参考に、描画後に
GraphicDevice.BlendState = BlendState.Opaque;
GraphicDevice.DepthStencilState = DepthStencilState.Default;
と変更を加えると…
無事ダンジョンとミニマップが正常に表示されました。
めでたしめでたし
http://blogs.msdn.com/b/ito/archive/2007/03/13/spritebatch-part2.aspx
どうやらSpriteBatch.Beginを呼んだ後、Endを呼んでもGraphicDeviceのRenderStateプロパティが2D用に変更されたままなのだそうです。
じゃぁそのプロパティをいじればいいじゃないかと思いましたが、GraphicDeviceを見てもRenderStateなんてない!
…どうやらXNA Framework4.0になった際に細分化されていたようです。これも同サイトにて解説されています。
http://blogs.msdn.com/b/ito/archive/2010/03/25/renderstate-where-are-you.aspx
これを参考に、描画後に
GraphicDevice.BlendState = BlendState.Opaque;
GraphicDevice.DepthStencilState = DepthStencilState.Default;
と変更を加えると…
無事ダンジョンとミニマップが正常に表示されました。
めでたしめでたし
PR
この記事にコメントする