์ด ๋ฌธ์„œ์˜ ์›๋ณธ์€ ์™ธ๋ถ€ ์œ„ํ‚ค์—์„œ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.
1. ๊ฐœ์š”2. ์ƒ์„ธ3. ๊ธฐ๋ณธ ์›๋ฆฌ4. ์ข…๋ฅ˜
4.1. DXT14.2. DXT2, DXT34.3. DXT4, DXT5
5. ๊ธฐํƒ€6. ๊ด€๋ จ ๋ฌธ์„œ

1. ๊ฐœ์š”[ํŽธ์ง‘]

S3 Graphics์—์„œ ์ž์‚ฌ์˜ Savage3D ๊ทธ๋ž˜ํ”ฝ ์นด๋“œ์šฉ์œผ๋กœ ๊ฐœ๋ฐœํ•œ ํ…์Šค์ฒ˜ ์••์ถ• ํฌ๋งท์ด๋‹ค.

2. ์ƒ์„ธ[ํŽธ์ง‘]

DirectX 6.0๊ณผ OpenGL 1.3์—์„œ ๋ผ์ด์„ผ์‹ฑ๋œ ๊ฒƒ์„ ์‹œ์ž‘[1]์œผ๋กœ, ๋‹Œํ…๋„์˜ ๊ฒŒ์ž„ํ๋ธŒ์™€ ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์˜ ์—‘์Šค๋ฐ•์Šค๋ฅผ ์‹œ์ž‘(ํ”Œ๋ ˆ์ด์Šคํ…Œ์ด์…˜ ์‹œ๋ฆฌ์ฆˆ๋Š” ํ”Œ๋ ˆ์ด์Šคํ…Œ์ด์…˜ 3๋ถ€ํ„ฐ ์ฑ„ํƒ๋˜์—ˆ๋‹ค)์œผ๋กœ ์ฝ˜์†”์—๋„ ์ฑ„ํƒ๋˜๋ฉด์„œ PC์™€ ์ฝ˜์†” ๊ฒŒ์ž„์˜ ํ…์Šค์ฒ˜ ์••์ถ• ํฌ๋งท์˜ ์‚ฌ์‹ค์ƒ ํ‘œ์ค€์— ๊ฐ€๊นŒ์šด ์ง€์œ„๋ฅผ ๋ˆ„๋ฆฌ๊ณ  ์žˆ๋Š” ํฌ๋งท. ์„ธ๋ถ€ ํฌ๋งท์œผ๋กœ DXT1๋ถ€ํ„ฐ DXT5๊นŒ์ง€ ์กด์žฌํ•˜๋‚˜ ๋Œ€๋ถ€๋ถ„ ์•ŒํŒŒ ์ฑ„๋„์ด ์—†๋Š” ํ…์Šค์ฒ˜๋Š” DXT1, ์žˆ๋Š” ํ…์Šค์ฒ˜๋Š” DXT5๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

์ด ํฌ๋งท์˜ ์••์ถ• ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ S3๊ฐ€ ํŠนํ—ˆ๋กœ ๋“ฑ๋กํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—, 2000๋…„๋Œ€ ์ดํ›„ S3๋Š” ์‚ฌ์‹ค์ƒ GPU ๊ฒฝ์Ÿ์—์„œ ๋„ํƒœ๋˜์–ด ๋ชฐ๋ฝํ–ˆ์ง€๋งŒ ์›Œ๋‚™์— ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์ด ํฌ๋งท ๋•Œ๋ฌธ์— ๋ผ์ด์„ผ์Šค๋น„ ์ฑ™๊ฒจ๊ฐ€๋Š”๊ฒƒ ๋งŒ์œผ๋กœ ๋จน๊ณ  ์‚ด์•˜์œผ๋ฉฐ, ์ด๋ฅผ ๋…ธ๋ฆฌ๊ณ  VIA๋‚˜ HTC๋“ฑ์—์„œ ํšŒ์‚ฌ๋ฅผ ์ธ์ˆ˜ํ–ˆ์„ ์ •๋„. 2017๋…„์— ํŠนํ—ˆ๊ฐ€ ๋งŒ๋ฃŒ๋˜์—ˆ๋‹ค.

3. ๊ธฐ๋ณธ ์›๋ฆฌ[ํŽธ์ง‘]

