La lune est dessinée avec deux appels de tirage, mais les deux dessinent mal sur la xbox, donc je n'affiche qu'un seul tirage pour plus de simplicité.
Voici à quoi devrait ressembler la lune sur le PC:
À quoi ça ressemble sur la XBOX:
La texture scintille, disparaît, ressemble à un dégradé de bas en haut, des lignes la parcourent, et ainsi de suite lorsque la caméra se déplace. Par exemple, après avoir légèrement déplacé la caméra, cela ressemble à ceci: 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);
}
Voici le shader utilisé, rien de compliqué ici: http://www.olhovsky.com/xna/Moon.fx
Est-ce que quelqu'un sait pourquoi la texture ne s'affiche pas correctement sur la Xbox? Y a-t-il un autre état que je devrais définir peut-être?