๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90

 

๊ฒŒ์ž„ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•  ๋•Œ, ์ฒ˜์Œ์—๋Š” ๋ณ„ ๋ฌธ์ œ์—†์ด ์ž˜ ์ง„ํ–‰๋˜๋‹ค๊ฐ€ ๋งˆ์ง€๋ง‰์— ํ…Œ์ŠคํŠธ๋ฅผ ํ•  ๋•Œ ๋ฌธ์ œ๊ฐ€ ๋งŽ์ด ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.

๊ทธ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋ฐ”๋กœ ์ตœ์ ํ™” ๋ฌธ์ œ์ด๋‹ค. ๋ณดํ†ต ์„ฑ๋Šฅ์ด ์ข‹์€ ์ปดํ“จํ„ฐ์—์„œ ์œ ๋‹ˆํ‹ฐ๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋ ˆ์ž„ ๋“œ๋ž์ด๋‚˜ ์†๋„ ์ธก๋ฉด์—์„œ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์„ ์•Œ์•„์ฐจ๋ฆฌ๊ธฐ๋Š” ์–ด๋ ต๋‹ค. ๊ทธ๋Ÿฌ๋‹ค๊ฐ€ ๋‚˜์ค‘์— ๋ฒ ํƒ€ ํ…Œ์ŠคํŠธ ๊ธฐ๊ฐ„๋™์•ˆ ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง€๋Š” ์ปดํ“จํ„ฐ๋‚˜ ๋ชจ๋ฐ”์ผ์—์„œ ๊ตฌ๋™ํ–ˆ์„ ๋•Œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Œ์„ ๊นจ๋‹ซ๊ฒŒ ๋œ๋‹ค๊ณ  ํ•œ๋‹ค.

 

๊ทธ๋ž˜์„œ ๊ทธ ์ค‘, ๊ทธ๋ž˜ํ”ฝ์— ์˜ํ•ด ๋ฐœ์ƒํ•˜๋Š” ํ”„๋ ˆ์ž„ ๋“œ๋ž์„ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ดค๋‹ค.

 

 

๊ทธ๋ž˜ํ”ฝ ์ตœ์ ํ™”๋ฅผ ํ•˜๋Š” ๊ธฐ๋ฒ•๋“ค

1. 3D ๋ชจ๋ธ๋ง์˜ ํด๋ฆฌ๊ณค(Polygon) ๊ฐœ์ˆ˜๋ฅผ ์ค„์ด๋Š” ๋ฐฉ๋ฒ• (๋””์ž์ธ ์˜์—ญ)

 

๋””์ž์ด๋„ˆ ๋ถ„๋“ค์ด 3D ๋ชจ๋ธ๋ง ์ž‘์—…์„ ํ•  ๋•Œ, ํด๋ฆฌ๊ณค(Polygon)์„ ํ†ตํ•ด 3D ๋ชจ๋ธ ๊ฐœ์ฒด์˜ ํ‘œ๋ฉด์„ ๊ตฌ์„ฑํ•œ๋‹ค.

์ด ํด๋ฆฌ๊ณค ๊ฐœ์ˆ˜์— ๋”ฐ๋ผ ๋ฌผ์ฒด ํ‘œ๋ฉด ์žฌ์งˆ์˜ ์„ธ๋ฐ€ํ•œ ์ •๋„๋‚˜ ์ „๋ฐ˜์ ์ธ ํ€„๋ฆฌํ‹ฐ๊ฐ€ ๊ฒฐ์ •๋œ๋‹ค.

 

ํ—ˆ๋‚˜, ํด๋ฆฌ๊ณค ๊ฐœ์ˆ˜๊ฐ€ ๋งŽ๋‹ค๋Š” ๊ฒƒ์€ ๊ทธ๋งŒํผ GPU๊ฐ€ ์—ฐ์‚ฐํ•  ์–‘์ด ๋งŽ์Œ์„ ๋œปํ•˜๊ณ  ํ•œ๊ณ„์น˜๋ฅผ ๋„˜์–ด์„œ๋ฉด ์„ฑ๋Šฅ ์ €ํ•˜๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ, ๊ฒŒ์ž„ ์ง„ํ–‰์— ํฌ๊ฒŒ ์ƒ๊ด€์—†๋Š” ์˜ค๋ธŒ์ ํŠธ (Ex. ๋ฐฐ๊ฒฝ์œผ๋กœ ์žˆ๋Š” ์ฑ…์ƒ์— ์กด์žฌํ•˜๋Š” ์—ฐํ•„ ๋“ฑ๊ณผ ๊ฐ™์€ ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ ์ž˜ ๋ˆˆ์— ๋„์ง€ ์•Š๋Š” ์ž‘์€ ๋ฌผ์ฒด)๋Š” ๋กœ์šฐ ํด๋ฆฌ๊ณค(Low Polygon)์œผ๋กœ ๋งŒ๋“ค์–ด์„œ ์ตœ์ ํ™”๋ฅผ ํ•˜๊ธฐ๋„ ํ•œ๋‹ค.

