Shader

๋ Œ๋”๋ง ํŒŒ์ดํ”„๋ผ์ธ

GPU(Graphics Processing Unit)์—์„œ ์‹คํ–‰๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๊ทธ๋ž˜ํ”ฝ ๋ Œ๋”๋ง ๊ณผ์ •์—์„œ ๋‹ค์–‘ํ•œ ์‹œ๊ฐ์  ํšจ๊ณผ๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉ.

 

์ผ๋ฐ˜์ ์œผ๋กœ 3D ๊ทธ๋ž˜ํ”ฝ์Šค API(ex: OpenGL, DirectX, Metal)์—์„œ ์‚ฌ์šฉ๋˜๋ฉฐ, GPU๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ณ ์†์œผ๋กœ ๊ทธ๋ž˜ํ”ฝ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰.

 

Shader์˜ ์—ญํ• 

1. 3D ๋ชจ๋ธ์˜ ๋ณ€ํ™˜

๊ฐ์ฒด๋ฅผ ํ™”๋ฉด์— ๊ทธ๋ฆฌ์ง€ ์œ„ํ•ด ์œ„์น˜, ํฌ๊ธฐ, ํšŒ์ „ ๋“ฑ์„ ์กฐ์ •.

๋ชจ๋ธ ์ขŒํ‘œ์—์„œ ํ™”๋ฉด ์ขŒํ‘œ๋กœ ๋ณ€ํ™˜.

2. ์กฐ๋ช… ๋ฐ ์ƒ‰์ƒ ๊ณ„์‚ฐ

๋ฌผ์ฒด์— ๋น›์ด ์–ด๋–ป๊ฒŒ ๋ฐ˜์‚ฌ๋˜๊ณ  ํก์ˆ˜๋˜๋Š”์ง€ ๊ณ„์‚ฐํ•˜์—ฌ ํ˜„์‹ค๊ฐ ์žˆ๋Š” ์ด๋ฏธ์ง€ ์ƒ์„ฑ.

ex) ๋น›, ๊ทธ๋ฆผ์ž, ๋ฐ˜์‚ฌ

3. ํ”ฝ์…€ ์ƒ‰์ƒ ์ •์˜

ํ…์Šค์ฒ˜๋‚˜ ์ƒ‰์ƒ์„ ์ ์šฉํ•ด ๊ฐ ํ”ฝ์…€์˜ ์ตœ์ข… ์ƒ‰์ƒ์„ ๊ฒฐ์ •.

๊ทธ๋ฆผ์ž, ํˆฌ๋ช…๋„, ๋ฐ˜์‚ฌ ๋“ฑ ์‹œ๊ฐ์  ํšจ๊ณผ๋ฅผ ์ถ”๊ฐ€.

4. ํฌ์ŠคํŠธ ํ”„๋กœ์„ธ์‹ฑ

๋ Œ๋”๋ง๋œ ์ด๋ฏธ์ง€๋ฅผ ์ˆ˜์ •ํ•ด ๋ธ”๋Ÿฌ, ์ฑ„๋„ ์กฐ์ ˆ, ์™œ๊ณก ๋“ฑ ํšจ๊ณผ๋ฅผ ์ถ”๊ฐ€.

 

Shader์˜ ์ข…๋ฅ˜

1. Vertex Shader

3D ๋ชจ๋ธ์˜ ์ •์ (Vertex) ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌ. ์ •์ ์˜ ์œ„์น˜๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ํ™”๋ฉด ์ขŒํ‘œ๋กœ ๋ณ€ํ™˜.

 

์ž…๋ ฅ: ์ •์  ๋ฐ์ดํ„ฐ(์œ„์น˜, ์ƒ‰์ƒ, ๋ฒ•์„  ๋ฒกํ„ฐ ๋“ฑ)

์ถœ๋ ฅ: ๋ณ€ํ™˜๋œ ์ •์  ๋ฐ์ดํ„ฐ

2. Fragment Shader/Pixel Shader

ํ™”๋ฉด์˜ ๊ฐ ํ”ฝ์…€(Fragment)์˜ ์ƒ‰์ƒ์„ ๊ณ„์‚ฐ. ํ…์Šค์ฒ˜, ์กฐ๋ช…ํšจ๊ณผ, ๊ทธ๋ฆผ์ž ๋“ฑ์„ ์ ์šฉ.

 

์ž…๋ ฅ: ํ…์Šค์ฒ˜ ์ขŒํ‘œ, ์กฐ๋ช… ์ •๋ณด, ์ •์  ์…ฐ์ด๋”์˜ ์ถœ๋ ฅ.

์ถœ๋ ฅ: ํ”ฝ์…€์˜ ์ตœ์ข… ์ƒ‰์ƒ.

3. Compute Shader

๊ทธ๋ž˜ํ”ฝ ๋ Œ๋”๋ง์ด ์•„๋‹Œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์— ์‚ฌ์šฉ. ๋ฌผ๋ฆฌ ์—ฐ์‚ฐ, ๋ณต์žกํ•œ ์‹œ๋ฎฌ๋ ˆ์ด์…˜, ๋ฐ์ดํ„ฐ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ ๋“ฑ์— ํ™œ์šฉ.

4. Geometry Shader

์ •์ ๊ณผ ์ •์  ์‚ฌ์ด๋ฅผ ์—ฐ๊ฒฐํ•˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€๋กœ ์ƒ์„ฑ. ์ , ์„ , ์‚ผ๊ฐํ˜• ๋“ฑ์˜ ํ˜•ํƒœ๋ฅผ ๋ณ€ํ™˜ํ•˜๊ฑฐ๋‚˜ ํ™•๋Œ€.

5. Tessellation Shader

๋ชจ๋ธ์„ ๋” ์„ธ๋ฐ€ํ•˜๊ฒŒ ์„ธ๋ถ„ํ™”ํ•˜์—ฌ ๊ณ ํ•ด์ƒ๋„ ๊ธฐํ•˜ํ•™์„ ์ƒ์„ฑ.

 

Shader์˜ ๋™์ž‘๋ฐฉ์‹

์…ฐ์ด๋”๋Š” GPU์—์„œ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋กœ ์‹คํ–‰๋œ๋‹ค.

ex) ํ™”๋ฉด์— 1000๋งŒ ๊ฐœ์˜ ํ”ฝ์…€์ด ์žˆ๋‹ค๋ฉด Fragment Shader๋Š” ๊ฐ ํ”ฝ์…€์— ๋Œ€ํ•ด ๋™์‹œ์— ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

Shader์˜ ์‹คํ–‰ํ๋ฆ„

1. ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ค€๋น„ (์ •์ , ํ…์Šค์ฒ˜ ๋“ฑ)
2. Vertex Shader -> Geometry Shader -> Tessellation Shader

3. GPU๊ฐ€ ์ตœ์ข… ํ”ฝ์…€์„ ๊ณ„์‚ฐ (Fragment Shader)

4. ํ™”๋ฉด์— ๊ฒฐ๊ณผ๋ฅผ ๋ Œ๋”๋ง

๋ฐ˜์‘ํ˜•

'๐Ÿ’ป CS > ์šฉ์–ด' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์ฟ ํ‚ค  (0) 2025.02.20
DTO  (0) 2023.05.19
์ธํ„ฐํŽ˜์ด์Šค  (1) 2023.05.10
JerryiOS