2009-03-27 5 views
1

여러 장소에서 성능을 위해 텍스처 아틀라스를 사용하는 것이 좋습니다. Apple은 gltexcoordpointer 함수를 제안합니다. 나의 예에서는 사각형 하나 하나에 각각 임의의 텍스처가 주어진다. 임의의 텍스쳐를 수퍼 텍스쳐에 넣었습니다. 이제 문제는 texcoordarray를 만들 수없는 것입니다. gltexcoordpointer가 선택한 서브 텍스처를 꼭지점 좌표에 어 세이하는 방법에 대한 정보는 찾을 수 없습니다. 정점은 triangle_strip을 사용하여 이상적으로 그려지지만 삼각형도 잘 작동합니다.triangle_strip 또는 triangles로 텍스처 아틀라스를 구현합니다. iPhone OpenGL

답변

0

gltexcoorpointer는 1-1 기준으로 텍스처 좌표를 할당합니다. 그래서 삼각형으로 그려야했고 많은 정점이 반복되어야했습니다. 버텍스를 공유 할 수없는 이유는 공유 버텍스가 동일한 텍스처 좌표를 갖고 있기 때문입니다.

1

텍스처를 전혀 렌더링하지 않으려면 glTexCoordPointer을 사용해야합니다. 그러나 UV 좌표계 내에서 텍스처를 이동하려는 경우 언제든지 텍스처 좌표 배열의 개별 항목을 자유롭게 조작 할 수 있습니다. 나는이 같은 기능을 사용

- (void) shiftTextureUVY:(float)shift { 

    textureVertices[1] += shift; 
    textureVertices[3] += shift; 
    textureVertices[5] += shift; 
    textureVertices[7] += shift; 

} 
- (void) shiftTextureUVX:(float)shift { 

    textureVertices[0] += shift; 
    textureVertices[2] += shift; 
    textureVertices[4] += shift; 
    textureVertices[6] += shift; 

} 

GL_TRIANGLE_STRIP를 사용하여 기본 TextureAtlas 클래스를 만들 수 있습니다. 비슷한 방법으로 반향과 왜곡을하면 정말 펑키해질 수 있습니다.