2011-08-27 3 views
0

OpenGL에 대한 경험이 없지만 문제를 해결하기 위해 약간의 스 니펫이 필요합니다. 메쉬, 스퀘어가 있으며 2 개의 텍스처를 적용해야합니다 : 1 FrontSide와 1 BackSide.OpenGL Texturing mesh FrontSide and BackSide

mTextureIds = new int[1]; 
gl.glGenTextures(1, mTextureIds, 0); 
// Set texture attributes. 
gl.glBindTexture(GL10.GL_TEXTURE_2D, mTextureIds[0]); 
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR); 
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR); 
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE); 
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE); 
gl.glBindTexture(GL10.GL_TEXTURE_2D, mTextureIds[0]); 
GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, mBitmapFrontSide, 0); 
gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY); 
gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, mTexCoords); 

누군가가 나를 도울 수 : 이 텍스처 프론트 사이드를 적용하는 코드는?
1] 앞면 2면과 앞면 1면이 가능합니까?
2] 일부는 스 니펫을 게시하거나 튜토리얼 또는 기타 자료를 나타낼 수 있습니까?
감사합니다.

답변

2

쉐이더를 사용하지 않는 것 같으므로 가장 쉬운 방법은 백 페이스 컬링을 사용하는 것입니다. 한면을 도려내기로 오브젝트를 렌더링 한 다음 텍스처를 변경하고 반대면이 렌더링되도록 렌더링하십시오.

+0

메쉬가 "유연한"sqare이고 양쪽면을 동시에 볼 수 있기 때문에 텍스처를 람다 (rander)로 변경하는 해결책은 해결책이 아닙니다. 그래서 유일한 다른 솔루션은 사용 쉐이더입니까? – Neo1975

+0

@ Neo1975 : 삼각형은 정의 상 평면입니다. 개별 삼각형의 한 면만 볼 수 있습니다. 따라서 한면이 도려내지면서 렌더링 된 삼각형은 _ 반드시 다른면과 함께 렌더링되지 않습니다. 따라서 메시의 각 삼각형 구성 요소가 두 패스 중 하나에서만 표시 될 수 있으므로 설명 된대로 메쉬를 렌더링 할 수 있습니다. –

+0

@ Nicole 맞습니다. 나는 이것에 대해 조사해야한다. 읽으려는 것을 제안 하시겠습니까? 다른 밴드는 같은 좌표로 2 스퀘어를 사용하면 내 questi를 해결할 수 있습니까? – Neo1975