๋ฌผ๋ฆฌ์์ง์ ํฌ๊ฒ 2๊ฐ์ง๋ก ๋๋์ด ์ง๋ค๊ณ ๋ณผ์ ์์.
ํ๋๋ ํ๋ ์ ๊ธฐ๋ฐ์ด๊ณ , ๋๋จธ์ง๋ ์๊ฐ ๊ธฐ๋ฐ์.
ํ๋ ์ ๊ธฐ๋ฐ ๋ฌผ๋ฆฌ์์ง์ ๊ณผ๊ฑฐ 1980๋ ๋๋ ์ฐ๋ ๋ฐฉ์์ธ๋ฐ, ์ด์ ๋ ๊ทธ๋์ ๋ฉ๋ชจ๋ฆฌ๋ ๋๋ฌด ์์๊ณ ,
ํ์ ๋ ์์์ ํ์ ๋ ๊ธฐํ์ ์ฝ๋ฉํ๋ ์์ ์ด๊ธฐ ๋๋ฌธ์.
๊ทธ๋ฐ๋ฐ ์ ์ง๊ธ ์์ ์ ํ๋ ์ ๊ธฐ๋ฐ ๋ฌผ๋ฆฌ์์ง์ ๊ดํ ์ด์ผ๊ธฐ๋ฅผ ํ๋๋ฉด, ์ ๋ฐ์ ์ง๋ฌธ๊ธ๋ ๊ทธ๋ ๊ณ , ์ด๋ณด๋ ์ธ๋์์ ํ๊ธฐ ์ฌ์ด ์ค์๊ธฐ ๋๋ฌธ์.
์ผ๋ณธ๊ฒ์ด ๋ชป๋ง๋ค์๋ค๊ณ ์๋จน๋ ์ด์ ๋ ์๋ฐ๊ฑธ๋ก ๋ง๋๋ ์ด์ํ ๊ฒ์๋ค์ด ๋ง๊ธฐ ๋๋ฌธ์ด์ผ. ํนํ ์ผ๋ณธ๊ฒ์๋ค์ 2000๋ ๋ ์ด๊น์ง๋ ํ๋ ์ ๊ธฐ๋ฐ ๋ฌผ๋ฆฌ์์ง์ ์ผ๋๋ฐ,
๊ทธ์ผ๋ง๋ก ์ฒ์ฐธํ ์ฝ๋ฉ๋ฐฉ์์ด๋ผ ํ ์ ์์.
๋น์ฐํ ์ ์์ ์ธ ๋์์ ํ๊ฒ ๊ฒ์์ ๋ง๋๋ ค๋ฉด ์๊ฐ ๊ธฐ๋ฐ ๋ฌผ๋ฆฌ๋ฅผ ์ง์ผ๊ฒ ์ง. (์ง์ง ๋ณ๋ค๋ฅธ๊ฒ ์๋.)
์ผ๋จ ํ๋ ์์ด ๋ญ๋๋ฉด, ์ ๋ฐ์ดํธ ๋ฃจํ๊ฐ ํ๋ฒ ๋๋ฉด ๊ทธ๊ฒ ํ ํ๋ ์์ด๋ผ๊ณ ๋ณผ์ ์์. (์ธ๋ถ์ ์ผ๋ก๋ ๊ทธ๋ํฝ(๋ ๋๋ง)์์ง์ ๋ชจ๋ํฐ hz ๋ฐ๋ผ์ ๋๊ณ , ๋ฌผ๋ฆฌ๋ ์ฌ๋ฌ๋ฒ ๋์๋ ์๊ณ , ๋ก์ง๋ ์ฌ๋ฌ๋ฒ ๋์ ์์.)
์๊ฐ์ ๋ญ๋๋ฉด ์ง๊ธ ํ๋ ์ ย ์์ํ ๋ ๊ธฐ๋กํ ์๊ฐ๊ณผ, ํ๋ ์์ด ๋๋ ๋ ๊ธฐ๋กํ ์๊ฐ์ ๊ฐ๊ฒฉ์ฐจ์ด๋ฅผ ๋งํจ.
๊ฑ ์ ๋ฐ์ดํธ๊ฐ ๋๋๋ฐ ๊ฑธ๋ฆฐ ์๊ฐ์ด๋ผ๊ณ ๋ณผ์ ์์.
๊ทธ๋ผ ์ด๊ฒ ์ ์ค์ํ๋์ธ๋ฐ, ํ๋ ์ ๊ธฐ๋ฐ๋ฌผ๋ฆฌ์ ์๊ฐ๊ธฐ๋ฐ ๋ฌผ๋ฆฌ์ ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ ๋ฌผ๋ฆฌ๋ฅผ ๊ณ์ฐํ ๋ ๋๋ ๊ฐ์.
์๋ฅผ ๋ค์ด ์์ง์์ย 16๋งํผ ์คฌ๋๊ฒ๊ณผ 1000 * dt ๋งํผ ์ค๊ฒ์ ์ฐจ์ด๋ ์์ฒญ๋๊ฒ ํฌ๋ค๊ณ ๋ณผ์ ์์.
์ด๊ฒ ๊ฒ์์ด 60ํ๋ ์์ผ๋ก ๋๋๋ 16๊ณผ 16.666667์ ์ฐจ์ด๋ ๋ณ๊ฑฐ ์๋์ ์์ง๋ง, ๊ฒ์์ด ํญ์ 60ํ๋ ์์ผ๋ก ๋๊ฑฐ๋ผ๋ ๋ณด์ฅ์ด ์๊ธฐ๋๋ฌธ์
๊ฒ์์ ์ฌ๊ฐํ ๋ฒ๊ทธ๊ฐ ๋ ๊ฐ๋ฅ์ฑ์ด ์๋ ๋ถ๋ถ์.
์๋ฅผ๋ค์ด ๋ณด๋ฉด 60ํ๋ ์์ผ๋ก ๋๋๋ย
16์ฉ ์์ง์ด๋ ์น๊ตฌ๋ 16 * 60 = 960 ๋งํผ ์์ง์ด๊ณ , 1000 * dt๋งํผ ์์ง์ด๋ ์น๊ตฌ๋ 1000๋งํผ ์์ง์์ด ์ฌ๊ธฐ๊น์ง๋ ๋ณ๋ค๋ฅธย
์ฐจ์ด๊ฐ ์๋ค๊ณ ๋ณผ์ ์๋๋ฐ,
๊ฐ์๊ธฐ ๊ฒ์์ด ์ด๊ฒ 30fps๋ก ๋๋ค๊ณ ์น๋ฉด ํ๋ ์๋ง๋ค 16์ฉ ์์ง์ด๋ ์น๊ตฌ๋ย 1์ด ๋์ 16 * 30 ๋งํผ ์์ง์์. ๊ณ์ฐํ๋ฉด 480๋งํผ ์์ง์์ง,ย
ํ์ง๋ง 1000 * dt๋งํผ ์์ง์ด๋ ์น๊ตฌ๋ 1์ด ๋์ ๋ฑ 1000๋งํผ ์์ง์ธ๊ฑฐ์.
๊ทธ๋ฐ๋ฐ ๊ฒ์์ด 144fps๋ก ๋์๋ฒ๋ฆฌ๋ฉด? dt๋ 1/144์ด๊ณ ,ย ์๊ฐ ๊ธฐ๋ฐย ๋ฌผ๋ฆฌ์์ง์ 1์ด์ ์์ง์ธ ๊ฑฐ๋ฆฌ๊ฐย 144 * 1000 * 1/144 = 1000์ด ๋๊ฒ ์ง
ํ์ง๋ง ํ๋ ์ ๊ธฐ๋ฐ์ด๋ฉด 16 * 144๊ฐ ๋์ 2304๋งํผ ์ด๋์ ํ๊ฒ ๋๋๊ฑฐ์.
์๋ํ๋ฉด dt๋ ํ๋ ์์ ๋ฐ๋ผ ์ ๋์ ์ด๊ธฐ ๋๋ฌธ์ด๊ณ ย ํ๋ ์์ด ๋นจ๋ผ์ง๊ฑด ๋๋ ค์ง๊ฑด๊ฐ์ ์ผ์ ์๊ฐ๋์ย ์์ง์ธ๊ฒ์ ๋ณํ์ง ์๊ณ ์ผ์ ํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค๋ค๋๊ฑฐ.
์ด ๋ฒ๊ทธ๊ฐ ์์ผ์ด๋ ๊ธฐํ์ด๋ ์ฝ์์์ 30ํ๋ ์์ผ๋ก ์์ง์ด๋ค๊ฐ, 60ํ๋ ์์ผ๋ก ์์ง์ด๊ฒ ๋ฐ๋์์๋ ์์ฃผ๋๋ ๋ฒ๊ทธ๊ฐ ๋๋๊ฑฐ์.
์๋ ๊ฒ์์ค์ ์์ฆ ์ปด์ผ๋ก ์ผ๋ฉดย ์์ฒญ๋๊ฒ ๊ฐ์๋๋๊ฒ์๋ ์๊ณ , ์๋ฎฌ๋ ์ดํฐ๋ก ์์ ์์ผ์ด๋๊ฒ์์ ๋๋ฆฌ๋ฉด ์์ฒญ๋๊ฒ ๋นจ๋ผ์ง๊ฑฐ๋ ๊ฐ์์ํฌ์ ์๋ ๋ฒ๊ทธ๊ฐ ์ฌ๊ธฐ์ ๋์ค๋๊ฑฐ์.
ย
์ฌ๊ธฐ์ ๋์ค๋๊ฒ, ํ๋ ์ ์ ํ์ด๋, v sync (์์ง๋๊ธฐํ)์.
๋ชจ๋ OpenGL๋ถํฐ๋ ๊ทธ๋ํฝ ์นด๋๊ฐ ์๋์ผ๋ก v sync๋ฅผ ์ผ์ฃผ๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฅ ๋์ถฉ ๋ง๋ค์ด๋ ์ด dt๊ฐ ์๋์ผ๋ก ๋ชจ๋ํฐ ์ฃผ์ฌ์จ๋ก ๋์ค๋๊ฑฐ์.ย
๋น์ฐํ ์ ์ ๋ค์ย ํ๋ ์์ ๋ ๋๊ฒ ๋ณด๊ณ ์ถ์ ์๋ง๋๋ฌธ์ ์ ๋ฐ๊ฑธ ๊ฐ๋ง ์๋๋๋ ค๊ณ ํ๋๊ฑฐ๊ณ .
์ค์ํ๊ฑด rigidbody๋ body๊ฐ์ ์ ์ฌํ ์ปดํฌ๋ํธ๋ฅผ ์ฐ๊ณ ์๋ค๋ฉด ์ด๋ฏธ ์๊ฐ ๊ธฐ๋ฐ ๋ฌผ๋ฆฌ์์ง์ผ๋ก ์์ ์ ํ๊ณ ์๋๊ฑฐ๋๊น ๊ฑฑ์ ๋ง๊ณ ๊ทธ๋ฅ ์ฐ๋ฉด ๋จ.
๋ฌธ์ ๋ transform ์ด๋ ๋ฌผ์ฒด์ ์ง์ ์ ์ธ ์์น๋ฅผ ์์๋ก ์ด๋์์ผ ๋ฒ๋ฆฌ๋ฉด ๊ทธ๋๋ถํด ํ๋ ์๊ธฐ๋ฐ ๋ฌผ๋ฆฌ์์ง์ ์ฐ๊ณ ์๋๊ฑฐ๊ณ , ๋์ค์ ์ต์ ํ๋ฅผ ๋ค ๋๋ด๊ณ ,
์ถ์๋์ ๋ฆด๋ฆฌ์ฆ๋ชจ๋๋ก ๋นผ๋ณด๋ฉด ์ด ๋ฒฝ์ด๋ ๋ถ๋ซํ์ผํ๋๋ฐ ํต๊ณผํด๋ฒ๋ฆฐ๋ค๋์ง, ์ด์ํ ๋ฒ๊ทธ๊ฐ ๋์ค๋ ๊ฒฝ์ฐ๊ฐ ์ฌ๊ธฐ์ ๋์ค๋๊ฑฐ์. ์ด๋ฐ ๋ฒ๊ทธ๋ฅผ ์ก์ผ๋ ค๋ฉด,
์ฒ์์ ๋ง๋ค๋๋ถํฐ ๋ชจ๋ ๋ณํ๋ ์น๊ตฌ๋คํํ ๋ ์๊ฐ์ ๊ณฑํ๋ ์ต๊ด์ ๋ค์ด๋๊ฒ ์ค์ํจ.
์ ์ฌ๋ฐ๋ค์
Time.deltatime
ใ ใ
๊ทธ๋ ๊ฒ ํ๋๊น ์คํ๋ ค ๋์ ํ๋ ์์์ ๋ ๋ง๊ณ ์ธ๋ฐํ ๊ณ์ฐ์ ํด๋ฒ๋ ค์ 60์์ ์๊ฑธ๋ฆฌ๋๊ฒ 120์์ ๊ฑธ๋ฆฌ๊ณ ์ด๋ฌ๋๋ฐ ๊ทธ๋์ ๋ ์๊ฐ์ ๋ฐ๋ผ ํ๋ ์์ด ๋์๊ฐ๋๋ก ํ์ 1/60์ด๋น 1ํ๋ ์, dt๊ฐ 1/30์ด๋ฉด ํ๋ ์ ๋ฃจํ๋ฅผ ๋๋ฒ ์คํํ๋๋ก
๊ทธ๋ฅ ์ด๊ฑฐ์ง? ์บ๋ฆญํฐ ์ด๋ํค ๋๋ฅด๋ฉด x += speed; ์ด๋ ๊ฒ ์ด๋ํ๊ฒํ๋ฉด ํ๋ ์์ ๋ฐ๋ผ ์๊ฐ๋น ์ด๋๋์ ๋ณ๋ํญ์ด ์๊ธฐ๊ณ , x += speed * t; ์ด๋ ๊ฒ ํด๋ฒ๋ฆฌ๋ฉด ํ๋ ์์ ๊ด๊ณ ์์ด ์๊ฐ๋น ์ด๋๋์ด ์ผ์ ํ๋ค๋๊ฑฐ~
ใ ใ