2013-08-23 1 views
0

장면을 렌더링하고 재질 색상을 텍스처와 혼합하려고합니다. 프로그래머블 파이프 라인과 GLSL을 사용하고 있는데, 함수 texture()가 호출되면 메쉬의 모든 부분이 텍스처가 투명하게 보이기를 원하지 않습니다. (비록 내가 최종 fragColor에서 vec4를 사용하지 않는다면)OpenGL 텍스처 대체 재료 색상

첫 번째 이미지에서 나는 두 번째로 적용된 텍스처이지만 두 번째에는 재료 색만 가지고 있지만 재료 색만 가진면은 투명 해집니다

vec4 tex = texture(texsampl,fTexCoord); 
fFragColor = ambient + (diffuse*tex) + specular; 
+1

캔트 포스트 이미지, 10 이하의 명성 ... = ( – bruchuck

답변

0

단지 소재 색상은 투명하게 .. 내 조각 쉐이더에서

, 나는 그런 일이있다.

글쎄, 값을 추가하는 것입니다. 예상되는 것입니다. 대신에 mix (= s*a + d*(1-a), 여기서 s와 d는 머티리얼이고 텍스처는 a이고 일부 블렌딩 인수) 또는 slerp과 같은 블렌딩 함수를 사용해야합니다.

+0

확산, 반사 및 ambinet 구성 요소가 합으로 일을 이미 혼합이다. 내가 ATI 그래픽 카드를 사용하고 있습니다. 분 전에 대해 내가 엔비디아 테스트 그리고 모든 것이 잘 작동 했으므로 ... ATI/AMD OpenGL 드라이버 버그 ... – bruchuck

+0

@ bruchuck : 가능하지만 더 많은 소스 코드가 없으면 알 수 없음 – datenwolf

+0

새 버전의 드라이버가 문제를 해결했습니다. – bruchuck