3d - Monogame 上的 DrawUserPrimitives 问题

标签 3d xna xna-4.0 primitive monogame

我正在尝试使用 3D 图元 DrawUserPrimitivesVertexPositionColor 在 Monogame(适用于 Windows8)上绘制一个简单的彩色矩形,但我唯一能看到的是覆盖屏幕上半部分的矩形,如下面的屏幕截图所示。绘制三角形时也会发生这种情况。

screenshot

这是我的代码:

// camera code
Camera.Position = new Vector3(0, 1500, 0);
Camera.Projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(45), GraphicsDevice.Viewport.AspectRatio, 1, 5000);
Camera.View = Matrix.CreateLookAt(Camera.Position, Vector3.Down, Vector3.Forward); 

VertexPositionColor[] vertexList = new VertexPositionColor[4]; 
BasicEffect basicEffect;  
VertexBuffer vertexBuffer;

// initializations
vertexList[0] = new VertexPositionColor(new Vector3(-957, 10, -635), Color.Red);  
vertexList[1] = new VertexPositionColor(new Vector3(957, 10, -635), Color.Lime);  
vertexList[2] = new VertexPositionColor(new Vector3(-957, 10, 635), Color.Yellow);  
vertexList[3] = new VertexPositionColor(new Vector3(957, 10, 635), Color.Blue);

vertexBuffer = new VertexBuffer(GraphicsDevice, typeof(VertexPositionColor), 4, BufferUsage.WriteOnly);  
vertexBuffer.SetData<VertexPositionColor>(vertexList);

basicEffect = new BasicEffect(GraphicsDevice);  
basicEffect.VertexColorEnabled = true;  
basicEffect.LightingEnabled = false;  
basicEffect.Projection = Camera.Projection;

// draw code
GraphicsDevice.RasterizerState = RasterizerState.CullNone;
GraphicsDevice.SetVertexBuffer(vertexBuffer);

foreach (EffectPass p in basicEffect.CurrentTechnique.Passes)
{
   p.Apply();
   GraphicsDevice.DrawUserPrimitives<VertexPositionColor>(PrimitiveType.TriangleStrip, vertexList, 0, 2);
}

如您所见,我对所有四个顶点使用了不同的颜色,但程序实际上似乎只绘制了其中两个:vertexList[0]vertexList[1] 。 有什么建议吗?怎么了?

最佳答案

我想你失踪了

basicEffect.View = Camera.View;

关于3d - Monogame 上的 DrawUserPrimitives 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18198649/

相关文章:

c# - XNA 4.0 中的自定义光标

c# - XNA 柏林噪音星球

html - 使用带 z 轴的 HTML5 Canvas ?以及如何移动 Canvas 的视线?

python - Python 的 3d 数学库

c# - 如何编写基于网络浏览器的多人游戏?

opengl - 如何从滚动,俯仰和偏航中获取摄像机的矢量?

c# - XNA 中让玩家在屏幕上流畅绘画的最佳方法是什么?

algorithm - 在使用半边网格实现 Catmull-Clark 分割时找到双胞胎

android - 在 Android 中动态创建 3D 对象

xna - XNA windows 游戏中的广告(不是 Windows Phone 7)