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();
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();
相关文章推荐
- Java : how to draw a line in thickness
- 怎么在UIView上绘制文本?(How to draw text in UIView?)
- Windows Phone 7 Quick Tip: How to use Bing Maps in XNA games
- How to draw on a canvas in rap applications
- XNA How To: Draw a Model with a Custom Effect
- How to install Tomcat in Ubuntu 14.04
- How to setup VVR in VCS , including the FireDrill.
- How to use insert or retrieve data by using Core Data in iOS
- C#中反射的使用(How to use reflect in CSharp)(3)Emit的使用
- [转]How to calculate Median in SQL Server
- how to install your kernel code in FC6
- How To Support Old iOS SDK’s in Xcode 5
- how to execute sql script in c#
- how to write a DLL/SO in C/C++ for Python
- How To Create a Dynamic Web 2.0 Brochure Site in an Hour
- How to install torcs package in Debian
- How to remove a line from a file in java?
- How to schedule task daily + onStart() in Play 2.0.4?
- How to add new partition in centos
- For loops in R: how to do a “continue”