2010-05-15 3 views
0

저는 XNA를 배우면서 제목에서 알 수 있듯이 정점 집합으로 정의 된 2D 영역을 채울 방법이 있는지 봅니다. 평면. 파일 기반 텍스처가 아닌 색상으로 채우기를 원합니다.XNA에서 정점으로 묶인 2D 영역 채우기

예를 들어 4 각형 삼각형 팬으로 정점이 정의 된 둥근 사각형을 가져옵니다. 꼭지점은 삼각형 컬렉션을 작성하여 정의되지만 삼각형은 인접하지 않을 수 있습니다.

또한 하나 이상의 색상으로 채우고 싶습니다. 즉, 바인딩 된 영역을 4 개의 수직 밴드로 나누고 각기 다른 색상으로 채 웁니다. 당신은 저에게 코드를 제공 할 필요가 없으며 자원으로 나를 가리키면 많은 도움이 될 것입니다. 나는 Google과 함께 편리하게 일할 수있다. (나는 처음 시도했지만 비참하게 실패했다.)

이것은 XNA의 구현과 마찬가지로 "XNA에 적합한 것"에 대한 많은 탐구입니다. XNA에 익숙하지 않은 나는 할 수있는 일과 할 수없는 일 위에 무엇을해야하는지,하지 말아야 하는지를 배우고 싶다.

색 채우기가 셰이더를 사용하여 수행됩니다 : 여기

+1

정확하게 이해했다면 삼각 측량 알고리즘을 연구해야합니다. Wikipedia에는 ​​나열된 몇 가지가 있어야합니다. – SigTerm

답변

1

너무 많이하지만은 시작입니다. Reimer's XNA Tutorials on pixel shaders은 주제에 대한 훌륭한 자료입니다.

지오메트리를 계산하고이를 저장하는 정점 버퍼를 구축해야합니다. XNA의 모든 벡터 지오메트리는 3D이지만 평면에 고정 된 카메라를 사용하면 2D를 시뮬레이트합니다.

다른 삼각형에 다른 색상을 추가하려면 기본적으로 형상을 별도의 꼭지점 버퍼로 그룹화해야합니다. 그런 다음 color 매개 변수가있는 셰이더를 사용하여 각 버퍼에 대해 은 그래픽 장치에 버퍼를 전달하기 전에 적절한 색을 설정합니다. 또는 a vertex format containing color information을 사용하여 기본적으로 각 꼭지점에 색상을 할당 할 수 있습니다.

+0

기술적으로 XNA의 모든 그래픽 관련 항목은 3D입니다. 단지 Spritebatch와 친구가 2D 드로잉을 할 수있게 해줍니다 ... – RCIX

관련 문제