2010-04-08 4 views
1

나는 glMultiDrawArrays (GL_LINE_STRIP, ...)를 사용하여 정점 버퍼 객체에서 렌더링하는 많은 행 집합이 있습니다.추가 데이터가있는 OpenGL 인덱스 버퍼 객체

이것은 완벽하게 작동합니다. 이제 시각화해야하는 많은 정점 쌍이 있습니다. 모든 쌍은 두 개의 서로 다른 선에있는 두 개의 꼭지점으로 이루어져 있으며 꼭지점 사이의 거리는 작습니다. 그러나 특정 값보다 작은 거리의 모든 꼭지점 쌍 사이에 선을 그리는 기능이 있습니다. 는 I의와 J 년대는 정점과 R의를 가리키는 인덱스입니다

i1, j1, r1, 
i2, j2, r2, 
i3, j3, r3, 
... 

그 정점 사이의 거리입니다 : 내가 갖고 싶은 무엇

는 다음과 같은 구조의 버퍼 오브젝트 같은 것입니다. 따라서 모든 정점 쌍은 (i, j, r) 튜플로 저장됩니다. 그런 다음 꼭지점 쌍을 r < SOME_VALUE로 그리는 (꼭지점) 쉐이더를 선으로 갖고 싶습니다.

제 궁금한 점은 이것을 달성하는 가장 좋은 방법은 무엇입니까?

답변

0

고전은 텍스처에 여분의 데이터를 저장하고 셰이더에서 조회를 수행하는 것입니다. 그러나 실제로 고정 된 경우에는 거리 자체를 정점에 지정된 텍스처 좌표로 저장하고 직접 사용할 수 있습니다. 나는 당신이 그것을 해결하는 방법에 상관없이 모든 버텍스 (셰이더는 일반적으로 쌍으로 작업하는 것을 좋아하지 않는다)와 함께 저장해야한다고 생각한다.

여러 줄에 대해 정점을 재사용하지 않는다고 가정합니다.

편집 : 당신이 정점을 재사용하고 있기 때문에, 당신이 그것에 대해 영리 할 필요합니다 추측
이 좋아, 그럼. 두 개 (또는 고정 된 양)의 라인 (라인 스트립과 같음)의 일부인 경우 첫 번째 텍스처 좌표를 사용하는 첫 번째 호출 등 두 번 호출 할 수 있습니다. 다른 생각을 할 수 있는지 알게 될 것입니다.

+0

버텍스마다 저장하는 문제는 모든 버텍스가 여러 쌍의 일부가 될 수 있으므로 모든 버텍스마다 다양한 양의 데이터를 저장해야한다는 것입니다. – muksie