2009-08-05 5 views
4

내 iPhone 게임에서 PVR 텍스처 압축이 모두 행복하고 훌륭하게 작동하지만 여러 텍스처를 함께 타일링 할 때 문제가 있습니다. 기본적으로 저는 512x512 타일로 분할 된 매우 큰 배경을 가지고 있습니다. 모든 PVR은 압축되었습니다. 그런 다음 하나의 큰 배경 이미지처럼 보이도록 함께 그려집니다. 마치 PVR 압축을 수행하는 방법을 결정하기 위해 이웃의 바둑판 식 정보를 사용하는 것과 같이 텍스처를 압축하는 것으로되어 있다는 것을 모르기 때문에 PVR이 작동하는 방식입니다.PVR 텍스처 압축 타일링 (가장자리 컨텍스트 노출)

어쩌면 몇 가지 방법으로 생각할 수 있습니다.

1) 어떻게 든 인접한 다른 이미지를 수용하기 위해 texturetool 명령 줄 프로그램에 알려줍니다.
2) 명령 줄 프로그램을 사용하여 전체 이미지를 나타내는 거대한 PVR 텍스처를 생성 한 다음 바이트를 여러 이미지로 분할하여 불가능할 수 있습니다.
3) 가장자리를 멋지게 조화시키는 일종의 OpenGL ES 속임수를 사용하십시오.
4) 각 타일에 중복 된 정보가있는 까다로운 작업을 한 다음 텍스쳐를 그릴 때 해당 영역을 클립하십시오 (아니오로주십시오).

바라기를 나는 1, 2 또는 3을 할 수 있고 다른 잘 알려진 해결책이 있습니다.

답변

4

나는 옵션 4로 끝났다. 나는 이것이 PVRTC가 적절하지 않은 상황이 아니라고 생각한다. 사실 그것은 거의 필수적이다. 한 번에 총 24 개의 512x512 텍스처를 메모리에 쌓았을 때 (아주 큰 배경과 전경을 나타냄), 압축되지 않은 상태로 두는 것은 자살입니다. 그래서 PVR 압축을 정상적으로 사용했고, 타일링 알고리즘에서 몇 줄의 코드를 편집하여 각 끝에 15 픽셀을 겹치게했습니다. 보일라, 좋아 보인다. 며칠이 걸려 꽤 짜증나지만, 아이폰에 아주 큰 바둑판 식 배경이 필요한 사람들에게 좋은 옵션이라고 생각합니다.

+0

왜 저에게 -1을 주었습니까? – Eli

1

내 조언은 사용자가 묻는 것이 아니고 PVRTC가 적절하지 않은 경우를 아는 것입니다. 지금까지 가장 간단한 해결책은 그 타일에 PVRTC를 사용하지 않는 것입니다. PVRTC를 구부리기 위해 많은 시간을 쏟아 부어 상황에 맞지 않게 작업했습니다.

PVRTC를 사용 감촉이 항상 (자체) 타일로 가정 상기

는 이와 우단의 화소가 (상부 & 바닥과 같은) 좌단의 화소에 영향을 미친다. 그래서 선택 1 또는 2가 작동하지 않을 것입니다.

알파 채널을 타일에 추가하여 가장자리 주위로 페이드 아웃 할 수 있으므로 오버랩 될 때 서로가 사라집니다. PVRTC는 점차적 인 알파 페이드로 더 잘 작동하는 경향이 있습니다. 단단한 알파 에지에는 종종 PVRTC에 아티팩트가 있습니다.