2011-09-22 2 views
5

입력 된 것 이외의 기하학 셰이더에서 새로운 기본 유형을 출력 할 수 있습니까? 점을 입력하고 삼각형을 렌더링하고 싶습니다. 점은이 삼각형의 중심으로 사용됩니다. 그렇지 않다면, 포인트를 입력하고 그 포인트로 정의 된 다른 기하학을 렌더링하는 다른 옵션이 있습니까?기하학 쉐이더를 사용하여 새로운 프리미티브 유형 생성

#version 120 
#extension GL_EXT_geometry_shader4 : enable 

layout(points) in; 
layout(triangle_strip) out; 

void main() 
{ 
    gl_Position = gl_in[0].gl_Position; 
    EmitVertex(); 
    gl_Position = gl_in[0].gl_Position+vec4(1,0,0,0); 
    EmitVertex(); 
    gl_Position = gl_in[0].gl_Position+vec4(0, 1, 0, 0); 
    EmitVertex(); 
    EndPrimitive(); 
} 

답변

4

예, 이것은 그 지오메트리 셰이더가이 무엇을 완벽하게 가능하다 : 대답의 도움으로

여기에 (누군가가 이제까지 필요한 경우) 내가 요구 단지 일을 지오메트리 셰이더입니다. 입력 프리미티브 유형을 점으로 지정하고 출력 기본 유형을 응용 프로그램에서 glProgramParameteri을 사용하거나 셰이더에서 직접 최신 layout 구문을 사용하여 삼각형 (오히려 삼각형 스트립, 단 하나의 삼각형이라도 상관없이)으로 지정하십시오.

+0

실제로 구문을 선택하지는 않습니다. 또는 구문 선택은 기하학 셰이더의 확장 버전을 사용하는지 핵심 기능을 사용하는지에 따라 결정됩니다. 둘을 섞어서는 안된다. –

+0

@Nicol 사실 기하학 쉐이더를 사용하지 못했습니다. 해명 해줘서 고마워. –

관련 문제