2012-11-11 2 views
0

OpenGL ES를 사용하여 Android에서 비디오 게임을 개발 중입니다. 텍스처의 크기를 재조정하는 데 문제가 있습니다. 이 상수를 사용오픈 그늘의 텍스처 재구성

Display display = getWindowManager().getDefaultDisplay(); 
KTE.SCREEN_WIDTH = display.getWidth(); 
KTE.SCREEN_HEIGHT = display.getHeight(); 
KTE.REDIMENSION_X = KTE.SCREEN_WIDTH/KTE.GAME_WIDTH; 
KTE.REDIMENSION_Y = KTE.SCREEN_HEIGHT/KTE.GAME_HEIGHT; 

:

나는 내 게임은 어떤 해상도와 호환 될 수 있으며,이, 나는이 게임의 해상도와 같은 화면 해상도 사이의 관계와 일정을 만든 싶습니다 , differents 화면 크기를 사용하여 동일한 결과를 얻습니다 (이전에 코드에서 계산 한 상수를 사용하여 모든 텍스처를 다시 크기 조정 함).

문제는 모든 텍스처를 더 크게 만들기 위해 GAME 해상도를 줄이고 싶었고, 텍스처를 둘러싼 블랙 픽셀을 얻었습니다. 그 이유는 리디렉션 상수가 많은 소수점이있는 수레이기 때문이며, 모든 검은 픽셀 이 계산 중에 남겨진 위치입니다 ...

누구나 전에이 문제가 있습니까? 게임을 재 설계하기위한 팁이 있습니까? 나는 많은 일을 시도했고 나는 정말로 붙어 있었다. 감사.

답변

0

질감의 "치수 재조정"이 예상대로 작동하지 않는 것 같습니다. 예를 들어 텍스처의 데이터 크기를 조정하는 것만으로 텍스처 자체는 이전과 같은 크기로 유지됩니다. 이것은 경계에서 검은 픽셀을 설명합니다. KTE.REDIMENSION_X/Y 요소를 사용하여 텍스처를 만들었는지 확인하고 텍스처에 쓸 때 텍스처의 가장자리에 쓰는지 확인하십시오.

게임을 다시 크기 조정하는 경우 렌더링 할 화면 크기를 의미합니까? 이를 위해 간단하게 glViewport (...)를 변경하고 장면을보기 위해 만든 원근감의 절두체 또는 정사각형을 사용해야합니다. 이 두 가지 변경 사항은 일반적으로 화면 크기가 변경 될 때 수행됩니다. 일반적으로 텍스처를 변경하지 않아도됩니다 (예 : 2 배 픽셀이있는 iOS 망막 디스플레이의 경우).