2017-04-19 8 views
1

libGDX를 사용하는 동안 화면에 그릴 텍스처가 정확한 픽셀로 그려지지 않는 경우가 있지만 여러면에서 다른 텍스처의 가장자리의 작은 부분으로 그려지는 경우가 있습니다 (예 : 여기 머리카락 위쪽의 픽셀 행이 플레이어의 발 아래로 렌더링됩니다).왜 libGDX TextureAtlas가 스프라이트 시트 텍스처를 부적절하게 렌더링합니까?

Working properlyBlack line below feet

내가 다른 크기로 내 게임을 확장 할 때, 검은 선은 난 단지 텍스처 이웃하고 있다고 가정 할 수 있는지의 측면에 나타납니다. TextureAtlas 파일에서 텍스트 필드의 글꼴을 렌더링 할 때

enter image description here

나는 같은 문제를 얻을.

Nearest Neighbor를 사용하여 TextureAtlas에서 이러한 텍스처를로드합니다. 여기 내 스프라이트 시트이며,이 내 TextureAtlas는 스프라이트 시트

enter image description here

player.png 
size: 64, 128 
format: RGBA8888 
filter: Nearest,Nearest 
repeat: none 
player1moveDown 
    rotate: false 
    xy: 0, 0 
    size: 10, 16 
    orig: 10, 16 
    offset: 0, 0 
    index: 1 
player1moveDown 
    rotate: false 
    xy: 10, 0 
    size: 10, 16 
    orig: 10, 16 
    offset: 0, 0 
    index: 2 
player1moveDown 
    rotate: false 
    xy: 20, 0 
    size: 10, 16 
    orig: 10, 16 
    offset: 0, 0 
    index: 3 

에서 제작 된 선택이 어떤 논리적 인 설명 내 TextureAtlas 완벽하게 이미지를 절단하지 않는 이유에 거기에있다?

후속 질문으로 해결할 수있는 것이 있습니까? 아니면 각 텍스처 주위에 투명 패딩을 추가해야합니까?

편집 : GUI TexturePacker에서 설정을 찾았습니다. "스프라이트"아래 창의 오른쪽 측면에서 당신은 아틀라스 완벽하게 차단되어있는 "모양 패딩"값

enter image description here

답변

2

을 수정하여 각 조직 사이의 공간을 변경할 수 있지만, 정밀이 발생할 수 있습니다 플로트 수 텍스처에서 샘플링 할 때 문제가 발생합니다. 해결책은 아틀라스에서 이미지 사이에 투명 공간을 두는 것입니다. TexturePacker를 사용하면이 작업이 완료됩니다.