๊ฐ์
ํ๊ต ์์ ์ค ์ปดํจํฐ ๊ทธ๋ํฝ์ค๋ ์์ ์ ๋ค์ผ๋ฉด์ OpenGL 2.0์ ์ด์ฉํ์ฌ ๋ฒฝ๋๊นจ๊ธฐ ๊ฒ์์ ๊ตฌํํ๋ผ๋ ๊ณผ์ ๊ฐ ๋์ค๊ฒ ๋์์ต๋๋ค. ๊ทธ๋์ ์๋ ์ ์ค๋ชฉ ๊ฒ์์ ๋ง๋ค์ด ๋ณด๋ฉด์ ์์ง๋ง ์ ๋ง์ UI ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ง๋ ์ ์ด ์์ด UI ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ๋ฉด์ ๊ฐ๋ฐ์ ์งํํ๋ฉด ํธํ๊ฒ ๋ค. ๋ผ๋ ์๊ฐ์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ํตํ์ฌ ๊น๋ํ๊ณ , ๋ฌผ๋ฆฌ์์ง์ ํตํ์ฌ ์ถฉ๋์ ํด๊ฒฐ ํ์! ๋ผ๋ ์๊ฐ์ผ๋ก ๊ฐ๋ฐํ๊ฒ ๋์์ต๋๋ค.
๊ฐ๋ฐ ๊ด๋ จ ๊ธฐ๊ฐ
- ์์ง ๊ฐ๋ฐ : 2~3์ผ
- ๋ฌผ๋ฆฌ ์์ง ๊ฐ๋ฐ : 1์ผ
- ์ด๋ฏธ์ง, UI ๊ทธ๋ฆฌ๊ธฐ : 1์ผ
- ๋ฐํ์ฉ ์๋ฃ ๋ง๋ค๊ธฐ : 1์ผ ์ด ๊ธฐ๊ฐ : 3~4์ผ
๋ฆฌ์์ค ๊ฐ๋ฐ ํด์ฃผ์ ๋ถ : MFDO
์ ์ฉ๋ ๊ธฐ์
- ๊นจ์๊ธ ๊ฐ์ง๋ง ๋ง์ฐ์ค ์ปค์ ์ปค์คํ
- ๋ง์ฐ์ค ์ ๋ ฅ (ํด๋ฆญ์ ํตํ ๋ฐ์)
hover, down, default ์ํ๋ฅผ ๊ตฌํ ํจ.
- ์ด๋ฏธ์ง ์ถ๋ ฅ๊ธฐ๋ฅ์ ์ด์ฉํ ์ ๋๋ฉ์ด์ ๊ตฌํํจ
- DaC ์ ๊ฐ์ ์ฝ๋ํ ๋์์ธ
๋ฒํผ์ด๋, UI๋ฅผ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ , ๊ด์ธก์์ญ์ ๋์ ์ ํด์ฃผ๋ฉด ์๋์ ์ผ๋ก ๋ ๋๋งํจ.
- ๋งต ์ปค์คํ ๊ธฐ๋ฅ
- ์ซ์ ํฐํธ
- FMOD๋ฅผ ํตํ ๋์ ์ฌ์ ๊ธฐ๋ฅ
- Tick Rate๋ฅผ ํตํ ๋ฐฐ์, ๋ ๋๋ง ํฑ ๊ตฌํ
๋ด๋ถ ๋์ ์๋ฆฌ
OpenGL์์ UI๋ฅผ ๋น๊ต์ ์ฝ๊ฒ ๊ตฌํํ๊ธฐ ์ํ์ฌ ๋ค๋ฅธ ํ๋ ์์ํฌ์ ๋ฒค์น๋งํน์ ์งํ ํ๊ฒ ๋์์ต๋๋ค. ๊ทธ๋์ ๊ณผ๊ฑฐ ๋น๊ต์ ์ผ๋ก ๋ง์ด ์ฌ์ฉํ๊ณ , ๋ก์ฐํ๊ฒ ๋ง์ด ์ฌ์ฉํด ๋ณด์๋ Swift์ UIKit์ ๊ธฐ๋ฐ์ผ๋ก ์งํ ํ์์ต๋๋ค. ๋ค๋ฅธ ํ๋ ์์ํฌ๋ฅผ ๋น๊ตํ ๊ฒ์ผ๋ก๋ WPF, Winform, UIKit, QT๊ฐ ์์์ต๋๋ค. ๊ทธ ์ค ์ ์ผ ๋ก์ฐ ํ๊ณ , ๋น๊ต์ ๋ถ์์ ๋ง์ด ํ๋๊ฒ์ UIKit ์ด์๊ณ , Winform์ด๋ ๋ค๋ฅธ๊ฒ์ ์ฌ๋ ๋ง์ด ๋ฌ๋์ต๋๋ค.
๊ทธ๋์ UIKit๊ณผ ์ ์ฌํ๊ฒ ๊ตฌํํ๊ณ ์ ํ์์ง๋ง, ์ด ๋ชจ๋ ๊ฒ์ ๊ตฌํํ๋ค๋ฉด 3์ผ ์ด๋ผ๋ ๊ธฐ๊ฐ๋ด์ ์์ฑํ๋๊ฒ์ด ๋งค์ฐ ์ด๋ ค์ธ๊ฒ์ด๋ผ ํ๋จํ์ฌ ์ ํ๊ณผ ์ง์ค์ ํ์์ต๋๋ค. ๊ทธ๋์ ViewController๋ Scene์ด๋ผ๋ ๊ฐ๋ ์ด ๋๊ณ , Scene์์ ๋ค์ํ View๊ฐ ์กด์ฌํ๋ ํ์์ผ๋ก ์งํ ํ์์ผ๋ฉฐ, View์ ๋ฌผ๋ฆฌ์์ง์ ๋ฃ๊ธฐ ์ํ์ฌ View๋ฅผ ์์ ๋ฐ๋ PhysicsView๋ผ๋ ์ถ์ ํด๋์ค๋ฅผ ๋ง๋ค์ด ๋ฌผ๋ฆฌ ์์ง์ด ํ์ํ ์์๋ ํด๋น PhysicsView๋ฅผ ์์๋ฐ์ ๊ตฌํํ๋๋ก ํ์์ต๋๋ค.
๋ง์ฐ์ค์ ํค๋ณด๋ ์ ๋ ฅ์ด ๋ฐ์ํ ๊ฒฝ์ฐ Scene์ด๋ Application ๋จ์์ ์ ์ ํ View์ ์ ํํ๋๊ฒ์ด ์๋, ์ผ๋จ ๋ชจ๋ View์๊ฒ ์ ํํ๊ณ , View๊ฐ ์ ํํ์ฌ ์์ ์๊ฒ ์จ ๋ฐ์ดํฐ ์ธ์ง ์๋์ง ๊ฒ์ฆํ์ฌ ์คํ ํ๋๋ก ํ์์ต๋๋ค. ๊ทธ๋์ ๊ฒ์ฆ ํ๋ ์ฝ๋ ์ค ํ๋๊ฐ ํ์ฌ View๊ฐ Hidden ์ธ์ง ์๋์ง ์ฒดํฌ ํฉ๋๋ค.
์ฆ ๊ฐ๋จํ๊ฒ ๊ทธ๋ฆผ์ผ๋ก ํํ ํ๋ค๋ฉด ์๋์ ์ด๋ฏธ์ง ์ฒ๋ผ ๋ฉ๋๋ค.
๋งค๋ฒ ๋ ๋๋ง์ด๋, ํค๋ณด๋ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ค๋ฉด Application์์ ๋ฐ๊ณ , ํ์ฌ ํ์ฑํ๊ฐ ๋์ด์๋ Scene์๊ฒ ์ ์กํ๊ฒ ๋๊ณ , Scene์์ ๋ชจ๋ View์ ์ ํํฉ๋๋ค. ๊ทธ๋์ ์ต์ ํ์, ๋ง์ฐ์ค ์ ๋ ฅ๊ณผ, ์ด๋ฏธ์ง ์ถ๋ ฅ ๊ธฐ๋ฅ๊ณผ ๊ฐ์ ๋ฒ ์ด์ค๋ฅผ ๊ตฌํ ํ๋ฉด ๋๋จธ์ง ๊ธฐ๋ฅ์ ์์ ๋กญ๊ฒ ์ธ ์ ์๊ฒ ๋ฉ๋๋ค.
Application์์ ๋ชจ๋ ๊ธฐ์ด ๋ฒ ์ด์ค๋ฅผ ๋ด๋นํ๊ธฐ ๋๋ฌธ์ TickRate๋ฅผ ๋ณ๊ฒฝํ๊ฑฐ๋, Tick์ ๋ฐ์ํ๋๊ฒ๋ ๋ชจ๋ Application์์ ๋ด๋นํ๋ฏ๋ก, ์ผ๊ด์ ์ธ ๋ณ๊ฒฝ, ํน์ Scene์๋ง ๋ฐ๊พธ๊ฑฐ๋ ํ๋ ๋ฑ ๋ค์ํ๊ฒ ํ ์ ์์ต๋๋ค.
DaC, ์ฝ๋ํ ๋์์ธ ์ด๋?
๊ธฐ๋ณธ์ ์ผ๋ก ๋ด๋ถ ๋์์ ์๋ฆฌ๋ฅผ ๋ถ์ํ๊ฒ ๋๋ฉด โSceneโ์ ์ฐ๊ฒฐ์ด ๋์ด ์๋ค๋ฉด UI๋, ๋ฌด์ธ๊ฐ๊ฐ ๊ทธ๋ ค์ง๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ View ๊ฐ์ฒด๋ฅผ ์์ฑ์ ํ๊ธฐ๋ง ํ๋๋ผ๋ ๊ทธ๋ ค์ง์ง ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ View๊ฐ ๊ด๊ณํ์ด๋, View๊ฐ ์ด๋ค Scene์ ์๋์ง ์ด๋ค ์์๊ฐ ์๋์ง, ์ด๋ค ์ด๋ฏธ์ง๋ฅผ ์ฐ๋์ง ์ฝ๋๋ก ์ ์ธ์ ํด์ผํฉ๋๋ค. ์๋์ ์ด๋ฏธ์ง ์ฒ๋ผ View์ ๋ํ ๊ด๊ณ์ฑ์ ์ ๋ ฅํ๊ณ , ์ด๋ค ์คํ๋ผ์ดํธ๋ฅผ ๊ทธ๋ฆด๊ฒ์ธ์ง ๋๊ฒจ์ฃผ์ด์ผ ํฉ๋๋ค.
๊ทธ๋ฌ๋ฉด ์๋์ ์ผ๋ก Application์ ์ฃผ๊ธฐ์ ๋ฐ๋ผ, Scene์ด ๋ ๋๋ง์ด ๋ ๋ ๊ทธ๋ ค์ง๋๋ค.
๋ค์ด๋ก๋ ๋งํฌ
โ ๊ฒ์ ๋ค์ด๋ก๋ ๋งํฌ :
https://github.com/Piorosen/opengl-popcornjoo/releases/download/v1.0.0/PopcornJoo.zip
โ ๊ฒ์ ์์ค ์ฝ๋ :
https://github.com/Piorosen/opengl-popcornjoo
๋ฐํ ์์
๋ฐํ ์์ {: .text-center } ์ด๋ฏธ์ง
๋ฐํ ์ด๋ฏธ์ง