2011-03-19 4 views
0

웹캠 입력 (OpenCV)을 OpenGL에서 비행기의 질감으로 매핑합니다. 프로그램을 실행할 때 텍스처가 다른 기존 비행기의 색상에 영향을 준다는 것을 알았습니다. 따라서 검은 색 텍스처가 있으면 3D 장면을 볼 수 없습니다. 텍스처가 다른 오브젝트의 색상에 영향을 미치지 않도록 OpenGL에 방법이 있습니까?
원하는 결과는 텍스처가 검정색이면 하나의 면만 검정색이어야하고 다른면은 이전에 정의 된 색상을 유지해야한다는 것입니다.질감이 객체의 색상에 영향을줍니다.

답변

2

OpenGL API는 렌더링 컨텍스트의 상태를 변경합니다. 렌더링 컨텍스트에는 형상 조각을 생성하는 데 사용되는 실제 텍스처도 포함됩니다.

텍스처링을 사용하도록 설정 한 경우 (예 : * glEnable (GL_TEXTURE_2D) *)이 상태 플래그가 설정 될 때까지 그려지는 모든 지오메트리에 적용됩니다. * glDisable (GL_TEXTURE_2D) *를 사용하여 텍스처를 비활성화 할 수 있습니다.

아마 다른 비행기에서 질감을 사용하지 않도록 설정하지 않았는데 실제로 질감이 다른 비행기에도 적용됩니다.

는 다음과 같은 것을 수행해야합니다

glEnable(GL_TEXTURE_2D); 
... 
DrawPlane0(); // This plane is textured 
... 
glDisable(GL_TEXTURE_2D); 
... 
DrawPlane1(); // This plane is not textured 
+0

정말 당신의 도움 루카, 감사 감사! –

관련 문제