RGB
๐ซ ๋ง๋จธ๋ฆฌ
Gizmos์ X, Y, Z ์ถ์ ์ ๋นจ๊ฐ์, ์ด๋ก์, ํ๋์์ผ๊น?
๐ซ ์๊ณผ ๋น
๐ซง ๊ฐ์ฐ ํผํฉ
์ํฌ.
์์ ์ผ์์ : CMYK๋ก ์ด๋ฃจ์ด์ง ์์ ๋ํ๋ฉด ๋ํ ์๋ก ์ด๋์์ง๋ฉฐ, ๋ชจ๋ ๋ํ๋ฉด ๊ฒ์์์ด ๋๋ ์์ ์ฒด๊ณ.
๐ซง ๊ฐ์ฐ ํผํฉ
๋น.
๋น์ ์ผ์์ : RGB๋ก ์ด๋ฃจ์ด์ง ์์ ๋ํ๋ฉด ๋ํ ์๋ก ๋ฐ์์ง๋ฉฐ, ๋ชจ๋ ๋ํ๋ฉด ํฐ์์ด ๋๋ ์์ ์ฒด๊ณ.
๐ซ ๋ชจ๋ํฐ์ ์๊ณผ ๋น
๋ชจ๋ํฐ๋ ๋น์ผ๋ก ์์ ํํํ๊ณ , ๋๋ฌธ์ ๊ฐ์ฐ ํผํฉ์ ์ฌ์ฉํฉ๋๋ค.
๐ซง How
์ผ๋ฐ์ ์ผ๋ก ์ปฌ๋ฌ ๋ชจ๋ํฐ๋ RGB๋ก ๊ตฌ์ฑ๋ 3๊ฐ์ โ์๋ธ ํฝ์
(Subpixel)โ ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
๋ชจ๋ํฐ์ ํ ํฝ์
์ ์ด๋ฃจ๋ ๊ธฐ๋ณธ๊ตฌ์กฐ๋ ๋ง์น R, G, B (Red, Green, Blue)์ ์์ผ๋ก ๋น๋๋ 3๊ฐ์ ์กฐ๋ช
์ด ๋ถ์ด์๋ ๋ชจ์ต์ด๋ผ๊ณ ์๊ฐํ ์ ์์ต๋๋ค.
์ฆ, 3๊ฐ์ ์กฐ๋ช
์ด ๋ชจ๋ ๋์์ ๋น๋๋ค๊ณ ๊ฐ์ ํ์ ๋, ์ด 3๊ฐ์ ์์ ๋ฉ๋ฆฌ์ ๋ณด๋ฉด ํ๋๋ก ํฉ์ณ์ ธ์ ํฐ์์ฒ๋ผ ๋ณด์ด๊ฒ ๋๋ ๊ฒ์
๋๋ค.
๐ซ ์์ ์ซ์๋ค
๐ซง ๋ชจ๋ํฐ์ ๋ํ๋ด๋ ์์ ์ซ์๋ก ํํํ๊ธฐ
๋นจ๊ฐ์์ 3๊ฐ์ ์กฐ๋ช ์ค R ์กฐ๋ช ๋ง ์ผ์ง๊ฒ ๋๊ณ , ์ ํํ์ง ์๊ฒ ์ง๋ง, ๋ฐ๊ธฐ๋ก๋ง ๋ฐ์ ธ๋ณด๋ฉด ํฐ์๋ณด๋ค ์ฝ 1/3 ์ฏค์ผ๋ก ์ด๋์์ก์ ๊ฒ์ด๋ผ๊ณ ์์ํ ์ ์๊ฒ ์ต๋๋ค.
๐ซง ์ปฌ๋ฌ๋ฅผ ์ซ์๋ก ๋ํ๋ด๋ณด๊ธฐ
ํ ํฝ์ ์ ์์ ๊ฒฐ์ ํ๋ ์ฝ๋๋ฅผ โํฝ์ ์์ด๋(Pixel Shader)โ ๋ผ๊ณ ๋ถ๋ฆ ๋๋ค
๐ซง ์ปฌ๋ฌ๋ฅผ ์ซ์๋ก ์ธ์ํด ๋ณด๊ธฐ
RGB๋ ํฉ์ณ ๋์ผ๋ฉด ์ปฌ๋ฌ๋ก ๋ณด์ด์ง๋ง ๋ฐ๋ก๋ฐ๋ก ๋์ผ๋ฉด ํ๋ฐฑ์ผ๋ก ํํ๋๋ค๋ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด R ๊ฐ๋ง ์๊ณ ๋๋จธ์ง๋ ์๋ค๊ณ ํ๋ฉด, R ๊ฐ์ ์ซ์๋ ๋ ์ด์ ์ปฌ๋ฌ๋ฅผ ๋ํ๋ด๋ ๊ฒ์ด ์๋๋ผ R ๊ฐ์ โ๊ฐ๋โ๋ง ํํํ๋ ํ ์๋ฆฌ ์ซ์์ผ ๋ฟ์ ๋๋ค. ๋ง์น โ๋ถ์์ ์ ๊ตฌ๋ฅผ ์ผ๋๋ฐ ํ์ํ ์ ๊ธฐ์ ํโ ๊ฐ์ ๋๋์ฒ๋ผ ๋ง์ ๋๋ค. ๊ทธ ํ ์์ฒด๊ฐ ๋ถ์์์ ๋ํ๋ด์ง๋ ์์ผ๋ฏ๋ก ๊ฐ ์ปฌ๋ฌ์ ์ฑ๋์ ๋ฐ๋ก ๋ณผ ๋๋ ํ๋ฐฑ์ผ๋ก โ๊ฐ๋โ๋ง ํํ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ์ํ ์ฑ๋๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ํฌ๋ช ๋๋ ๋ฐ๋ก ๋ผ์ด ๋๊ณ ๋ณด๋ฉด ํ๋ฐฑ์ โ๊ฐ๋โ์ผ ๋ฟ์ ๋๋ค.
๐ซ ์ ์ฐ์ฐ
๐ซง ์ปฌ๋ฌ๋ฅผ ์ฐ์ฐํด ๋ณด๊ธฐ
๋ ธ๋์ (1,1,0) + ๋นจ๊ฐ์ (1,0,0) ๋ ์ด๋ป๊ฒ ๋ ๊น์? ์ผ๋จ ์ซ์๋ก๋ (2,1,0) ์ด ๋ฉ๋๋ค. ์ ๋ต์ ๋ ธ๋์์ ๋๋ค. ๋น๋ก ์ซ์๋ 1์ ๋์ด์ฐ์ง๋ง ์ด๊ฒ์ ์ซ์๋ก ์กด์ฌ๋ง ํ ๋ฟ, ๋ชจ๋ํฐ์์๋ 1์ด์์ ์์์ ํํํ ์ ์๊ฒ ๋ฉ๋๋ค. ใด [์ฌ๊ธฐ์์ ์ฐ๋ฆฌ๋ โ1๋ณด๋ค ๋ฐ์์โ ์ฆ, โํฐ์๋ณด๋ค ๋ฐ์์โ ์ด ์ค์ ๋ก ์กด์ฌํ๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ์ค์ ์ธ๊ณ์์๋ โ๋๋ถ์ค ์ ๋๋ก ๋ฐ์ ๋นโ ์ด ์กด์ฌํ๋ฏ์ด ๋ง์ ๋๋ค. ํ์ง๋ง ๋ชจ๋ํฐ๋ก ๊ทธ ์์ ์ถ๋ ฅํด๋ด๋ ๊ฒ์ด ๋ถ๊ฐ๋ํ๊ธฐ ๋๋ฌธ์, ๋์ผ๋ก๋ 1์ด ๋์ด๊ฐ๋ ๋ฐ์์์ ๊ตฌ๋ณํด๋ผ ์ ์๋ค๋ ๊ฒ์ ์ฃผ์ํด์ผ ํฉ๋๋ค. ๋์ค์ ์์์ ์ถ๊ฐ๋ก ์ฐ์ฐํ ๋ ์ค์ฐจ๊ฐ ์ผ์ด๋ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. + {์ด ๋ถ๋ถ์ HDR ๋ฑ์ ์ฐ๊ด๋๋ฉฐ, ๋ธ๋ฃธ (Bloom) ํจ๊ณผ ๋ฑ์ ๋ง๋ค ๋ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋ฉ๋๋ค.}] ๋ง์ฐฌ๊ฐ์ง๋ก ๋บ์ ๋ ๊ณ์ฐ์ ๋ฐ๋ผ์๋ 0 ์ดํ์ ์์์ด ๋ง๋ค์ด์ง ์ ์์ต๋๋ค. ํ์ง๋ง 0 ์ดํ์ ์ซ์๋ 0์ผ๋ก ๋ณด์ด๊ธฐ ๋๋ฌธ์ ๋นจ๊ฐ์์์ ํ๋์์ ๋บ ์์ ๊ทธ๋ฅ ๋นจ๊ฐ์์ฒ๋ผ ๋ณด์ด๊ฒ ๋ฉ๋๋ค. ๋ฌผ๋ก ์ซ์๋ก๋ -1์ด ๊ทธ๋๋ก ์ ์ง๋๊ณ ์๋ค๋ ๊ฒ์ผ ์ฃผ์ํ์ธ์ฌ โ ๋๋์ ์ ์๋์ ์ผ๋ก ๊ณฑ์ ๋ณด๋ค ๋๋ฆฌ๋ค
๐ซง ์ปฌ๋ฌ์ ๋ฐ์ (Invert)
1 = float1 (1) = float3 (1, 1, 1) = float4 (1,1,1,1) ์ด ๋ 1์๋ฆฌ ์ซ์์ ๊ฒฝ์ฐ ๊ตณ์ด ์์ float์ ๋ถ์ด์ง ์์, ๊ทธ๋ฅ 1์ด๋ผ๊ณ ์ 1์์ ์ด๋ค ์์ ๋นผ๋ฉด ๊ทธ ์์ด ๋ฐ์ ๋ฉ๋๋ค. 1-x ๊ณ์ฐ์ ํฐ์์ ๊ฒ์ ์์ผ๋ก, ๊ฒ์ ์์ ํฐ์์ผ๋ก ๋ค์ง์ด ์ฃผ๋ ๋ฑ์ ์ญํ ์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ค์ ์์ด๋ ๊ณ์ฐ์์ ์์ฃผ ์ฌ์ฉ๋๊ณค ํฉ๋๋ค.
๐ซง Swizzling
= mix up, ํ๋ชฐ์์น๋
๋ฒกํฐ์ ๊ตฌ์ฑ ์์๋ฅผ ์์๋ก ์ฌ์ ๋ ฌํ๊ณ ๊ฒฐํฉํ์ฌ ๋ฒกํฐ๋ฅผ ๊ตฌ์ฑํ๋ ๊ธฐ๋ฅ (CG์์)
Pointer Swizzling
- ํฌ์ธํฐ๋ก ๋งํฌ๋ ์๋ฃ ๊ตฌ์กฐ ๋จ์๋ฅผ, ID๋ ์ด๋ฆ ๋ฑ์ผ๋ก ๋์ฒดํจ์ผ๋ก์จ ํ๋ก๊ทธ๋จ์ ๋ค์ ์์ํ๋๋ผ๋ ์ฑ๊ณต์ ์ผ๋ก ํ์ผ ๋ฐ์ดํฐ๋ฅผ ๋ก๋, ์ญ์ง๋ ฌํ ์ํค๋ ๋ฐฉ๋ฒ
- ์ฐธ๊ณ ๋ก ๋ง์ธํฌ๋ํํธ์
ํ๋ชฐ์์น๋ ์นผ๋
์Sweeping
์ด๋ค.