S3TC ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ธฐ๋ณธ ์›๋ฆฌ๋Š” ์ด๋ฏธ์ง€๋ฅผ 4x4 ์˜ 16ํ”ฝ์…€์œผ๋กœ ๋‚˜๋ˆ ์„œ 64bit ๋˜๋Š” 128bit ๋ธ”๋Ÿญ์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ฐ ๋ธ”๋Ÿญ์€ 2๊ฐœ์˜ ์ƒ‰ ๊ทน๋‹จ๊ฐ’(color endpoint)์„ ๊ฐ€์ง€๋ฉฐ ๊ฐ ํ”ฝ์…€์˜ ์ƒ‰์€ ๋‘ ๊ทน๋‹จ๊ฐ’ ์‚ฌ์ด์— ์žˆ๋Š” ์ƒ‰์œผ๋กœ๋งŒ ํ‘œํ˜„๋œ๋‹ค. ์ด๋Ÿฌํ•œ ํŠน์„ฑ ๋•Œ๋ฌธ์— ๊ฐ ๋ธ”๋Ÿญ์€ ๊ต‰์žฅํžˆ ์ œํ•œ๋œ ๊ฐœ์ˆ˜์˜ ์ƒ‰[2]๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ๊ทธ๋ ‡๊ธฐ์— ๊ทธ๋ผ๋ฐ์ด์…˜์ด ๋งŽ์€ ์ด๋ฏธ์ง€๋‚˜ ์ƒ‰์ด ๋งŽ์ด ์‚ฌ์šฉ๋œ ์ด๋ฏธ์ง€์— ์‚ฌ์šฉํ•˜๊ธฐ๋Š” ๋ถ€์ ์ ˆํ•˜๋‹ค. ํ•˜์ง€๋งŒ ์ผ๋ฐ˜์ ์ธ ํ…์Šค์ณ์—์„  ๋‚ฉ๋“์ด ๊ฐˆ ์ˆ˜์ค€์˜ ์ด๋ฏธ์ง€ ์งˆ ์ €ํ•˜๋ฅผ ๋ณด์—ฌ์ค˜ ๊ด‘๋ฒ”์œ„ํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค.

4. ์ข…๋ฅ˜[ํŽธ์ง‘]

4.1. DXT1[ํŽธ์ง‘]

Direct X10 ์ด์ƒ์—์„  BC1์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฐ๋‹ค. ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ํ˜•์‹์œผ๋กœ, 16ํ”ฝ์…€ ๋ฐ์ดํ„ฐ๋ฅผ 64bit๋ธ”๋Ÿญ์œผ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค. ๊ฐ ๋ธ”๋Ÿญ์€ ๋‘๊ฐœ์˜ 16๋น„ํŠธ RGB 5:6:5 ์ƒ‰์ƒ ๊ทน๋‹จ๊ฐ’๊ณผ ๊ฐ ํ”ฝ์…€๋‹น 2๋น„ํŠธ์”ฉ, ์ด 32bit์˜ ํ…Œ์ด๋ธ”์„ ๊ฐ€์ ธ ์ด 4๊ฐœ์˜ ์ƒ‰์ƒ์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‘๊ฐœ์˜ ์ƒ‰ ๊ทน๋‹จ๊ฐ’์„ ๊ฐ๊ฐ , ์ด๋ผ ํ•  ๋•Œ ๋˜๋Š” ์˜ 2๊ฐ€์ง€ ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ์กด์žฌํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, DXT1 ํฌ๋งท์—์„œ๋Š” ์ด ๋‘๊ฐ€์ง€ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋‚˜๋ˆ ์„œ 1bit ์•ŒํŒŒ ์ƒ‰์ƒ์„ ์ง€์›ํ•œ๋‹ค.

๋จผ์ € ์ผ ๊ฒฝ์šฐ, ๋ธ”๋Ÿญ์—์„œ๋Š” ๋‘ ๊ทน๋‹จ๊ฐ’๊ณผ ๊ทธ ์‚ฌ์ด์˜ ๊ฐ’ 2๊ฐœ๋ฅผ ์ด์šฉํ•œ๋‹ค. ์ด ๊ฐ’ 2๊ฐœ๋ฅผ , ๋ผ ํ•˜๋ฉด, , ์ด ๋œ๋‹ค.

๊ทธ ๋‹ค์Œ ์ผ ๊ฒฝ์šฐ์—๋Š” ์ด๊ณ , ์€ ํˆฌ๋ช…์ƒ‰์œผ๋กœ ์ง€์ •๋œ๋‹ค.

