์ธ5 ์๋ํฐ ๋ด๋ถ์์๋ ๊ทธ๋ํฝ์นด๋๋ฅผ ์์ฐ๋?
์ง๊ธ ๋งต์ด ํ๋ ์์ด 40์ด๋์ค๋๋ฐ ์ด๊ฑฐ ์ด์ผ ๋ชป์ฌ๋ฆผ? ใ ใด๋๊ธฐ๋๋ฐ
์ธ5 ์๋ํฐ ๋ด๋ถ์์๋ ๊ทธ๋ํฝ์นด๋๋ฅผ ์์ฐ๋?
์ง๊ธ ๋งต์ด ํ๋ ์์ด 40์ด๋์ค๋๋ฐ ์ด๊ฑฐ ์ด์ผ ๋ชป์ฌ๋ฆผ? ใ ใด๋๊ธฐ๋๋ฐ
๊ทธ๋ํฝ ๊ฐ์์ ๋น์ฐํ ์ฐ๋๊ฑฐ๊ณ ๋ ์ดํธ๋ ์ด์ฑ๊ฐ์๊ฑฐ ์ผ๋์๊ฑฐ ์๋?
์ค๋ธ์ ํธ๊ฐ ๋๋ฌด ๋ง๋ค๊ฑฐ๋... ์๋ํฐ๋ ๊ฒ์ํ๊ณ ๋๊ฐ์ด ์ฌ์ํ
๊ธ์นด ์ฌ์ฉ๋ฅ ์ด 5ํผ๋ผ ๋ญ๊ฐ ๊ฒ์์ฒ๋ผ ํ๋ก ๊ฐ๊ธฐ๋ฉด์ 120ํ๋ ์ ์ญ์ญ ๋ฝ์ผ๋ฉด ์ข๊ฒ ๋๋ฐ ์๋๊ฐ๋ค
๋ก๋์จ์ด ์ญ์ฐฝ๋๊ฑฐ๋ฉด ๋ญ๊ฐ ๋ฌธ์ ๊ฐ ์๋๊ฑฐ๊ฐ๊ธดํ๋ฐ ์ ๊ทธ๋ฐ์ง๋ ๋ชจ๋ฅด๊ฒ ๋ค... ๋ ์๋ง ํ๋ ์ ๋์ค๋๋ฐ ๋ญ์ง
์ฌ์ค์น๋ฅผ ํด๋ด์ผํ๋
์๋ํฐ์์ฒด๊ฐ ์ก์๋จน๋๊ฒ๋ ํฌ๊ณ ์๋ํฐ๋ก ๋๋ฆฌ๋๊ฑด ๊ฐ์ํ๋์๋ ์ํ๋๊น ๋๋ฆผ.
๊ฐ์ํ๋ ๋ญ์๋ฆฌ์ฌ...? ๋๋ฒ๊น ๋ชจ๋ ๋งํ๋๊ฑฐ?
์๋์ฐ์์์ ์๋์ฐ๋ฅผ ํ๋ ๋ ์คํํด์ ์ฐ๋๊ฑฐ๋ ๋น์ทํ๋ค๊ณ ๋ณด๋ฉด๋จ. ์๋๋ฐ์ค๋ชจ๋์ฒ๋ผ.
๋ญ ๊ฐ์๋ฆฌ์ผ ๊ตฌ์กฐ๋ฅผ ์ ๋๋ก ์๋ฉด ํ ์๊ฐ ์๋ ๋ง์ธ๋ฐ ์ด๋์ ์ด์ํ ์๋ฆฌ ์ฃผ์๋ค์ด์ ์๋์ฒํ๋คใ ใ
์๋ํฐ๋ก ๋๋ฆฌ๋ ํจํค์งํด์ ๋๋ฆฌ๋ ๋น๋ํ ๊ฒฐ๊ณผ๋ฌผ์ ๋๊ฐ์ด ๋ค์ดํฐ๋ธ ์ฝ๋์ธ๋ฐ ๊ฐ์ํ๋ ๋ฌด์จใ ใ ใ ใ ใ
์ปดํ์ผํ๋ฉด ๊ฒ์๋ชจ๋ ์์ฒด๋ฅผ ๊ฐ์๋ผ์์ dll๋ก ๋ก๋ํ๋๋ฐ ๊ฑฐ๊ธฐ์ ๊ฐ์ํ๊ฐ ๋ผ์ด๋ค ๊ณณ๋ ์๊ณ ์ธ ์ด์ ๋ ์๋คใ ใ ์ฃผ์๋ค์ ๋ํผ์ ๊ฐ์๊ฒ์ข ๋ฟ๋ฆฌ์ง๋ง๋ผ
ใ ใ (220.80) ๋ธ๋ฃจํ๋ฆฐํธ ์์ฒด๊ฐ ๊ฐ์ํ๋ก ๋๋ฆฌ๋๊ฑด๋ฐ ๋ญ ์ ๋ฅ์๊ฐ์ ์๋ฆฌ๋คํ๊ณ ์๋. ๋ญ ์๊ณ ๋ ์ง๊ป์ฌ๋ผ ใ ใ ใ ใ ๊ทธ๋์ ๋ฃจํ๋ ๋ธ๋ฃจํ๋ฆฐํธ๋ก ๋๋ฆฌ๋ฉด ์กด๋ ๋๋ฆฌ๊ตฌ๋ง ใ ๋ค ๋ฑ ๋๋ค ์์ค๋๋ก ์ข๋ ๋ชจ๋ฅด๋ฉด์ ์ด์๋ผ.
ใ ใ (220.80) ์ธ๋ฆฌ์ผ ๋ธ๋ฃจํ๋ฆฐํธ ์์ฒด๊ฐ ๊ฐ์ํ๋ก ๋๋ฆฌ๋๊ฑฐ๋ผ ๋ฃจํ๊ฐ ์กด๋๊ฒ ๋๋ ค. ๊ทธ๋์ ์ดํฐ๋ ์ด์ ๋ค์ด๊ฐ๋ ๋ถ๋ถ์ c++๋ก ์ง์ผํ๊ณ .
๋ญ ์๊ณ ๋ ์ง๊ป์ด์ง. ๊ทธ๊ฑธ ํผํ๋ ค๊ณ ๋ค์ดํฐ๋ธํ๋ํ๋๊ฑด๋ฐ 4์์๋๊ฑธ 5์์๋ ์ง์๋๊ณ ๋์ค์ ์ ๋ํ๋ค๊ณ ํด์ ๊ฐ๋ฐ์๋ค ์ฌ์ด์์ ๋ ผ๋๊ฑฐ๋ฆฌ์๊ตฌ๋ง.
ํ์ฌ๊ฐ ์ ๋ฅ์๋ค ์์ค์์๋ ๋ญ ๋ง์ถฐ์ ์๊ธฐํด์ค๋ ์๋์ผ๋นผ์ก ๊ฑฐ๋ฆฌ๋ฉด์ ์ธ๋ฉดํ๋ค๋๊น.
์ข๋๋ชจ๋ฅด๊ฒ์ผ๋ฉด
https://ikrima.dev/ue4guide/engine-programming/blueprints/bp-virtualmachine-overview/
๋ผ๋์ฝ์ด๋ณด๋ ๊ฐ ๋จธ์ ๋ฆฌ ์ ๋ฅ์ ์์ค์์ ์์๋ค์ด๋จน์์ง๋ ์๋ฌธ์ด์ง๋ง.
ใ ใ (220.80) ๋๋๊ฐ๋ฆฌ๋ก๋ ์ดํด๋ถ๊ฐ๊ฒ ์ง๋ง ๋งํฌ๋ผ๋ ๋ณด๋๊ฐ ๋นก๋๊ฐ๋ฆฌ์ผ ใ ใ ใ ใ
https://docs.unrealengine.com/4.27/en-US/ProgrammingAndScripting/Blueprints/TechnicalGuide/NativizingBlueprints/
https://forums.unrealengine.com/t/any-plan-to-improve-blueprint-vm-performance/120443
์ง๊ฐ ์ค ๋งํฌ๊ฐ ๋ญ์๋ฆฌํ๋์ง๋ ๋ชจ๋ฅด๊ณ ๊ฐ์ ธ์๋คใ ใ ใ ใ ใ ใ ใ ์ด๊ฒ ๋ ๋ง๋๋ก ์ธ๋ฆฌ์ผ์ด ๊ฐ์๋จธ์ ์์์ ๋์๊ฐ๋ค๋ ๊ฐ์๋ฆฌ๋? ๋ธ๋ฃจํ๋ฆฐํธ๊ฐ ์๋ฐ ๋น์ทํ๊ฒ ๊ตฌํ๋์ด์๋จ ์๋ฆฌ์งใ ใ ใ ์๋ํฐ๋ ํจํค์งํ ํ๋ก๊ทธ๋จ์ ์ต์ ํ์ฐจ์ด๋์ ์ข๋ ์๊ด์๋ ๋ถ๋ถ์ธ๋ฐ ์๋๋ฐ๋ ๊ธ์ด์์ ์ง๋ํ๋๊ฒ ์ง์ง ๊ฐ๋ณ์ ๊ฐ๋ค
ํ๋ก์ ํธ ์ค์ ํ๋ ๋ฐ์ ๋ฃจ๋ฉ ๊ด๋ จ๋ ์ต์ ๋๊ณ ์๋์ฐ ๋งต ์ธํ ๋ณด๋ฉด ๋ฒ์ถ์ผ ์๋ ๋งต์ธ๊ฐ ๊ทธ๊ฑฐ ์ธ ๊ฑด๋ฐ ๊ทธ๊ฑฐ ๋ด ๊ฑธ๋ก ๋ฐ๊พธ์
์๋ -> ์๋ ๋งต ๋ฉ์๋ ์ด๊ฑฐ Shadow Maps๋ก ๋ณ๊ฒฝ
๋ฃจ๋ฉ์ ๊ทธ๋ ๋ค์น๊ณ ๋ฒ์ถ์ผ ์๋๋งต์ ์ต์ ํ ๊ด๋ จ ๊ธฐ๋ฅ์ธ๋ฐ ๊ด๋ จ์์? ๋ก๋์จ ์์ฒด๊ฐ ์๋์จ๋ค๋๋ฐ ๊ด๋ จ์์๊ฐ์
๋ณ์ ๋ ์ ๋น์ฅ ์ ํ๋ธ์ UE5 FPS ๋์ด๋ ๋ฐฉ๋ฒ ์์ ํ ํธ๋ญ์ด๊ณ ๊ทธ ์์๋ง๋ค ์ ๋ถ ์๋ ๋งต ๋ฐ๊ฟ์ฃผ๊ณ ์๋๋ฐใ ใ ใ ใ ํํ ์๋ผ๊ฐใ ใ ๋๊ฐ ์ง์ ์ฐพ์ ๋ณด๋ฉด ๋ฐ๋ก ๋์ค๋ ๊ฑด๋ฐ ๋ํผ์ ์ ๋๊ฐ ์จ๋ถ๋ฆฌ๋ ๊ฒ ๋ํผ์ ์ด๊ณ
๊ทธ๊ฑด ์ด๋ฏธ ๋ค ํ์
๋ด๊ฐ ๋ฌผ์ด๋ณธ๊ฑด ๊ฒ์ํ ๋ gpu๋ก๋์จ ๋์์ ์ ๋ด ์๋ํฐ๋ ์๊ทธ๋ฌ๋ ์ด๊ฑฐ์ง ๋ค๋ฅธ ์ฌ๋๋คํํ ๋ฌผ์ด๋ณด๋ฉด 80ํผ๋์ฐ๋๋ผ๊ณ
๋ผ์ดํ ๋น๋ํ๋ฒ ํ๋๊น ์๋๋งต์ ๋ฑํ ์๊ด์๋๋ผ
๋ณ์ ์ง๊ฐ ๋ํผ์ ์ง๊ป์ฌ๋๊ณ ๋ฐ๋ฐ์ ๋ชปํ๊ฒ ๊ณ ใ ใ ๊ฐ์ํ ใ ใ ใน ๋ฌธ์๋ผ๋ ๊ฐ์ ธ์ค๋๊ฐ ๋ฒ์ถ์ผ ์๋๋งต์ ์ต๊ทผ ์ถ๊ฐ๋ ๊ธฐ๋ฅ์ด๋ผ ๋ด๊ฐ ์ ๋๋ก ๋ชฐ๋๋ค ์ณ๋ ํ์๋ฆฌ ์ง๊ป์ด๋ ๋๋ณด๋ค์ผ ๋ซ์ง ใ ใ
๊ฐ์ํใ ใ ใ ใฑใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ
ใ ใ (220.80) ๋ธ๋ฃจํ๋ฆฐํธ ์์ฒด๊ฐ ๊ฐ์ํ๋ก ๋๋ฆฌ๋๊ฑด๋ฐ ๋ญ ์ ๋ฅ์๊ฐ์ ์๋ฆฌ๋คํ๊ณ ์๋. ๋ญ ์๊ณ ๋ ์ง๊ป์ฌ๋ผ ใ ใ ใ ใ ๊ทธ๋์ ๋ฃจํ๋ ๋ธ๋ฃจํ๋ฆฐํธ๋ก ๋๋ฆฌ๋ฉด ์กด๋ ๋๋ฆฌ๊ตฌ๋ง ใ ๋ค ๋ฑ ๋๋ค ์์ค๋๋ก ์ข๋ ๋ชจ๋ฅด๋ฉด์ ์ด์๋ผ.
ใ ใ (220.80) ์ธ๋ฆฌ์ผ ๋ธ๋ฃจํ๋ฆฐํธ ์์ฒด๊ฐ ๊ฐ์ํ๋ก ๋๋ฆฌ๋๊ฑฐ๋ผ ๋ฃจํ๊ฐ ์กด๋๊ฒ ๋๋ ค. ๊ทธ๋์ ์ดํฐ๋ ์ด์ ๋ค์ด๊ฐ๋ ๋ถ๋ถ์ c++๋ก ์ง์ผํ๊ณ .
๋ญ ์๊ณ ๋ ์ง๊ป์ด์ง. ๊ทธ๊ฑธ ํผํ๋ ค๊ณ ๋ค์ดํฐ๋ธํ๋ํ๋๊ฑด๋ฐ 4์์๋๊ฑธ 5์์๋ ์ง์๋๊ณ ๋์ค์ ์ ๋ํ๋ค๊ณ ํด์ ๊ฐ๋ฐ์๋ค ์ฌ์ด์์ ๋ ผ๋๊ฑฐ๋ฆฌ์๊ตฌ๋ง.
ํ์ฌ๊ฐ ์ ๋ฅ์๋ค ์์ค์์๋ ๋ญ ๋ง์ถฐ์ ์๊ธฐํด์ค๋ ์๋์ผ๋นผ์ก ๊ฑฐ๋ฆฌ๋ฉด์ ์ธ๋ฉดํ๋ค๋๊น.
์ข๋๋ชจ๋ฅด๊ฒ์ผ๋ฉด
https://ikrima.dev/ue4guide/engine-programming/blueprints/bp-virtualmachine-overview/
๋ผ๋์ฝ์ด๋ณด๋ ๊ฐ ๋จธ์ ๋ฆฌ ์ ๋ฅ์ ์์ค์์ ์์๋ค์ด๋จน์์ง๋ ์๋ฌธ์ด์ง๋ง.
ใ ใ (220.80) ๋๋๊ฐ๋ฆฌ๋ก๋ ์ดํด๋ถ๊ฐ๊ฒ ์ง๋ง ๋งํฌ๋ผ๋ ๋ณด๋๊ฐ ๋นก๋๊ฐ๋ฆฌ์ผ ใ ใ ใ ใ
https://docs.unrealengine.com/4.27/en-US/ProgrammingAndScripting/Blueprints/TechnicalGuide/NativizingBlueprints/
https://forums.unrealengine.com/t/any-plan-to-improve-blueprint-vm-performance/120443
์ ๊ฐ์ํ ํ์๋ฆฌ๋ ๊ฑฐ๋ฅด๊ณ gpu ๋ก๋์จ์ gpu์ ์ผ์ ๋ง์ด ์์ผ์ผ ์ฌ๋ผ๊ฐ์ง ์ค๋ธ์ ํธ ๋ ๋ฐฐ์นํ๊ณ ๊ณ ํด์๋ ํ ์ค์ณ ์ด๋ฐ๊ฑฐ ์ฐ๊ณ ํ๋ฉด ์ญ์ญ ์ฌ๋ผ๊ฐ ๋๊ฐ ๋ณธ ์ฌ๊ตฌ์ฑ์ด ์ด๋จ์ง ๋ชจ๋ฅด๊ฒ ๋๋ฐ ๋จ์ํ fps ๋ ๋์ค๊ฒ ํ๊ณ ์ถ์๊ฑฐ๋ฉด ์ธ์ฌ์ดํธ ๋จผ์ ์ฐ์ด๋ณด๋๊ฒ ์ ์ผ ์ข์
์ธ๋ฆฌ์ผ์์ ๋งํ VM ์ด๋๊ฑด JVM ์ฒ๋ผ ์ง์ง ๊ฐ์๋จธ์ ์ด ์๋๊ฒ ์๋๋ผ c++ stack ์ด ์๋๋ผ ์ธ๋ฆฌ์ผ์์ ๊ตฌํํ Stack Frame์ผ๋ก ํจ์ ํธ์ถ ๊ด๋ฆฌ๊ฐ ๋๋ ๊ตฌ์กฐ๋ฅผ VM ์ด๋ผ๊ณ ๋ถ๋ฅด๋๋ฏ ์์ค ์ฐพ์๋ณด์ ๋ค Stack.h, Frame.h ๋ธ๋ฃจํ๋ฆฐํธ ํธ์ถ ์คํ์ StackTrace ํจ์๋ก ์ป์ด์ค๊ณ ๋ ํ๋๊น ์ด๊ฒ ๋ง๋๋ฏ