Mặt trăng được vẽ bằng hai lệnh rút thăm, nhưng cả hai đều vẽ sai trên xbox vì vậy tôi chỉ hiển thị một lần vẽ cho đơn giản.
Đây là cách mặt trăng nên nhìn trên PC:
Nó trông như thế nào trên XBOX:
Các họa tiết nhấp nháy, biến mất, trông giống như một dải màu từ dưới lên trên, các đường chạy qua nó, và cứ thế khi máy ảnh di chuyển xung quanh. Ví dụ: sau khi di chuyển máy ảnh một chút, nó trông như thế này: 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);
}
Đây là shader được sử dụng, không có gì phức tạp ở đây: http://www.olhovsky.com/xna/Moon.fx
Có ai biết tại sao kết cấu không được hiển thị đúng trên xbox không? Có một trạng thái khác tôi nên được thiết lập có lẽ?