멀티 샘플링을 활성화하고 깊이있는 필링을 시도하고 있습니다. 잘못된 데이터가있는 일부 문제가 투명 레이어에 나타납니다. 샘플 (원래 조각)이이 패스 유효한 경우 내가 확인하려면 다음을 사용 : 내가 설정 한 멀티 샘플링을 사용하는 GLSL 4.1 프래그먼트 쉐이더에서 'discard'사용
uniform sampler2DMS depthMinima;
로
depthMinima
가 정의
float depth = texelFetch(depthMinima, ivec2(gl_FragCoord.xy), gl_SampleID).r;
if (gl_FragCoord.z <= depth)
{
discard;
}
GL_SAMPLE_SHADING
하는, 내가 제대로 이해한다면, 프래그먼트 셰이더가 샘플 단위로 호출되어야합니다. 이것이 사실이 아니라면, 이것이 일어날 수있는 방법이 있습니까?
그 결과 첫 번째 레이어 또는 두 개의 오른쪽이 보이지만 그 아래에 (그리고 나는 8 개의 레이어를하고 있습니다.) 나는 정크 값을 얻기 시작합니다. 대부분 청색이며, 때로는 이전 레이어의 값입니다.
단일 샘플 버퍼에는 적합하지만 다중 샘플 버퍼에는 적합하지 않습니다. discard 키워드가 여전히 전체 조각을 삭제합니까?
감사합니다, 불행하게도이 (내가 BTW, 활성화 GL_MULTISAMPLE을 할) 도움이되지 않았다. 샘플 단위로 작업을 폐기해야합니까, 아니면 여전히 조각 단위로만 작동합니까? –
제 편집을보세요. – Vallentin
@Vallentin : 스펙에 따르면 : "조각 쉐이더에서 [gl_SampleID]를 정적으로 사용하면 전체 쉐이더가 샘플 당 평가됩니다." 따라서 이러한 기능이 필요하지 않아야합니다. –