月は2つの描画呼び出しで描画されますが、どちらもxboxで間違って描画されるため、簡単にするために1つの描画を表示しています。
これは、PCでの月の見え方です。
XBOXでの外観:
カメラが動き回るにつれて、テクスチャはちらつき、消え、下から上へのグラデーションのように見え、線がそれを通り抜けます。たとえば、カメラを少し動かすと、次のようになります。http : //olhovsky.com/xna/xbox_moon2.png
public void Draw(Camera cam)
{
GraphicsDevice gd = Game3.GDM.GraphicsDevice;
Vector3 position = Position + cam.Position;
Matrix world = Matrix.CreateScale(2.0f);
world *= Matrix.CreateConstrainedBillboard(
position, cam.Position, Vector3.Down, cam.Forward, null);
_moonEffect2.Parameters["World"].SetValue(world);
_moonEffect2.Parameters["View"].SetValue(cam.View);
_moonEffect2.Parameters["Projection"].SetValue(cam.Projection);
// Draw blended part of moon only.
_moonEffect2.Parameters["AlphaTestDirection"].SetValue(-1);
gd.BlendState = BlendState.AlphaBlend;
gd.RasterizerState = RasterizerState.CullNone;
gd.DepthStencilState = DepthStencilState.DepthRead;
ScreenQuadDraw.DrawQuad(_moonQuad, _moonEffect2);
}
ここに使用されているシェーダーがあり、ここでは複雑なものはありません:http : //www.olhovsky.com/xna/Moon.fx
テクスチャがxboxに正しく表示されない理由を誰かが知っていますか?おそらく設定すべき別の状態はありますか?
DrawQuadでそれを行わない限り、月のテクスチャを明示的に設定することはありません。
—
r2d2rigo
@ r2d2rigo:クローンされたエフェクト "_moonEffect2"のロード時に一度設定され、より効率的であるため、再度設定されることはありません。
—
Olhovsky、2011