아이폰에서 이미지 스트레치 효과를 만들려고합니다. 버텍스 배열을 만들고 배경 이미지의 임의 반경 내에서 각 인덱스의 텍스처 데이터를 이동합니다. 그런 다음 디스플레이에 다음 호출을 :OpenGL을 사용하면 어떻게 배경 이미지와 더 작은 왜곡 된 텍스처를 결합합니까?
int n = gridSize_.x * gridSize_.y;
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glVertexPointer(3, GL_FLOAT, 0, vertices);
glTexCoordPointer(2, GL_FLOAT, 0, texCoordinates);
glDrawElements(GL_TRIANGLES, n*6, GL_UNSIGNED_SHORT, indices);
//if(num_myindices > 0)
// glDrawElements(GL_TRIANGLES, num_myindices*6, GL_UNSIGNED_SHORT, myindices);
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
내 문제는 32 × 32 또는 64 × 64와 같은 상대적으로 작은 격자 크기와 모양이 매우 고르지 늘어 영역의 가장자리입니다. 더 크면 더 부드럽지만 훨씬 느려집니다.
그래서 배경 이미지의 복사본을 추가하고 영향을받은 인덱스에만 정점 배열을 제한했습니다. 나는 더 작은 격자 크기를 사용하지만 더 작은 영역을 위해.
//glDrawElements(GL_TRIANGLES, n*6, GL_UNSIGNED_SHORT, indices);
if(num_myindices > 0)
glDrawElements(GL_TRIANGLES, num_myindices*6, GL_UNSIGNED_SHORT,myindices);
영향을받는 영역이 표시되지만 배경 이미지가 깜박 내 뻗어 영역은 검은 색 배경에 떠 사라지게 : 이제 위의 그림 코드는 것 같습니다. 분명히 내 배경이 먼저 렌더링 된 다음 위의 코드가 내 버텍스 배열의 데이터를 덮어 쓰고 렌더링합니다.
이미지의 그림을 효율적으로 결합하는 방법에 대한 조언이있는 사람이 있습니까?
배경에 대한 두 번째 간단한 버텍스 배열을 만들고 my if 문 바로 앞에있는 glDrawArray를 호출하여 모든 드로잉이 단일 메서드에서 수행되도록 할 계획입니다. 이게 올바른 방향일까요? 더 좋은 방법이 있습니까? 모든 이미지 데이터를 어떻게 하나의 간단한 정점 배열에 결합해야합니까?
일부 스크린 샷을 추가 할 수 있습니까? 나는 다음과 같은 문제를 겪고있다. – prideout
그걸 설정해야합니다 ... – walt