2013-02-27 3 views
0

깊이 텍스처를 구현하고 2 개의 다른 드라이버에서 다른 출력을 얻었습니다. 나는 조각 셰이더에서 텍스처의 모든 채널()을 읽고있다 :깊이 텍스처의 채널에 대해서

“vec4 color = texelFetch(tk_diffuseMap, ivec3(tmp), i);” 

을이 경우 I는 각각 A와 B에 빨간색과 회색 이미지를 얻을. 나는 빨강 채널을 읽고 모든 4 개 채널을 복제 할 경우 나는 등에 회색 이미지를 얻을 하나가 올바른지

“vec4 color = vec4(texelFetch(tk_diffuseMap, ivec3(tmp), i).x)”. 

를? enter image description here

enter image description here

답변

3

그것은 당신이 전혀 다른 세 개의 채널을보고하지 않아야하기 때문에, 바로 어느 쪽 무관의 . 깊이있는 질감입니다. 그것은 단지 하나의 채널을 가지고 있습니다. 그게 당신이 만져야 할 유일한 것입니다. 비록 OpenGL이 다른 값들이 무엇인지 정의했다하더라도, 당신이 상관하지 않기 때문에, 그것들은 무관 한 디폴트 값이 될 것입니다. 당신은 깊이를 원했기 때문에 깊이가 아닌 값을보고 싶지 않았습니다.

그러나 스펙 응답을 원하면 GL_RED 텍스처에서와 동일한 결과를 얻으십시오. 녹색과 파란색의 경우 0, 알파의 경우 1입니다.

관련 문제