2012-09-07 1 views
0

형상 쉐이더에서 삼각형 스트립 대신 삼각형을 내보낼 가능성이 있습니까? 이것은 몇 가지 흥미로운 가능성을 가능하게합니다. OpenGL 3.3.기하학적 셰이더에서 삼각형 스트립 대신 삼각형을 내보낼 수 있습니까?

glProgramParameteriARB(mVoxelShd, GL_GEOMETRY_OUTPUT_TYPE_ARB, GL_TRIANGLE_STRIP); 

셰이더의 마녀 출력 모드를 지정합니다. 그것은 컴파일하고 잘 작동

glProgramParameteriARB(mVoxelShd, GL_GEOMETRY_OUTPUT_TYPE_ARB, GL_TRIANGLES); 

하지만, 삼각형 스트립처럼 동일하게 나타난다 : 그리고 시도하는 경우.

또한 GLSL 언어 사양 3.3 지오메트리 쉐이더 출력용

레이아웃 한정자 식별자

  • 레이아웃 규정-ID
  • line_strip
  • triangle_strip
  • max_vertices = i nteger 상수는 다음

는 더 "삼각형"이없는 것 같다.

+0

'glProgramParameteriARB'는 3.3이 아닙니다. 3.3 작업 방식이 아닙니다. ARB_geometry_shader4는 코어 [Geometry Shaders] (http://www.opengl.org/wiki/Geometry_Shader)와는 다릅니다. –

+0

이것은 유용한 관찰입니다. 이것은 언어 사양이 핵심 기능에 가장 적합하다는 것을 의미하며 ARB 및 EXT는 다른 규칙을 사용할 수 있습니까? – Palax

+0

[핵심 확장] (http://www.opengl.org/wiki/OpenGL_Extensions#Core_Extensions) 만 핵심 기능과 동일한 의미 및 기능을 필요로합니다. 다른 모든 확장 기능의 경우 핵심 기능은 확장 버전과 일치하지 않습니다 *. GLSL은 ARB_shader_objects와 GL 2.0 버전간에 크게 변경되었습니다. –

답변

1

실수로, 지정된 삼각형 시퀀스마다 EndPrimitive()를 사용하여 독립적 인 삼각형을 기하 구조 셰이더로 내보낼 수 있습니다. 그리고 이것은 훨씬 더 강력 해 보입니다. 삼각형 스트립과 독립 삼각형 둘 다 기하 구조 출력 유형을 변경하지 않고 단일 셰이더에서 만들 수 있습니다.

+0

나는 이것이> 4.0 (GLSL 400)에서만 작동한다고 믿는다. – sdasdadas