3๋ ๊ฐ์ ๊ฐ๋ฐ ๋์ ์๋ก์ด ์คํ ์์ค ๊ฒ์ ์์ง์ธ Ambient์ ์ฒซ ๋ฒ์งธ ๋ฆด๋ฆฌ์ค๊ฐ ์ถ์๋์์ต๋๋ค. ์์ง์ WebAssembly ํํ์ผ๋ก ์ปดํ์ผํ๊ณ ๋ ๋๋ง์ ์ํด WebGPU API๋ฅผ ์ฌ์ฉํ๋ ๋ฉํฐํ๋ ์ด์ด ๊ฒ์ ๋ฐ XNUMXD ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๊ธฐ ์ํ ๋ฐํ์์ ์ ๊ณตํฉ๋๋ค. ์ฝ๋๋ Rust๋ก ์์ฑ๋์์ผ๋ฉฐ MIT ๋ผ์ด์ ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค.
Ambient ๊ฐ๋ฐ์ ์ฃผ์ ๋ชฉํ๋ ๋ฉํฐํ๋ ์ด์ด ๊ฒ์ ๊ฐ๋ฐ์ ๋จ์ํํ๊ณ ๊ฒ์ ์ ์์ด ์ฑ๊ธํ๋ ์ด์ด ํ๋ก์ ํธ๋ณด๋ค ๋ ์ด๋ ต์ง ์๊ฒ ๋ง๋๋ ๋๊ตฌ๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค. ์ด ์์ง์ ์ด๊ธฐ ๋ชฉํ๋ WebAssembly ์ค๊ฐ ์ฝ๋๋ก ์ปดํ์ผ์ด ๊ฐ๋ฅํ ๋ชจ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ๊ฒ์ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ง์ํ๋ ๋ฒ์ฉ ๋ฐํ์์ ๋ง๋๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ฒซ ๋ฒ์งธ ๋ฆด๋ฆฌ์ค๋ ์ง๊ธ๊น์ง Rust ๊ฐ๋ฐ๋ง ์ง์ํฉ๋๋ค.
์๋ก์ด ์์ง์ ์ฃผ์ ๊ธฐ๋ฅ:
- ๋คํธ์ํน์ ์ํ ํฌ๋ช ํ ์ง์. ์์ง์ ํด๋ผ์ด์ธํธ์ ์๋ฒ์ ๊ธฐ๋ฅ์ ๊ฒฐํฉํ๊ณ , ํด๋ผ์ด์ธํธ์ ์๋ฒ ๋ก์ง์ ์์ฑํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ๊ตฌ์ฑ ์์๋ฅผ ์ ๊ณตํ๋ฉฐ, ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ํ๋ฅผ ์๋์ผ๋ก ๋๊ธฐํํฉ๋๋ค. ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ธก์์ ๊ณตํต ๋ฐ์ดํฐ ๋ชจ๋ธ์ด ์ฌ์ฉ๋๋ฏ๋ก ๋ฐฑ์๋์ ํ๋ฐํธ์๋ ๊ฐ์ ์ฝ๋๋ฅผ ์ฝ๊ฒ ์ ์กํ ์ ์์ต๋๋ค.
- ์ ๋ขฐํ ์ ์๋ ์ฝ๋์ ์ํฅ์ ์ ํํ๋ ค๋ฉด ๊ฒฉ๋ฆฌ๋ ์์ฒด ํ๊ฒฝ์์ ๊ฐ ๋ชจ๋์ ์คํํ์ธ์. ๋ชจ๋ ์ถฉ๋๋ก ์ธํด ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ถฉ๋ํ์ง๋ ์์ต๋๋ค.
- ๋ฐ์ดํฐ ์งํฅ ์ํคํ ์ฒ. ๊ฐ WASM์ด ์กฐ์ํ ์ ์๋ ๊ตฌ์ฑ ์์ ์์คํ ์ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ ๊ณตํฉ๋๋ค. ECS(Entity Component System) ๋์์ธ ํจํด์ ์ฌ์ฉํฉ๋๋ค. ๋ชจ๋ ๊ตฌ์ฑ ์์์ ๋ฐ์ดํฐ๋ฅผ ์๋ฒ์ ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํฉ๋๋ค. ์ด ์ํ๋ ์๋์ผ๋ก ํด๋ผ์ด์ธํธ์ ๋ณต์ ๋๋ฉฐ, ํด๋ผ์ด์ธํธ ์ธก์์๋ ๋ก์ปฌ ์ํ๋ฅผ ๊ณ ๋ คํ์ฌ ๋ฐ์ดํฐ๋ฅผ ํ์ฅํ ์ ์์ต๋๋ค.
- WebAssembly๋ก ์ปดํ์ผ๋๋ ๋ชจ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก Ambient ๋ชจ๋์ ์์ฑํ๋ ๊ธฐ๋ฅ(์ง๊ธ๊น์ง๋ Rust๋ง ์ง์๋จ)
- Windows, macOS ๋ฐ Linux์์ ์คํ๋ ์ ์๊ณ ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ญํ ์ ๋ชจ๋ ์ํํ ์ ์๋ ์ถ๋ ฅ ๋ฒ์ฉ ์คํ ํ์ผ ์์ฑ.
- ์์ ๋ง์ ๊ตฌ์ฑ์์์ "๊ฐ๋ "(๊ตฌ์ฑ์์ ๋ชจ์)์ ์ ์ํ๋ ๊ธฐ๋ฅ. ๋์ผํ ๊ตฌ์ฑ ์์์ ๊ฐ๋ ์ ์ฌ์ฉํ๋ ํ๋ก์ ํธ๋ ๋ฐ์ดํฐ๊ฐ ํน์ ํ๋ก์ ํธ์์ ์ฌ์ฉํ๋๋ก ํน๋ณํ ์ค๊ณ๋์ง ์์ ๊ฒฝ์ฐ์๋ ๋ฐ์ดํฐ ์ด๋ ๋ฐ ๊ณต์ ๋ฅผ ๋ณด์ฅํฉ๋๋ค.
- .glb ๋ฐ .fbx๋ฅผ ํฌํจํ ๋ค์ํ ํ์์ ๋ฆฌ์์ค ์ปดํ์ผ์ ์ง์ํฉ๋๋ค. ๋คํธ์ํฌ๋ฅผ ํตํด ๋ฆฌ์์ค๋ฅผ ์คํธ๋ฆฌ๋ฐํ๋ ๊ธฐ๋ฅ - ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ์ฐ๊ฒฐ๋ ๋ ํ์ํ ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ ์ป์ ์ ์์ต๋๋ค(๋ชจ๋ ๋ฆฌ์์ค๊ฐ ๋ก๋๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ํ๋ ์ด๋ฅผ ์์ํ ์ ์์ต๋๋ค). FBX ๋ฐ glTF ๋ชจ๋ธ ํ์, ๋ค์ํ ์ฌ์ด๋ ๋ฐ ์ด๋ฏธ์ง ํ์์ด ์ง์๋ฉ๋๋ค.
- GPU๋ฅผ ์ฌ์ฉํ์ฌ ๋ ๋๋ง ์๋๋ฅผ ๋์ด๊ณ GPU ์ธก ํด๋ฆฌํ ๋ฐ LOD๋ฅผ ์ง์ํ๋ ๊ณ ๊ธ ๋ ๋๋ง ์์คํ ์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก PBR(๋ฌผ๋ฆฌ ๊ธฐ๋ฐ ๋ ๋๋ง)์ ์ฌ์ฉํ์ฌ ์ ๋๋ฉ์ด์ ๋ฐ ๊ณ๋จ์ ๊ทธ๋ฆผ์ ๋งต์ ์ง์ํฉ๋๋ค.
- PhysX ์์ง์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๋ฌผ๋ฆฌ์ ํ๋ก์ธ์ค ์๋ฎฌ๋ ์ด์ ์ ์ง์ํฉ๋๋ค.
- React์ ์ ์ฌํ ์ฌ์ฉ์ ์ธํฐํ์ด์ค ๊ตฌ์ถ ์์คํ .
- ํ์ฌ ํ๋ซํผ๊ณผ ๋ ๋ฆฝ์ ์ธ ํตํฉ ์ ๋ ฅ ์์คํ .
- ํ๋ฌ๊ทธ์ธ ํํฐ๋ฅผ ๊ฐ์ถ ๊ณต๊ฐ ์ฌ์ด๋ ์์คํ .
๊ฐ๋ฐ์ ์์ง ์ํ ๋จ๊ณ์ ์์ต๋๋ค. ์์ง ๊ตฌํ๋์ง ์์ ๊ธฐ๋ฅ ์ค์์ ์น์์ ์คํํ๋ ๊ธฐ๋ฅ, ํด๋ผ์ด์ธํธ API, ๋ฉํฐ์ค๋ ๋ฉ ๊ด๋ฆฌ์ฉ API, ์ฌ์ฉ์ ์ธํฐํ์ด์ค ์์ฑ์ฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ์์ฒด ์ ฐ์ด๋ ์ฌ์ฉ์ฉ API, ์ฌ์ด๋ ์ง์, ๋ก๋ฉ ๋ฐ ์ ์ฅ ๋ฑ์ ํ์ธํ ์ ์์ต๋๋ค. ECS(Entity Component System) ๊ตฌ์ฑ ์์, ์ฆ์์์ ๋ฆฌ์์ค ๋ค์ ๋ก๋, ์๋ฒ ์๋ ํฌ๊ธฐ ์กฐ์ , ๊ฒ์ ๋งต ๋ฐ ๊ฒ์ ์ฅ๋ฉด ๊ณต๋ ์์ฑ์ ์ํ ํธ์ง๊ธฐ.
์ถ์ฒ : opennet.ru