您的位置:首页 > 其它

Review:how to draw a mesh in xna

2012-11-01 15:09 513 查看
[1].Variable declaration

VertexPositionTexture[] verts;

VertexBuffer vertexBuffer;

Texture2D projectTexture;

BasicEffect basicEffect;

[2].Camera and World Matrix

public Matrix view { get; protected set; }

public Matrix projection { get; protected set; }

// Initialize view matrix

view = Matrix.CreateLookAt(pos, target, up);

// Initialize projection matrix

projection = Matrix.CreatePerspectiveFieldOfView(

    MathHelper.PiOver4,

    (float)Game.Window.ClientBounds.Width /

    (float)Game.Window.ClientBounds.Height,

    1, 1000);

[3].Initialize and loadcontent

//basic effect

basicEffect = new BasicEffect(GraphicsDevice);

//verts

verts = new VertexPositionTexture[4];

verts[0] = new VertexPositionTexture();



//vertex buffer

vertexBuffer = new VertexBuffer(GraphicsDevice, typeof(VertexPositionTexture), verts.Length, BufferUsage.None);

vertexBuffer.SetData(verts);

//Texture

projectTexture = game.Content.Load<Texture2D>("Textures/1");

[4].Set parameters and Draw the texture

basicEffect.World = World;

basicEffect.View = camera.view;

basicEffect.Projection = camera.projection;

basicEffect.Texture = projectTexture;

basicEffect.TextureEnabled = true;

GraphicsDevice.SetVertexBuffer(vertexBuffer);

spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend, null, null, null, basicEffect);

foreach (EffectPass pass in basicEffect.CurrentTechnique.Passes)

{

    pass.Apply();

    GraphicsDevice.DrawUserPrimitives<VertexPositionTexture>

        (PrimitiveType.TriangleStrip, verts, 0, 2);

}

spriteBatch.End();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: