Compression
-
Upload
freya-house -
Category
Documents
-
view
28 -
download
2
description
Transcript of Compression
Compression2009.5.10 이창희
무엇을 압축하는가 ?
•Vertex•Texture•Animation•ETC
Vertex 압축•Float(4Byte) 를 단위로…
•FixedPoint▫Icon2008 애니메이션을 위한 최적화 기법
•UBYTE4▫UBYTE4: 0~255 범위의 unsigned char 형 4
개▫UBYTE4N: 0~1 범위의 unsigned char 형 4
개
Vertex 압축 (Cont.)• Texcoord
▫ -1.0~1.0 의 float 값▫Float2->Short2(4) 로 압축 (FixedPoint)
• Normal/Tangent/Binormal▫ -1.0~1.0 의 float 값▫Float3->UBYTE4N(4) 로 압축
-1.0~1.0 의 범위를 0.0~1.0 의 범위로 scale 필요 .• SkinWeights/SkinJoints
▫Weight(0.0~1.0), Joints(0~x)▫Float4->UBYTE4N(4), Float4->UBYTE4(4) 로 압축
범위 내에 값이 존재함으로 , 따로 변환하지 않는다 .
Vertex 압축 (Cont.)
•Tip▫압축 결과 Quality 를 눈으로 비교하여 , 적절히
적용한다 .▫UBYTE4 형을 지원하지 않는 그래픽카드의 지원을
고려해야 한다면 , COLOR(DWORD) 형을 이용하거나 다른 방법을 사용해야 한다 . Color 와 UByte4 는 rgba 의 순서를 다르게 저장 . 실제 “콜오브듀티4 ”의 오류 중 하나의 예 .
Texture• .dds 로 압축• NormalMap 을 압축할 경우 , 압축 형식 (DXT1, DXT5,
DXT5nm) 에 따라 shader 내부에서 Sample 을 처리한다 .• http://developer.nvidia.com/object/real-time-norm
al-map-dxt-compression.html• 2048x2048 Texture
▫ TGA: 16.4M-> DXT5: 5.4M(mipmap 포함 )
Animation
• Icon2008 애니메이션을 위한 최적화 기법▫Quaternion 압축▫Key Sample 압축
기타•HDR
▫0~255 칼라 이상을 저장하기 위해서 , 보통 A16B16G16R16F 에 저장 .
▫PixelShader 에서 최종색상을 출력할 때 , 색상을 ½ 로 나누어서 저장하면 , A8R8G8B8 포맷 텍스쳐에 저장이 가능
Reference
•http://kimsama.egloos.com/1901622•Nebula3 (April2009-SDK)• http://gamecode.org