๊ตฌ๊ธ๊ณผ ์ดํญ
Basis Universal์ ์ด์ ์ ๋ณด์ํฉ๋๋ค.
Basis Universal ํ์์ ์ฌ์ฉํ๋ฉด ๊ธฐ๋ณธ GPU ํ
์ค์ฒ์ ์ฑ๋ฅ์ ์ป์ ์ ์์ง๋ง ๋ ๋์ ์์ค์ ์์ถ์ ์ ๊ณตํฉ๋๋ค.
Basis๋ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ฐ์คํฌํฑ ์์คํ
๊ณผ ๋ชจ๋ฐ์ผ ์ฅ์น ๋ชจ๋์์ ์ฌ์ฉํ ์ ์๋๋ก GPU ํ
์ค์ฒ๋ฅผ ๋ค์ํ ํ์ ์์ค ํ์์ผ๋ก ๋น ๋ฅด๊ฒ ํธ๋์ค์ฝ๋ฉํ๋ ์ค๊ฐ ํ์์
๋๋ค. ํ์ฌ ์ง์๋๋ ํ์์ PVRTC1(4bpp RGB), BC7(6 RGB ๋ชจ๋), BC1-5, ETC1 ๋ฐ ETC2 ํ์์
๋๋ค. ํฅํ ASTC ํ์(RGB ๋๋ RGBA)๊ณผ BC4์ ๊ฒฝ์ฐ 5/7 RGBA ๋ชจ๋, PVRTC4์ ๊ฒฝ์ฐ 1bpp RGBA์ ๋ํ ์ง์์ด ์์๋ฉ๋๋ค.
๊ธฐ๋ณธ ํ์์ ํ
์ค์ฒ๋ ๋น๋์ค ๋ฉ๋ชจ๋ฆฌ๋ฅผ 6~8๋ฐฐ ์ ๊ฒ ์ฐจ์งํ๋ฉฐ JPEG ํ์ ๊ธฐ๋ฐ์ ์ผ๋ฐ ํ
์ค์ฒ๋ณด๋ค ์ฝ ์ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ณ RDO ๋ชจ๋์ ํ
์ค์ฒ๋ณด๋ค 10~25% ์ ์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด JPEG ์ด๋ฏธ์ง ํฌ๊ธฐ๊ฐ 891KB์ด๊ณ ETC1 ํ
์ค์ฒ๊ฐ 1MB์ธ ๊ฒฝ์ฐ Basis ํ์์ ๋ฐ์ดํฐ ํฌ๊ธฐ๋ ์ต๊ณ ํ์ง ๋ชจ๋์์ 469KB์
๋๋ค. ๋น๋์ค ๋ฉ๋ชจ๋ฆฌ์ ํ
์ค์ฒ๋ฅผ ๋ฐฐ์นํ ๋ ํ
์คํธ์ ์ฌ์ฉ๋ JPEG ๋ฐ PNG ํ
์ค์ฒ๋ 16MB์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋นํ ๋ฐ๋ฉด,
๊ธฐ๋ณธ์ ์ผ๋ก BC2, PVRTC1 ๋ฐ ETC1๋ก ๋ณํํ๋ ค๋ฉด 1MB์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ํ๊ณ BC4๋ก ๋ณํํ๋ ค๋ฉด 7MB์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ํฉ๋๋ค.
๊ธฐ์กด ์ ํ๋ฆฌ์ผ์ด์ ์ Basis Universal๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ๊ณผ์ ์ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค. ํ๋ก์ ํธ์์ ์ ๊ณตํ๋ "basisu" ์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ํ ํ์ง ์์ค์ ์ ํํ์ฌ ๊ธฐ์กด ํ ์ค์ฒ๋ ์ด๋ฏธ์ง๋ฅผ ์๋ก์ด ํ์์ผ๋ก ๊ธฐ๋กํ๋ ๊ฒ์ผ๋ก ์ถฉ๋ถํฉ๋๋ค. ๋ค์์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ ๋๋ง ์ฝ๋ ์ด์ ์ ์ค๊ฐ ํ์์ ํ์ฌ GPU์์ ์ง์ํ๋ ํ์์ผ๋ก ๋ณํํ๋ Basisu ํธ๋์ค์ฝ๋๋ฅผ ์ด๊ธฐํํด์ผ ํฉ๋๋ค. ๋์์ GPU์ ์์ถ๋ ํ์์ผ๋ก ๋ก๋๋๋ ๊ฒ์ ํฌํจํ์ฌ ์ ์ฒด ์ฒ๋ฆฌ ์ฒด์ธ์ ์ด๋ฏธ์ง๋ ์์ถ๋ ์ํ๋ก ์ ์ง๋ฉ๋๋ค. GPU๋ ์ ์ฒด ์ด๋ฏธ์ง๋ฅผ ์ ์ ์ ์ผ๋ก ํธ๋์ค์ฝ๋ฉํ๋ ๋์ , ์ด๋ฏธ์ง์์ ํ์ํ ๋ถ๋ถ๋ง ์ ํ์ ์ผ๋ก ๋์ฝ๋ฉํฉ๋๋ค.
์ด์ข ํ ์ค์ฒ ๋ฐฐ์ด(ํ๋ธ๋งต), ์ฒด์ ํ ์ค์ฒ, ํ ์ค์ฒ ๋ฐฐ์ด, ๋ฐ๋งต ๋ ๋ฒจ, ๋น๋์ค ์ํ์ค ๋๋ ์์ ํ ์ค์ฒ ์กฐ๊ฐ์ ํ๋์ ํ์ผ์ ์ ์ฅํ๋ ๊ฒ์ ์ง์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ผ๋ จ์ ์ด๋ฏธ์ง๋ฅผ ํ๋์ ํ์ผ๋ก ์์ถํ์ฌ ์์ ๋น๋์ค๋ฅผ ๋ง๋ค๊ฑฐ๋ ๋ชจ๋ ์ด๋ฏธ์ง์ ๋ํ ๊ณตํต ํ๋ ํธ๋ฅผ ์ฌ์ฉํ๊ณ ์ผ๋ฐ์ ์ธ ์ด๋ฏธ์ง ํ ํ๋ฆฟ์ ์ค๋ณต ์ ๊ฑฐํ์ฌ ์ฌ๋ฌ ํ ์ค์ฒ๋ฅผ ๊ฒฐํฉํ ์ ์์ต๋๋ค. Basis Universal ์ธ์ฝ๋ ๊ตฌํ์ OpenMP๋ฅผ ์ฌ์ฉํ ๋ค์ค ์ค๋ ๋ ์ธ์ฝ๋ฉ์ ์ง์ํฉ๋๋ค. ํธ๋์ค์ฝ๋๋ ํ์ฌ ๋จ์ผ ์ค๋ ๋ ๋ชจ๋์์๋ง ์๋ํฉ๋๋ค.
์ถ๊ฐ
GPU ์ธก์์๋ง ํ์ ์ฒ๋ฆฌ์ ํจ๊ป ๋น๋์ค๋ฅผ ์ฝ์
ํ๋ ๊ธฐ๋ฅ์ Basis Universal์ ์ต์ํ์ CPU ๋ถํ๋ก ์๋ฐฑ ๊ฐ์ ์์ ๋น๋์ค๋ฅผ ๋์์ ํ์ํ ์ ์๋ WebAssembly ๋ฐ WebGL์์ ๋์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ์์ฑํ๊ธฐ ์ํ ํฅ๋ฏธ๋ก์ด ์๋ฃจ์
์ผ๋ก ๋ง๋ญ๋๋ค. ๊ธฐ์กด ์ฝ๋ฑ๊ณผ ํจ๊ป WebAssembly์์ SIMD ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ ์ ์์ ๋๊น์ง ์ด ์์ค์ ์ฑ๋ฅ์ ์์ง ๋ฌ์ฑํ ์ ์์ผ๋ฏ๋ก ๊ธฐ์กด ๋น๋์ค๋ฅผ ์ ์ฉํ ์ ์๋ ์์ญ์์๋ ํ
์ค์ฒ ๊ธฐ๋ฐ ๋น๋์ค๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฌ์ฉ ๊ธฐ๋ฅ์ ํฌํจํ์ฌ ๋น๋์ค์ ๋ํ ์ถ๊ฐ ์ต์ ํ๊ฐ ํฌํจ๋ ์ฝ๋๊ฐ ํ์ฌ ๊ฒ์ ์ค๋น ์ค์
๋๋ค.
์ถ์ฒ : opennet.ru