2012-06-07 6 views
1

알파 채널이있는 텍스처 큐브가 있고 큐브 주위에 와이어 프레임 상자를 그리기를 원합니다. 내가 겪고있는 문제는 텍스처 된 입방체의 투명한 부분을 통해 와이어 프레임이 보이지 않는다는 것입니다. 뒷면에 와이어 프레임을 표시하려면 어떻게해야합니까? 내 초기화의 혼합 기능을 사용OpenGL에서 알파 텍스처 뒤에 표시되는 와이어 프레임을 어떻게 그립니 까?

glLoadIdentity(); 

glTranslatef(0.0f, 0.0f, z); 

glRotatef(xRotation, 1.0f, 0.0f, 0.0f); 
glRotatef(yRotation, 0.0f, 1.0f, 0.0f); 
glRotatef(zRotation, 0.0f, 0.0f, 1.0f); 

// Draw Textured  
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); 

glEnable(GL_TEXTURE_2D); 
glEnable(GL_LIGHTING); 

glColor4f(1.0f, 1.0f, 1.0f, 1.0f); 

glBindTexture(GL_TEXTURE_2D, _images[_filter]); 

glBegin(GL_QUADS); 
    DrawTexturedCube(); 
glEnd(); 

// Draw Wireframe 
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); 

glDisable(GL_TEXTURE_2D); 
glDisable(GL_LIGHTING); 

glColor3f(1.0f, 0.0f, 0.0f); 

glBegin(GL_QUADS); 
    DrawWireframeCube(); 
glEnd(); 

xRotation += xSpeed; 
yRotation += ySpeed; 
zRotation += zSpeed; 

: 나는 glColor4f에 대해 서로 다른 알파 값을 시도했습니다

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 

여기

내가 두 조각을 그릴 사용하고 코드입니다 텍스처를 그리기 전에는 차이가 나지 않았습니다.

+1

와이어 프레임을 큐브 위에 항상 보이게하거나 와이어 텍스처를 "구멍"으로 표시하고 싶습니까? – Ani

+0

와이어 프레임을 "구멍"을 통해서만 보여주고 싶습니다. 미심쩍은 점이 있으면 알려주세요. – DoryuX

답변

3

깊이 테스트를 사용하도록 설정 했습니까? 내 첫 번째 추측은 이미 질감 된 큐브 (아마도 깊이 버퍼에 작성된)를 그렸기 때문에 같은 Z에서 즉시 와이어 프레임 큐브를 그리는 시도가 깊이 테스트에 실패하고 렌더링되지 않는다는 것입니다.

큐브를 렌더링 한 다음 와이어 프레임을 렌더링하는 순서를 변경하거나 비활성화하십시오.

+1

OP가 전체 큐브 위에 와이어 프레임을 그려보고 싶지만 알파 텍스처의 "구멍"을 통해 보이기를 원합니다. 틀 렸으면 고쳐줘. – Ani

+1

두 번째 요점은 아마도 옳은 대답 일 것입니다. Upvoted. – Ani

+0

감사합니다. 주문을 전환했습니다. – DoryuX

관련 문제