์ด๋Ÿฌํ•œ ์••์ถ•๋ฐฉ์‹์œผ๋กœ DXT1์€ 32bit RGBA ์ด๋ฏธ์ง€ ๊ธฐ์ค€ 1:8์˜ ํ›Œ๋ฅญํ•œ ์••์ถ•๋ฅ ์„ ๋ณด์—ฌ์ค˜ ๋งŽ์€ ๊ฒฝ์šฐ์— ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค. ๋‹ค๋งŒ ์ œ๋Œ€๋กœ๋œ ์•ŒํŒŒ์ƒ‰์ƒ์„ ์ง€์›ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ๋กœ ์•ŒํŒŒ ์ฑ„๋„์ด ์—†๋Š” ์ด๋ฏธ์ง€๋ฅผ ์••์ถ•ํ• ๋•Œ ์“ฐ์ธ๋‹ค.

4.2. DXT2, DXT3[ํŽธ์ง‘]

Direct X10 ์ด์ƒ์—์„  BC2๋ผ๊ณ ๋„ ๋ถˆ๋ฆฐ๋‹ค. 16ํ”ฝ์…€ ์ด๋ฏธ์ง€๋ฅผ 128bit ๋ธ”๋Ÿญ์œผ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค. ์ƒ‰์ƒ๊ฐ’์€ DXT1๊ณผ ๋™์ผํ•˜๊ฒŒ ์ €์žฅ๋˜๋ฉฐ, ๊ฐ ํ”ฝ์…€๋‹น 4bit์”ฉ ์ด 64bit์˜ ์••์ถ•๋˜์ง€ ์•Š์€ ๊ฐ’์œผ๋กœ ์•ŒํŒŒ์ฑ„๋„์„ ํ‘œํ˜„ํ•œ๋‹ค. DXT2๊ณผ DXT3 ๋ชจ๋‘ ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ์••์ถ•๋˜๋ฉฐ ๋‘ ํ˜•์‹์˜ ์ฐจ์ด๋Š” ์ด๋ฏธ์ง€๊ฐ€ DXT3๋Š” premultiplied alpha, DXT2๋Š” straight alpha๋ผ๊ณ  ๊ฐ€์ •ํ•˜๋Š” ๊ฒƒ ๋ฟ์ด๋‹ค. ์‹ค์งˆ์ ์œผ๋กœ ๊ฑฐ์˜ ์“ฐ์ด์ง€๋Š” ์•Š๋Š”ํ˜•์‹์ด๋‹ค.

4.3. DXT4, DXT5[ํŽธ์ง‘]

Direct X10 ์ด์ƒ์—์„  BC3๋ผ๊ณ ๋„ ๋ถˆ๋ฆฐ๋‹ค. 16ํ”ฝ์…€ ์ด๋ฏธ์ง€๋ฅผ 128bit ๋ธ”๋Ÿญ์œผ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค. BC2์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ƒ‰์ƒ๊ฐ’์€ DXT1๊ณผ ๋™์ผํ•˜๊ฒŒ ์••์ถ•๋˜์ง€๋งŒ, ์•ŒํŒŒ ์ฑ„๋„๋„ ์ƒ˜ํ”Œ๋ง์„ ๊ฑฐ์ณ ์••์ถ•๋œ๋‹ค๋Š” ์ฐจ์ด์ ์ด ์žˆ๋‹ค. ์•ŒํŒŒ ์ฑ„๋„ ์••์ถ•์€ ์ƒ‰์ƒ ์••์ถ•๊ณผ ๋น„์Šทํ•œ ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰๋˜๋ฉฐ, ๋‘๊ฐœ์˜ 8bit ๊ทน๋‹จ๊ฐ’๊ณผ ํ”ฝ์…€๋‹น 3bit์”ฉ ์ด 48bit์˜ ํ…Œ์ด๋ธ”์„ ๊ฐ€์ง„๋‹ค. ์•ŒํŒŒ๊ฐ’ ์••์ถ•๋„ ๊ทน๋‹จ๊ฐ’์˜ ์ˆœ์„œ์— ๋”ฐ๋ผ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋‚˜๋ˆ ์„œ ์ข€ ๋” ์ •๊ตํ•œ ์•ŒํŒŒ ์ƒ‰์ƒ์„ ๊ตฌํ˜„ํ•œ๋‹ค.

