2014-01-11 2 views
0

사실 내 반지름과 최대 반지름으로 반지를 그리기위한 정점 데이터를 생성하는 프로젝트 기능이 있습니다. 모서리의 경우 (최소 반지름이 0 인 경우)는 단색으로 채워진 원입니다. 내 데이터를 그리려면 GL_TRIANGLE_STRIP을 사용하고 있습니다.점선 원에 대한 정점 데이터 준비

이제는 리팩터링 기능을 사용하여 데이터를 파선 원으로 그릴 수 있습니다 (http://www.andyhorner.com/wp-content/uploads/2012/04/dashedlines-24.jpg).

또한 모든 서클마다 하나의 버퍼 만 갖고 싶기 때문에 GL_TRIANGLES에서 드로잉으로 전환해야한다고 생각합니다. 이런 종류의 도형을 그리기 위해 꼭지점 데이터를 준비하는 가장 좋은 방법은 무엇입니까?

답변

0

내가 점선 원을 그리는 두 가지 방법을 볼 것입니다 :

  1. 이 대시의 정확한 형상을 준비 (나는 당신이 생각했던 것을 믿습니다)와 단색으로 텍스쳐링이 형상을 렌더링합니다. 이 경우 정점 버퍼에는 위치 속성 만 포함됩니다. 하나의 삼각형 스트립 또는 삼각형을 사용할 수 있습니다. 삼각형 스트립을 사용할 때 하나의 대시의 마지막 꼭지점과 그 다음 첫 번째 꼭지점의 인덱스를 반복해야합니다 (이 기본 삼각형을 삽입하여 기본 다시 시작을 가짜로 만듭니다). 정점 및 인덱스 버퍼의 크기를 평가하여 단일 삼각형 스트립 또는 삼각형 (일반적으로 단일 삼각형 스트립이 이긴다) 사이를 결정할 수 있습니다. 또한 인덱스 된 기하학 (glDrawElements + 인덱스 버퍼)을 사용하고 있다고 가정합니다.

  2. 전체 원의 지오메트리를 준비한 다음 반투명 1D 텍스처를 적용하여 대시를 렌더링합니다. 분명히 단일 삼각형 스트립을 계속 사용할 수 있습니다. 가짜 기본 재시작은 필요하지 않지만 대시 경계에서 정점을 생성해야합니다. 정점 버퍼에는 위치 속성뿐만 아니라 해당하는 1D 텍스처 좌표가 포함됩니다. 물론 렌더링 할 때 블렌딩을 활성화해야합니다.

두 가지 방법 모두 단일 그리기 호출을 사용하여 전체 점선 원을 렌더링합니다. 텍스처 방식은 더 복잡하고 느립니다. 나는 하나의 삼각형 스트립을 가지고 순수한 기하학적 접근 인 1.를 갈 것입니다.