Bulan digambar dengan dua panggilan undian, tetapi keduanya menggambar salah di xbox jadi saya hanya menampilkan satu undian untuk kesederhanaan.
Beginilah tampilan bulan di PC:
Bagaimana tampilannya di XBOX:
Tekstur berkedip, menghilang, tampak seperti gradien dari bawah ke atas, garis-garis melewatinya, dan seterusnya ketika kamera bergerak. Misalnya setelah memindahkan kamera sedikit terlihat seperti ini: 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);
}
Berikut adalah shader yang digunakan, tidak ada yang rumit di sini: http://www.olhovsky.com/xna/Moon.fx
Adakah yang tahu mengapa tekstur tidak ditampilkan dengan benar di xbox? Apakah ada keadaan lain yang mungkin harus saya atur?