2014-04-01 5 views
0

,버텍스 쉐이더> 지오메트리 셰이더, 오류가 (관련이없는 물건 ...) 나는 다음과 같은 설정 같은 것을 가지고

버텍스 쉐이더 "비활성 통일의 위치를 ​​얻기":

#version 330 core 

uniform mat4 ModelViewMatrix; 
... 

in vec4 position; 
... 

out vec4 out_position; 

... 

void main() 
{ 
    ... 
    out_position = ModelViewMatrix * position; 
    ... 
} 

기하학 (관련이없는 물건 ...) 쉐이더 :

#version 330 core 

... 

uniform mat4 ProjectionMatrix; 

... 

layout(lines) in; 
layout(triangle_strip, max_vertices = 4) out; 

in vec4 out_position[]; 

... 

void main() 
{ 
    vec4 lineDirection = out_position[1] - out_position[0]; 
    vec4 scaledLineWidthDir = ...; 

    ... 

    gl_Position = ProjectionMatrix * (lineDirection - scaledLineWidthDir); 
    EmitVertex(); 

    gl_Position = ProjectionMatrix * (lineDirection + scaledLineWidthDir); 
    EmitVertex(); 

    gl_Position = ProjectionMatrix * (-lineDirection + scaledLineWidthDir); 
    EmitVertex(); 

    gl_Position = ProjectionMatrix * (-lineDirection - scaledLineWidthDir); 
    EmitVertex(); 

    EndPrimitive(); 
} 

하지만 그것은 ModelViewMatrix를 사용하지 않을 경우로 나타납니다 쉐이더를 실행하려고하면 (나는 s로하려고 할 때 "비활성 균일의 위치를 ​​얻기"를 얻을 et it up), 심지어 기하 구조 셰이더에서 gl_Position을 계산하는 데 사용하고 있다고 생각했습니다. 뭐라 구요?

여기 기하학 쉐이더는 2 개의 꼭지점을 가져 와서 4 개의 쉐이더 쉐이더를 사용하기 때문에 형상 쉐이더를 올바르게 이해하고 사용하고 있습니까?

답변

0

좋아요. 제 문제를 알아 냈습니다.

내가 사용하려고하는 셰이더와 동일한 버텍스 셰이더를 사용하는 잘못된 셰이더를 사용했기 때문에 유니폼 중 일부가 작동하고 일부는 작동하지 않았기 때문에 혼동을 받았습니다.