ํ•˜์ง€๋งŒ, ๋””์ž์ด๋„ˆ์™€ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์„œ๋กœ ์‹ธ์šฐ๊ฒŒ ๋  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด๋ผ ์กฐ์‹ฌ์Šค๋Ÿฝ๊ฒŒ ์ ‘๊ทผ์„ ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.

 

 

2. ์นด๋ฉ”๋ผ๋กœ๋ถ€ํ„ฐ์˜ ๊ฑฐ๋ฆฌ์— ๋”ฐ๋ผ ๋ Œ๋”๋ง ์—ฌ๋ถ€ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ• (Clipping)

 

์นด๋ฉ”๋ผ ์ปดํฌ๋„ŒํŠธ ์†์„ฑ์„ ๋ณด๋ฉด, Clipping Planes๊ฐ€ ์žˆ๋‹ค. ์นด๋ฉ”๋ผ๋กœ๋ถ€ํ„ฐ ๊ฑฐ๋ฆฌ๊ฐ€ Near๋ณด๋‹ค ๊ฐ€๊นŒ์ด ์žˆ๊ณ , Far๋ณด๋‹ค ๋ฉ€๋ฆฌ ์žˆ๋Š” ์˜ค๋ธŒ์ ํŠธ๋Š” ๋ Œ๋”๋งํ•˜์ง€ ์•Š๋Š” ์˜ต์…˜์ด๋‹ค.

 

์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์นด๋ฉ”๋ผ๋กœ๋ถ€ํ„ฐ 0.3m ์ด๋‚ด์— ์žˆ๊ฑฐ๋‚˜, 1000m๋ณด๋‹ค ๋ฉ€๋ฆฌ ์žˆ์œผ๋ฉด ๋ Œ๋”๋ง๋˜์ง€ ์•Š๋Š”๋‹ค.

 

Near = 0.3, Far = 1000 ์ผ ๋•Œ

 

Near = 500, Far = 1000 ์ผ ๋•Œ (์˜ค๋ธŒ์ ํŠธ๋“ค์ด ํ•ด๋‹น ์˜์—ญ ๋‚ด์— ์žˆ์ง€ ์•Š๊ธฐ์— ๋ Œ๋”๋ง๋˜์ง€ ์•Š๋Š”๋‹ค.)

 

๋งˆ์ธํฌ๋ž˜ํ”„ํŠธ ํ™˜๊ฒฝ์„ค์ •์—์„œ ๊ฑฐ๋ฆฌ์— ๋”ฐ๋ผ ๋ Œ๋”๋ง ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์˜ต์…˜์ด ์ด ๋ถ€๋ถ„์„ ์กฐ์ ˆํ•˜๋Š” ๊ฑฐ๊ฒ ๊ตฌ๋‚˜ ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

๊ฑฐ๋ฆฌ์— ๋”ฐ๋ผ ๋ Œ๋”๋ง์„ ํ•˜์ง€ ์•Š์Œ์œผ๋กœ์จ, ์ตœ์ ํ™”๋ฅผ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

 

 

 

3. Occlusion Culling

 

๋‹ค๋ฅธ ์˜ค๋ธŒ์ ํŠธ์— ๊ฐ€๋ ค์ ธ, ์นด๋ฉ”๋ผ์— ๋ณด์ด์ง€ ์•Š๋Š” ์˜ค๋ธŒ์ ํŠธ๋“ค์€ ๋ Œ๋”๋งํ•˜์ง€ ์•Š๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

 

๋…ธ๋ž€์ƒ‰ ์˜ค๋ธŒ์ ํŠธ ๋ช‡ ๊ฐœ๋Š” ๋นจ๊ฐ„์ƒ‰ ์˜ค๋ธŒ์ ํŠธ์— ๊ฐ€๋ ค์ ธ ๋ณด์ด์ง€ ์•Š๋Š” ์ƒํ™ฉ

 

์œ„์™€ ๊ฐ™์€ ์ƒํ™ฉ์ผ ๋•Œ, ๊ฐ€๋ ค์ ธ์„œ ๋ณด์ด์ง€ ์•Š๋Š” ๋…ธ๋ž€์ƒ‰ ์˜ค๋ธŒ์ ํŠธ๊นŒ์ง€ ์ „๋ถ€ ๋ Œ๋”๋งํ•ด์ฃผ๋Š” ๊ฒƒ์€ ๋ฆฌ์†Œ์Šค ๋‚ญ๋น„์ด๋ฏ€๋กœ ์ด๋Ÿด ๋•Œ Occlusion Culling ๊ธฐ๋ฒ•์„ ํ†ตํ•ด ์ตœ์ ํ™”๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด Occlusion Culling ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„ , ์นด๋ฉ”๋ผ ์ปดํฌ๋„ŒํŠธ์˜ Occlusion Culling ์†์„ฑ์ด ์ฒดํฌ๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.

 

