2012-09-15 4 views
1

저는 C#에서 XNA를 사용하고 있습니다. 그리고 저는 정점 기반 그래픽 시스템의 일종을 만들려고합니다. 그래서 지금까지2D 메쉬 렌더링 C#

public class vertex { 
    private Vector2 position; 
    private Color color; 

    public vertex(Vector2 position, Color color) { 
     this.position = position; 
     this.color = color; 
    } 

    public Vector2 Position { 
     get { return position; } 
     set { position = value; } 
    } 

    public Color Color { 
     get { return color; } 
     set { color = value; } 
    } 
} 

public class mesh { 
    private vertex[] vertecies; 

    public mesh(int vertecies) { 
     this.vertecies = new vertex[vertecies]; 
     for (int i = 0; i < vertecies; i++) 
      this.vertecies[i] = new vertex(Vector2.Zero, Color.White); 
    } 

    public vertex[] Vertecies { 
     get { return vertecies; } 
     set { vertecies = value; } 
    } 
} 

를 다음 코드가 다음 내가 내가 만들려고하는 것은 RenderMesh라는 함수가 지금

private void RenderVertex(vertex v) 
{ 
    sb.Draw(world.blankTexture, v.Position, new Rectangle(1, 1, 2, 2), v.Color); 
} 

화면에 점을 렌더링이 기능이 (메쉬 m) RenderVertex (vertex v) 함수를 사용하여 주어진 메쉬를 도트 (vertecies)에서 렌더링합니다. 그래서 기본적으로 메쉬의 버티 사이의 모든 점을 찾고 점으로 채우고 싶습니다. 그것에 대한 알고리즘이 있습니까? 아니면 완전히 다른 접근법을 취해야합니까? 왜냐하면 나는 동적 셰이프를 렌더링하고 처리하는 시스템을 얻으려고하기 때문입니다. 그래서 제발 도와주세요. 읽어 주셔서 감사합니다 :)

+0

다음과 같은 렌더링 튜토리얼을 읽어 보지 않는 이유는 무엇입니까? http://www.riemers.net/? 당신은 기본적으로 바퀴, 또는 적어도 소프트웨어 렌더링을 재발견하고 싶습니다. – Matzi

+1

도대체 뭐야 ?? 다각형 형태로 픽셀 크기의 다각형 (스프라이트 배치는 폴리곤으로 스프라이트를 그립니다)을 무리로 그려야합니다. 폴리곤을 직접 그려 보는 것은 어떨까요? 또한 XNA에는 이미 ['VertexPositionColor'] (http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.graphics.vertexpositioncolor.aspx)가 있습니다. –

+0

VertexPositionColor는 3D 다각형을위한 것입니다. – user1494136

답변

-2

직접 작성하는 대신 OpenGL과 같은 사전 제작 된 벡터 기반 그래픽 라이브러리를 사용하는 것이 좋습니다. OpenTK Library Website

또 다른 예는 SharpGL입니다 -

한 예는 OpenGL, OpenCL을하고, OpenAL에 대한 고급 낮은 수준의 라이브러리 인 OpenTK 라이브러리입니다. 그것은 단지 매우 다른 명령입니다.

철저한 테스트를 거쳤으므로 쉽게 사용할 수 있습니다.

관련 문제