DXT1 ์••์ถ•์„ ์„ค๋ช…ํ• ๋•Œ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ทน๋‹จ๊ฐ’์„ , , ๋‹ค๋ฅธ ์ƒ‰์ƒ๋“ค์„ (์ด ๊ฒฝ์šฐ์—๋Š” ํ…Œ์ด๋ธ”์ด 3bit์ด๋ฏ€๋กœ ๊นŒ์ง€)์œผ๋กœ ํ‘œํ˜„ํ•ด์„œ ๋‚˜ํƒ€๋‚ด๋ฉด ๋จผ์ € ์ธ ๊ฒฝ์šฐ์—๋Š” , ๊ณผ ๊ฐ™์ด ๊ทน๋‹จ๊ฐ’ ์‚ฌ์ด๋ฅผ ๊ท ๋“ฑํžˆ ๋‚˜๋ˆˆ ๊ฐ’์œผ๋กœ ๊นŒ์ง€ ํ‘œํ˜„๋œ๋‹ค.

๋ฐ˜๋ฉด ์ธ ๊ฒฝ์šฐ์—๋Š” , ๊ฐ€ ๋ฐฐ์ •๋˜๋ฉฐ ๋‚˜๋จธ์ง€ ๊ฐ’๋“ค์€ , ์™€ ๊ฐ™์€ ์‹์œผ๋กœ ์ •ํ•ด์ง„๋‹ค.

BC3์—์„œ์ฒ˜๋Ÿผ DXT4, DXT5์˜ ์ฐจ์ด๋Š” ์ด๋ฏธ์ง€๋ฅผ DXT5๋Š” premultiplied alpha, DXT4๋Š” straight alpha๋ผ๊ณ  ๊ฐ€์ •ํ•˜๋Š” ๊ฒƒ ๋ฟ์ด๋‹ค. DXT5๊ฐ€ ์ข€ ๋” ๋งŽ์ด ์“ฐ์ด๊ณ  ์žˆ์œผ๋ฉฐ, ์•ŒํŒŒ๊ฐ’์ด ํ•„์š”ํ•œ ํ…์Šค์ณ์˜ ์‚ฌ์‹ค์ƒ ํ‘œ์ค€์œผ๋กœ ์“ฐ์ด๊ณ  ์žˆ๋‹ค.

5. ๊ธฐํƒ€[ํŽธ์ง‘]

๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ Direct X 10 ์ด์ƒ์—์„œ๋Š” S3TC ํ˜•์‹๋“ค์„ ํฌํ•จํ•˜๊ณ  ์ข€ ๋” ํ™•์žฅํ•ด์„œ BCn(Block Compression)์ด๋ผ๊ณ  ๋ถ€๋ฅด๊ณ  ์žˆ๋‹ค. BCn ํฌ๋งท์—๋Š” ์œ„์ชฝ์—์„œ ์„ค๋ช…ํ•œ BC1~3๊ณผ ๊ทธ๋ ˆ์ด์Šค์ผ€์ผ ์ด๋ฏธ์ง€๋ฅผ ์ง€์›ํ•˜๋Š” BC4(BC3์˜ ์•ŒํŒŒ ์ฑ„๋„๊ณผ ๋™์ผํ•œ ์••์ถ• ๋ฐฉ์‹์œผ๋กœ ์••์ถ•๋œ๋‹ค.)๋ถ€ํ„ฐ, DirectX 11์—์„œ ์ถ”๊ฐ€๋์œผ๋ฉฐ BC3๊ณผ ๋™์ผํ•œ ์••์ถ•๋ฅ ๋กœ ๋” ๊ณ ํ’ˆ์งˆ์˜ ์ด๋ฏธ์ง€๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” BC7๊นŒ์ง€์˜ ํฌ๋งท์ด ์žˆ๋‹ค.

6. ๊ด€๋ จ ๋ฌธ์„œ[ํŽธ์ง‘]

[1] DirectX ๋ผ์ด์„ผ์‹ฑ ๋ฒ„์ „์€ DXTC(DirectX Texture Compression)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. DirectX๊ฐ€ ๋Œ€์„ธ๊ฐ€ ๋˜๋ฉด์„œ๋Š” ์‚ฌ์‹ค์ƒ ์ด์ชฝ ๋ช…์นญ์ด ์›๋ž˜ ๋ช…์นญ๋ณด๋‹ค ๋งŽ์ด ๋ถˆ๋ ค์ง€๊ณ  ์žˆ๋‹ค. ์ด ๋ฌธ์„œ์—์„œ๋„ ์ด ๋ช…์นญ์„ ์‚ฌ์šฉํ•œ๋‹ค.
[2] ์ฃผ๋กœ 4๊ฐœ๋‚˜ 8๊ฐœ๋กœ ํ‘œํ˜„๋œ๋‹ค