Occlusion Culling ์˜ต์…˜์ด ์ฒดํฌ๋˜์–ด ์žˆ์–ด์•ผ ์‚ฌ์šฉ ๊ฐ€๋Šฅ. ๋ณดํ†ต ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์ฒดํฌ๋˜์–ด ์žˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ๋‚˜์„ , ๊ฐ€๋ฆด ์˜ค๋ธŒ์ ํŠธ(Occluder)์™€ ๊ฐ€๋ ค์งˆ ์˜ค๋ธŒ์ ํŠธ(Occludee)๋ฅผ ์ •ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

 

1. ๊ฐ€๋ฆด ์˜ค๋ธŒ์ ํŠธ์™€ ๊ฐ€๋ ค์งˆ ์˜ค๋ธŒ์ ํŠธ ์ง€์ •ํ•ด์ฃผ๊ธฐ

 

๋นจ๊ฐ„์ƒ‰ ๋นŒ๋”ฉ ์˜ค๋ธŒ์ ํŠธ๋Š” ์นด๋ฉ”๋ผ๋กœ๋ถ€ํ„ฐ ๋’ค์— ์žˆ๋Š” ๋…ธ๋ž€์ƒ‰ ์ฃผํƒ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๊ฐ€๋ฆฌ๋Š” ์˜ค๋ธŒ์ ํŠธ๋‹ค. ๊ทธ๋ž˜์„œ ๋นจ๊ฐ„์ƒ‰ ๋นŒ๋”ฉ ์˜ค๋ธŒ์ ํŠธ๋“ค์„ ์„ ํƒํ•˜๊ณ , Inspector ์ฐฝ์—์„œ Static → Occluder Static์œผ๋กœ ์ง€์ •ํ•ด์ฃผ์—ˆ๋‹ค.

 

๋นจ๊ฐ„์ƒ‰ ๋นŒ๋”ฉ ์˜ค๋ธŒ์ ํŠธ๋Š” ๋’ค์— ์žˆ๋Š” ๋ฌผ์ฒด๋ฅผ ๊ฐ€๋ฆฌ๋Š” ์œ„์น˜์ด๋ฏ€๋กœ, "Occluder Static"์œผ๋กœ ์„ค์ •

 

๋…ธ๋ž€์ƒ‰ ์ฃผํƒ ์˜ค๋ธŒ์ ํŠธ๋Š” ๋‹ค๋ฅธ ์˜ค๋ธŒ์ ํŠธ์— ์˜ํ•ด ๊ฐ€๋ ค์ง€๋Š” ์œ„์น˜์ด๋ฏ€๋กœ, "Occludee Static"์œผ๋กœ ์„ค์ •

 

 

2. ์œ ๋‹ˆํ‹ฐ ์—๋””ํ„ฐ Window → Rendering → Occlusion Culling ์„ ํƒ

 

 

๊ทธ๋Ÿฌ๋ฉด Inspector ์ฐฝ์—์„œ Occlusion ํƒญ์ด ๋‚˜์˜จ๋‹ค. Bake ํƒญ์„ ์„ ํƒํ•ด์„œ Bake๋ฅผ ํ•ด์ค€๋‹ค. ์•ž ์ „์—์„œ ์ง€์ •ํ–ˆ๋˜ Occluder์™€ Occludee์— ๋Œ€ํ•œ ์ •๋ณด๋“ค์„ ์ €์žฅ์„ ํ•˜๋Š” ํ–‰์œ„๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

 

Bake๋ฅผ ํ–ˆ๋‹ค๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™์ด Scene์ด ๊ตฌ์„ฑ๋œ๋‹ค. Visibility Lines๋ฅผ ์ฒดํฌํ•˜๋ฉด, ์นด๋ฉ”๋ผ ๋ Œ๋”๋ง ์˜์—ญ์„ ์ดˆ๋ก์ƒ‰ ์„ ์œผ๋กœ ๋‚˜ํƒ€๋‚ด์–ด ์ค€๋‹ค.

 

"Visibility Line" ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•œ ๋ชจ์Šต

 

 

3. ์นด๋ฉ”๋ผ ๋ Œ๋”๋ง ์˜์—ญ์„ ๋ฐ”๊ฟ”๋ณด๋ฉฐ ํ…Œ์ŠคํŠธํ•˜๊ธฐ

 

