Texture Atlases (텍스쳐 아틀라스)

A texture atlas image from Penguflip


이전의 모든 예제에서 임베디드된 비트맵을 통해 바로 텍스쳐로 만들었더라도 , 실제 애플리케이션에서는 그래선 안됩니다. 그 이유는..

Even if all the previous samples created textures directly from embedded bitmaps, a real application should not do that. Here's why.


    - 스탈링은  한번의 GPU 호출로 가능한한 많은  Quad / Image 렌더링을 일괄처리합니다.  이러한 배칭 프로세싱(일괄처리)은 텍스쳐가 바뀔때 마다 중단됩니다.
       Starling batches the rendered Quads/Images to draw as many as possible with only one GPU call. Batch processing has to be stopped whenever the texture chang

    - Stage3D 에서 사용되는 텍스쳐는,  높이와 너비가 각각 2제곱이어야 합니다.
     스탈링은 이 제한을 숨기고 있긴 하지만 그럼에도 불구하고 이 규칙을 따르지 않는다면 당신은 많은 메모리 사용하게 될것입니다.
      To use a texture in Stage3D, its height and width must each be a power of 2.
      Starling hides this limitation from you, but you will nevertheless use more memory if you do not follow that rule.



텍스쳐 아틀라스 를 사용을 통해, 텍스쳐 전환 과 2제곱제한 둘 모두 방지할 수 있습니다.

By using a texture atlas, you avoid both the texture switches and the power-of-two limitation.


모든 텍스쳐들은 큰 하나의 슈퍼 텍스쳐에 포함되어 있으며, 이 텍스쳐의 적절한 부분을 스탈링이 담당하여 표시하게 됩니다.

(몇몇 프레임워크에서는 이 기능을 스프라이트시트 라고 부릅니다.)

All textures are within one big “super-texture”, and Starling takes care that the correct part of this texture is displayed.

(Some other frameworks call this feature “Sprite Sheets”.)


텍스쳐 아틀라스 의 장점에 대한 더 많은 정보를 원한다면 TexturePacker 의 저자 Andreas Löw 가 제작한

훌륭하고 (그리고 재미있는)  이  video 를 보기를 권장합니다!

To find out more about the advantages of texture atlases, I recommend you have look at this great (and funny!)

 video created by Andreas Löw, the author of TexturePacker.


How to use them (사용방법)


스탈링에서, 텍스쳐 아틀라스 는 매우 사용하기 쉽고, 그래서 당신은 분명히 이 기능을 활용할 것입니다.

In Starling, a texture atlas is very easy to use, so you should definitely take advantage of this feature.


각 서브 텍스쳐들의 위치는 아래처럼 XML 파일에 정의 되어 있습니다.

The positions of each sub-texture are defined in an XML file like this one:


<TextureAtlas imagePath="atlas.png">
 <SubTexture name="moon" x="0" y="0" width="30" height="30"/>;
 <SubTexture name="jupiter" x="30" y="0" width="65" height="78"/>;
 ...
</TextureAtlas>;

하지만 수동으로 텍스쳐 아틀라스를 만들 필요는 없습니다. 아래의 툴중에 하나를 사용할 수 있습니다.

You don't have to create a texture atlas manually, though. You can use one of the following tools:


    - TexturePacker 는 GUI 와 커맨드라인이 사용가능한 훌륭한 소프트웨어중 하나입니다.( 상업적으료 이용 가능하고 무료)

      TexturePacker is a great piece of Software that can be used with a GUI or via the command line (available in a free and commercial version).

    - 스탈링의 형제 프레임워크인 Sparrow 에 포함된 심플한 아틀라스 생성기. Sparrow 를 다운로드 하면 sparrow/util/atlas_generator 폴더에 위치합니다.
      같은 폴더에 있는 README 파일에서 인스톨방법 및 사용법을 알 수 있습니다.
      
        Starling's sister framework Sparrow contains a simple atlas generator. Download Sparrow and locate it in the folder sparrow/util/atlas_generator.
        The README file in the same folder shows you how to install and use it.



Andreas Löw 는 스탈링 사용자가 그의 툴중 하나를 구입할 때 우리와 수익의 일부를 공유하며 우리를 지원합니다. 

만약 TexturePacker 를 구입하기로 결정했다면, 다음 링크를 이용하면 좋을거에요 : Purchase TexturePacker

컴퓨터의 부하를 줄이기 위해 하나의 큰 텍스쳐에 작은 텍스쳐를 모두 넣고 원하는 UV 좌표를 사용해 보도록 하자.


 SpaceRocksAtlas.png 첨부이미지 미리보기


자 위와같이 한 장의 시트지를 스프라이트 시트(Sprite Sheet) 또느 텍스쳐 아틀라스(Texture Atlas)라고 한다.

그리고 각 이미지 사이에 최소한 2픽셀은 간격이 있어야 한다.

그러면 아래와 같이 .plist 파일에 이미지 정보를 넣도록 한다. 

먼저 위의 파일을 드래그하여 리소스에 넣어준 다음 아래와 같이 파일을 만든다.

아래와 같이 선택하고

파일이름도 지정하면

빈 화면이 나오고 이제 밉맵핑 데이타를 기록한다.

아이템을 추가하여

제목과 종류를 넣고

이제부터는 +버튼을 눌러

계속 만들어갈 수 있다.

다음과 같이 아틀라스 내의 좌표와 사이즈, 이름 등 6개씩 들어있는 아이템을


총 20개를 만들어 주어야 하는데,


 SpaceRocksAtlas.plist


파일을 다운로드 받아 폴더에 복사하시면 된다.

새로 프로젝트 열면 내용이 다 들어온 것을 알 수 있다.


이렇게 준비가 되면 프로그램에 들어가 보도록 하겠다.

오늘은 여기까지 입니다. (별 내용도 아닌데 저는 엄청 시간걸리고 고생했습니다. ㅠㅠ)



'게임개발공부 > 무작정퍼오기' 카테고리의 다른 글

dll의 기본. (퍼온글)  (0) 2013.12.21
컨테이너 종류 복습  (0) 2013.12.21
맴버함수를 쓰레드로 쓰는법  (0) 2013.11.27
assert 사용법  (0) 2013.11.27
<소켓 서버> sockaddr  (0) 2013.11.25
Posted by JJOREG