2017-12-11 9 views
0

타일링 된 맵 편집기를 사용하여 libgdx에서 게임의 타일 맵을 생성합니다. 두 개의 타일 레이어를 가진 단순한 맵을 만드는 동안 많은 텍스처 바인딩이 발생한다는 것을 알았습니다. 나는 2 개의 패킹 된 타일셋을 사용하고 있고 개별적인 png는 사용하지 않고있다.TiledMap 많은 추가 텍스처 바인딩이 발생하는 레이어

예를 들어, 여기에는 2 개의 타일 세트가있는 2 개의 타일 레이어가있는지도가 있습니다. 바위, 나무 및 기타 물체가 다른 타일 세트에있는 동안 흙은 1 개 타일 세트에서 나옵니다. 2 layers

이렇게하면 25 개의 텍스처 바인딩이 발생합니다.

그러나 바위, 나무 등으로 레이어를 삭제하고 오물을 남기면 텍스처 바인딩 1 개가 생깁니다.

1 layer

이를 달성하는 더 좋은 방법이 있나요? 다시 말하지만 타일에 개별 PNG를 사용하지 않고 2 개의 타일 세트로 포장됩니다. 이것에 대한 해결 방법은 무엇입니까? 모든 것을 1 개의 타일 세트에 담을 수 있을까요? 나는 80+ 텍스쳐 바인딩을 유발하는 맵을 가지고있다.

정말지도를 렌더링하는 이상한 아무것도 안하고 중 하나가 타일에 의해 각 타일, 타일 렌더링처럼

class MapRenderer { 

    private TiledMapRenderer tiledMapRenderer; 

    public MapRenderer(TiledMap tiledMap, float tiledMapScale, Camera camera) { 

     tiledMapRenderer = new OrthogonalTiledMapRenderer(tiledMap, tiledMapScale); 
     tiledMapRenderer.setView((OrthographicCamera) camera); 
    } 

    public void update() { 

     tiledMapRenderer.render(); 
    } 
} 

가 정렬 보인다. 텍스처 바인딩을 줄이는 더 좋은 방법은 각 타일을 타일 세트로 렌더링하는 것입니다.

+0

"텍스쳐 바인딩을 줄이는 더 좋은 방법은 각 타일을 타일 세트로 렌더링하는 것입니다." 그래서 가장 쉬운 방법은 - "모든 것을 1 개의 타일 세트로 포장"하는 것입니다. 아니면 타일을 어떻게 든 정렬 할 수 있습니다. 먼저 타일 세트에서 모든 타일을 그리고 다른 타일 세트에서 타일을 그립니다. – Arctic45

+0

몇 가지 명확한 질문 : 1) 왜 "바위가있는 레이어를 삭제하면 ..."라고 말합니까? 스크린 샷은 삭제 된 흙 층입니까? 2) 레이어 중 하나를 삭제하면 텍스처 바인딩이 1 개 발생합니까? – Arctic45

답변

1

타일 된 맵을 만들 때 각 타일셋에서 타일에 대해 별도의 레이어를 만듭니다. 이렇게하면 각 타일셋에 대해 단 하나의 여분의 바인딩을 갖게됩니다.

+0

잘 모르겠습니다. 각 층마다 하나의 타일 세트의 타일 만 있어야한다고 말하는 것입니까? 그렇다면 여전히 많은 텍스처 바인딩이 발생합니다. –

+0

그건 이상합니다. OrthogonalTiledMapRenderer.render() 구현을 살펴보면 레이어가 하나씩 차례로 그려지는 것을 볼 수 있습니다. 따라서 각 레이어에 하나의 타일 세트 (타일 하나부터 정확히)의 타일이 포함되어 있으면 텍스처 바인딩 수가 달라져야합니다. 타일셋 수와 같다. 자, 몇 시간 후에 Tiled Map Editor가 맵을 생성하는 방법을 자세히 살펴보고 이유를 찾으면 알려 줄 것입니다. – Arctic45

+1

죄송합니다. 다시 시도해 보니 틀 렸습니다. 레이어의 모든 텍스처가 1 타일셋에서 나온 경우에는 하나의 바인딩 만 얻습니다. 일종의 끌기의 종류, 그러나 나는 그것으로 일해야 할 것이라는 점을 짐작한다. –