포슀트

RGB

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이닀.

πŸ’« λ©”λͺ¨


🫧 참고

이 κΈ°μ‚¬λŠ” μ €μž‘κΆŒμžμ˜ CC BY 4.0 λΌμ΄μ„ΌμŠ€λ₯Ό λ”°λ¦…λ‹ˆλ‹€.