La luna è disegnata con due richiami di pareggio, ma entrambi disegnano in modo errato su xbox, quindi sto solo mostrando un pareggio per semplicità.
Ecco come dovrebbe apparire la luna sul PC:
Come appare sull'XBOX:
La trama sfarfalla, scompare, sembra una sfumatura dal basso verso l'alto, le linee la attraversano e così via mentre la telecamera si muove. Ad esempio, dopo aver spostato leggermente la fotocamera, appare così: 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);
}
Ecco lo shader usato, niente di complicato qui: http://www.olhovsky.com/xna/Moon.fx
Qualcuno sa perché la trama non viene visualizzata correttamente su xbox? C'è forse un altro stato che dovrei impostare?