Power by Lenshuang~2+3D Game Vfx Base since 2003~2014
  • 2010年12月09日

    Gamebryo Material Bitmap - [Gamebryo教程]

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://www.blogbus.com/lenshuang-logs/87727934.html

    ◈ Gamebryo 씬에 텍스처를 추가할 때는 다음과 같은 네가지 사항 즉, 텍스처의 면적, 텍스처의 종횡비, 필터링 효과, VRAM의

      크기에 주의해야 합니다. VRAM은 실제 그래픽 카드에 있는 메모리로, 렌더링 하드웨어가 빠르게 액스할 수 있습니다.

      프레임버퍼(스크린을 그리고 디스플레이 하는 데 쓰이는 VRAM 부분)와 Z-buffer는 둘 다 VRAM의 일부를 차지하고 있기

      때문에 텍스처에 사용 할 수 있는 메모리의 양을 감소 시킵니다. 

      VRAM에 들어갈 수 있는 것보다 더만흔 텍스처를 사용하는 것이 가능한데 이런경우 그래픽 카드는 렌더링에 필요하다면

      언제든지 시트템 메모리로부터 텍스처를 가져올 것입니다.

      이 프로세스는 텍스처를 VRAM에서 가져오는 것보다 훨씬 느리기 때문에 PCI그래픽카드에선 절대적으로 피해야 하며,

      AGP 그래픽 카드에선 VRAM의 범람(overfow)을 완전히 피할 필요는 없지만, 시스템 메모리로부터 더 많은 텍스처를 가져와야

      함에 따라 퍼포먼스가 여전히 저하될 것입니다.

      (모든 텍스처를 VRAM에 맞춤으로써) 이 문제를 전체적으로 피하는 것 말고는 시스템 메모리로부터 텍스처를 가져오는 작업을

      개선하기 위해 팔 수 있는 일은 거의 없습니다. 

    ◈ Gamebryo 텍스처링 문제는 하드웨어 "2 승수" 문제입니다.

      디폴트로 , GAmebryo 3ds max Plug-in은 질은 떨어지나 그 속도는 빠른 사이즈 조정 기술을 사용하여 2의 제곱이 아닌 모든

      텍스처를 적절한 크기로 줄입니다.

      이 기술은 프로토타입에는 괜찮으나 최종 asset을 익스포트 하기 전에 모든 이미지를 2 승수로 조정하는 것이 좋습니다.

      메인 익스포트 다이얼로그에는 2의 제곱이 아닌 텍스처를 익스포트 하게 해주는 익스포트 옵션이 있지만 이 옵션이 체크된

      상태에서는 2의 제곱이 아닌 텍스처에 mip-mapping을 사용할 수 없습니다.

      이 텍스처는 trilinear 보간(interpolation)대신 bilinear보간을 사용 할 것입니다. 

    ◈ Gamebryo의 텍스처는 정사각형일 필요는 없으나 극단적인 종횡비는 VRAM을 조각냅니다.

      이 조각내기가 발생하는 이유는, 이상한 모양의 텍스처는 규칙적인 모양의 텍스처를 패킹하는 것만큼 쉽지가 않기 때문입니다.

      일반적으로 8:1 보다 작은 종횡비만 사용해야 하는데, 추가적으로 텍스처 크기의 기본세트를 정해야 합니다.

      똑같은 면적의 텍스처들은 VRAM에서 서로 쉽게 교체되므로 VRAM의 관리 체계가 빨라지나, 서로 다른 크기의 텍스처가

      너무 많으면 그 교체 기반의 텍스처 관리 체계가 무너질 것 입니다.  

    ◈ 지원되는 텍스처

      - NIF, TGA, BMP, PNG, DDS, SGI, HDR

      - JPG 등의 다른 이미지 타입은 내부 텍스처나 외부 NIF 텍스처로 익스포트 되는 경우를 제외하고 지원되지 않습니다.

      

    1. Coordinates Panel

      - Mapping 타입은 "Explicit Map Channel"만 지원됩니다.

      - UV Offset과 Tiling이 지원되며 독립적으로 애니메이트 시킬 수 있습니다.

      - Mirror는 지원되지 않으며, Tile은 지원됩니다.

      - Angle 중에선 W만 지원되고 애니메이트 시킬 수 있습니다.

      - Blur와 Blur offset은 지원되지 않습니다. 

    2. Noise

      - 지원되지 않습니다.

    3. Bitmap Parameters

      - Filtering 모드는 mip-mapping이 수행되는지의 여부를 결정합니다.

        Pyramidal fitering은 TRILERP을 수행하고, Summed Area 는 BILERP을 수행합니다.

        None 는 mip-mapping을 수행하지 않고 Nearest-Neighbor 필터링을 수행합니다.

      - Pyramidal filtering 은 텍스처의 VRAM크기를 1.3배까지 증가시킵니다.(summed area나 none과는 반대로)

        Pyramidal filtering이 작동됐을 때는 텍스처를 필터 레벨(이 필터 레벨에서 각 레벨은 전 레벨의 4/1크기가 됨)과 저장해야

        합니다.

        Pyramidal filtering에선 텍스처의 얼라이싱(aliasing)이 개선되겠지만 VRAM에서 공간에 대한 비용을 치르게 되어

        씬의 시각적 품질을 향상시키며 거의 모든 경우에 쓰이긴 하지만 Pyramidal filter가 적용된 텍스처는 필요한 메모리를

        1.3배까지 증가시키게 됩니다.

         

      - Mono Channel Output 및 RGB Channel Output은 지원되지 않습니다. 

    4. Time

      - IFL 파일이나 AVI파일과 같이 애니메이션이 적용되는 이미지에 대해 완벽히 지원됩니다.

    5. Output

      - 지원되지 않습니다. 

    ◈ 플러그인 Add/Remove Texture Export Attributes 으로 생성되는 패널입니다.

      - 게임브리오 익스포트 옵션에서 설정하는 옵션과 동일한 것으로 좀 더 세부적으로 설정할 수 있으며,

       메트리얼마다 개별적으로 익스포트 옵션을 설정 할 수 있게 해줍니다.

    1. Selected Platform

      - 픽셀의 퀄리티 설정을 플랫폼 당 토글하게 해줍니다. 

    2. Use Current Platform For All

      - Pixel Quality 설정이 모든 플랫폼에서 같아지게 만들며, 모든 프랫폼에 적용되는 Quality 옵션에만 이 옵션을

       선택할 수 있습니다.

       이 옵션을 선택하면 플랫폼 특정 옵션은 선택할 수 없습니다. 

    3. Export Mode

      - Global Settings : 텍스처 익스포트 모드가 Export dialog(게임브리오 익스포트 시 옵션)에 나온대로 설정됩니다.

      - Internal To NIF : 현 메트리얼 텍스처 맵을 NIF 파일 안에 둡니다.

      - External NIF tecture : 현 메트리얼 텍스처 맵을 별개의 외부 NIF 파일로 둡니다.

      - Original Images : Gamebryo가 원본 이미지를 로드하게 합니다.

      - Original Images VRAM : 직접 렌더러에 로드된 원본 이미지를 사용합니다. 

    4. Filtering

      - 이 서브 패널에선 텍스처를 렌더링 할 때의 mip-mapping과 filtering이 일어나는 방식을 설정 할 수 있습니다.

        이 값은 Bitmap rollout의 Pyramidal/Summed Area/None 값을 오버라이드 합니다.

      - Pyramidal과 똑같은 결과를 얻으려면 Filter Mode를 Linear 설정하고 Mip-Mapping Mode도 Liear로 설정해야 합니다.

      - Summed Area와 똑같은 결과를 얻으려면 Filter Mode는 Linear로, Mip-Mapping Mode는 Off로 설정해야 합니다.

      - None과 같은 결과를 얻으려면 Filter Mode는 Neatest로, Mip-Mapping Mode는 Off로 설정해야 합니다. 

    5. Final Pixel Quality

      - Image Default : 텍스처 압축을 하지 않고 익스포트 합니다.

      - Use Global Settings : Export dialog(게임브리오 익스포트 설정)에 설정된 값을 따라갑니다.

      - 32bit / 16bit / 8bit : 해당 비트수를 가진 텍스처 파일로 압축되어 익스포트 됩니다.

      - DXT1 / DXT3 / DXT5 : DDS로 압축해서 익스포트 됩니다.(보통은 DXT1로 익스포트 하나 알파가 있거나 특정 텍스처는

                                        DXT3이나 DXT5로 익스포트 해야 합니다.)

      - 당연히 각각의 압축형식에 따라 용량 차이와 미세한 퀄리티 차이가 있습니다. 

    6. Final Texture Size

      - 이 옵션은 mip-map pyramid 중에 적당한 레벨을 선택해서 이를 최상위 mip-map 레벨로 만듭니다.

        (쉽게 말해 1, 2, 3, 4 의 mip-map이라면 1을 버리고 2를 최상위로 올려 2, 3, 4의 mip-map으로 만드는 것인데 단순하게

         텍스처의 사이즈가 줄어든다고 생각하면 됩니다.)

        그 결과 흐릿한 텍스처(blurry texture)가 만들어 질 수 있으나, 메모리 사용량이 상당히 줄어들게 됩니다. 

    7. MipMap Pyramid

      - 이 custom attribute는 완전히 맞춤형의 mip-map pyramid를 생성하게 해줍니다.

      - Auto-Generate Mip-Maps : 이 옵션은 custom mipmap 아이콘들을 enable/disable 시킵니다.

                                                수동으로 mipmap을 생성할 시 체크를 해제시킵니다.

      - Mip-Map Levels : 각 레벨은 그 면적이 정확하게 전 단계 이미지 크기의 반의 되는 비트맵 이미지로 지정해야 합니다.

                                  2의 제곱이 아닌 텍스처의 경우 한 레벨의 치수가 홀수이면 나눗셈 결과는 반올림 되고, "View" 버튼을

                                  사용해서 각 레벨을 볼 수 있습니다.

    分享到: