2013-08-13 10 views
2

3D 원시도 DrawUserPrimitivesVertexPositionColor을 사용하여 Monogame (Windows8의 경우)에 간단한 색상의 사각형을 그리려하지만, 화면의 위쪽 절반을 덮는 사각형 만 볼 수 있습니다. 아래 스크린 샷에서 볼 수 있습니다. 삼각형도 그릴 때 발생합니다. 여기 Monogame의 DrawUserPrimitives 문제

screenshot

내 코드입니다 : 당신이 볼 수 있듯이, 나는 모든 4 개 개의 꼭지점에 대해 서로 다른 색상을 사용했습니다

// 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]. 제안 사항이 있으십니까? 뭐가 문제 야?

+0

Camera.View이 정점을 –

답변

3

나는 지금 제대로 작동 당신이

basicEffect.View = Camera.View; 
+0

감사를 변환 어떻게 표시되지 않습니다 누락 것 같아요! – pinckerman