2013-03-26 1 views
1

GLSL 기하학 셰이더를 사용하여 라인 스트립을보고 현재 ModelView를 고려하여 텍스처 주석을 넣을 위치를 결정하고 싶습니다. invokation 당 4 vertex (GL_LINE_STRIP_ADJACENCY 사용)로만 제한되는 것 같습니다.하지만 필요한 것은 전체 라인 스트립입니다.기하학 쉐이더 추가 기본 정보

다른 기본 유형 (예 : GL에 해당하는 점이 있다면 다중 점)을 사용할 수 있지만 중요한 것은 모든 부분을 고려해야한다는 것입니다.

기하학 쉐이더에 추가 정점을 제공하는 종류의 확장이 있습니까? 아니면 Geometry 쉐이더를 사용하는 것보다 더 좋은 방법이 있습니까?

답변

3

렌더링 된 기본 스트림 전체에 액세스 할 수있는 메커니즘이 없습니다. 프리 머 티브는 임의로 커질 수 있기 때문에 GPU가 가지고있는 적당한 내부 버퍼 크기를 쉽게 벗어날 수 있습니다. 따라서 이것을 구현하는 것은 비실용적입니다.

은 버퍼 텍스처로 배열을 바인딩하고 거기에서 데이터를 읽습니다. 그러나 모든 GS 호출은 수백 개의 정점을 처리해야하므로 은 매우 낮습니다.이 느립니다. 이것이 GPU 병렬성을 정확히 활용하지는 못합니다.

텍스트 태그를 무언가에 가깝게 배치하려는 경우 꼭지점을 무언가가 있어야하는 것으로 지정해야합니다.

+0

제안 해 주셔서 감사합니다. 두 가지 후속 조치 : 1. 나는 제안한 것과 같은 버퍼 텍스처에 버텍스 데이터를 넣을 수 있고 첫 번째와 마지막 버텍스 사이의 단일 선분과 같이 단순화 된 지오메트리를 파이프 라인에 보낼 수 있다고 생각합니다. 이게 효과가없는 이유를 보시겠습니까? 2. 텍스트의 버텍스를 지정하려면 GL 파이프 라인에 텍스트 태그를 만들고 제출하는 방법은 무엇입니까? 이것은 여러 다른 라인 스트립에 일어날 것이기 때문에 Vertex 쉐이더에서 수행되어야하는 것처럼 보입니다. – Chris