์ข€ ๋” ์ „์ฒด์ ์œผ๋กœ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด, Scene์„ ์œ„์—์„œ ๋‚ด๋ ค๋‹ค๋ณด๊ฒŒ ํ–ˆ๋‹ค. ํ•œ ๋ฒˆ ์นด๋ฉ”๋ผ๋ฅผ ์›€์ง์—ฌ๋ณด๋ฉฐ ์‚ดํŽด๋ณด์ž.

 

์˜ค๋ธŒ์ ํŠธ๋“ค์ด ์นด๋ฉ”๋ผ ๋ Œ๋”๋ง ์˜์—ญ ๋‚ด๋ถ€์— ์žˆ์„ ๊ฒฝ์šฐ, ์˜จ์ „ํžˆ ๋‹ค ๋ Œ๋”๋ง์ด ๋œ๋‹ค.

 

๋นจ๊ฐ„์ƒ‰ ๋นŒ๋”ฉ ์˜ค๋ธŒ์ ํŠธ๋“ค์€ ๋ Œ๋”๋ง์ด ๋˜์ง€ ์•Š๋Š” ๋ชจ์Šต์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

์นด๋ฉ”๋ผ ๋ Œ๋”๋ง ์˜์—ญ์— ๋“ค์–ด์˜ค์ง€ ์•Š์€ ์˜ค๋ธŒ์ ํŠธ๋“ค์€ ๋ Œ๋”๋ง๋˜์ง€ ์•Š๋Š” ๋ชจ์Šต์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

 

Occlusion Culling ์‚ฌ์šฉ ์‹œ ์ฃผ์˜์‚ฌํ•ญ

 

ํ˜„์žฌ ์”ฌ(Scene)์—์„œ Occlusion Culling์„ ์‚ฌ์šฉํ–ˆ๋‹ค๋ฉด, Scene ํด๋”์— ํ˜„์žฌ ์”ฌ์— ๋Œ€ํ•œ ํด๋”๊ฐ€ ์ƒ์„ฑ๋˜๊ณ , ๊ทธ ์•ˆ์—OcclusionCullingData ํŒŒ์ผ์ด ์ž๋™ ์ƒ์„ฑ๋œ๋‹ค.

 

OcclusionCullingData ํŒŒ์ผ

 

Bake๋ฅผ ํ•˜๋ฉด์„œ Occlusion Culling์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋“ค์„ ์ด ํŒŒ์ผ ์•ˆ์— ์ €์žฅ์„ ํ•ด๋†“์€ ๊ฒƒ์ด๋‹ค.

ํ•ด๋‹น ํŒŒ์ผ์ด ๋ฐ˜๋“œ์‹œ ์žˆ์–ด์•ผ Occlusion Culling์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•จ๋ถ€๋กœ ์ง€์šฐ์ง€ ๋ง์ž!

 

 

 

 

์š”์•ฝ

 

  • ๊ทธ๋ž˜ํ”ฝ ๋ Œ๋”๋ง ์ตœ์ ํ™” ๋ฐฉ๋ฒ•์—๋Š” Low Polygon, Clipping Planes, Occlusion Culling ๋“ฑ์ด ์žˆ๋‹ค.
  • Low Polygon์€ ๋””์ž์ด๋„ˆ๊ฐ€ 3D ๋ชจ๋ธ๋ง์— ํด๋ฆฌ๊ณค ๊ฐœ์ˆ˜๋ฅผ ์ ๊ฒŒ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์ ํ™”ํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋‹ค.
  • Clipping Planes๋Š” ์นด๋ฉ”๋ผ๋กœ๋ถ€ํ„ฐ ์˜ค๋ธŒ์ ํŠธ๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ์— ๋”ฐ๋ผ ๋ Œ๋”๋ง ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋‹ค.
  • Occlusion Culling์€ ์นด๋ฉ”๋ผ ๋ Œ๋”๋ง ์˜์—ญ์— ์žˆ์„ ๋•Œ๋งŒ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋ Œ๋”๋งํ•˜๋Š” ๊ธฐ๋ฒ•์œผ๋กœ, ๋ฒฝ ๋’ค์— ๊ฐ€๋ ค์ง€๋Š” ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ๋งŽ๊ณ  ์‹œ์ ์ด 1์ธ์นญ(FPS)์ธ ๊ฒŒ์ž„์—์„œ ์œ ์šฉํ•˜๊ฒŒ ์“ฐ์ธ๋‹ค. (ํƒ‘๋‹ค์šด ๋ทฐ ์‹œ์ ์—์„œ๋Š” ๊ทธ๋ฆฌ ํšจ์œจ์ ์ด์ง€ ์•Š์Œ)

 

728x90
๋ฐ˜์‘ํ˜•