์๋
ํ์ธ์!
์ด์ ์๊ณ ํ๋๋ก ์ค๋๋ถํฐ ๊ฐ๋ฐ์ผ์ง๋ฅผ ์์ฑํ๊ฒ ๋์์ต๋๋ค
์ค๋์ ์ฌ์์ฑ, ํ๋ ์ด์ด ๊ธฐ๋ณธ ์์ง์ ๊ทธ๋ฆฌ๊ณ ๋ ์ ์์ผ๋ฉดย ๋ฐ์ด์ด๊น์ง๊ตฌํ์ ํด๋ณผ๋ผ๊ณ ํฉ๋๋ค
(์ด์ ์ ๊น ๋ง๋ค๋ค ๋งํด๋ฒ๋ฆฐ ๋๋ค ์ฌ ์์ฑ)
๊ทธ๋ฅ ์ด์ ๋๋ก ๋ง์กฑํ ๊น ์ถ๋ค๊ฐ ์ค๋ "ํ๋ฆฐ ๋ ธ์ด์ฆ"๋ผ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ๊ฒฌํ๊ฒ ๋์์ต๋๋ค
[์ฌ์ง1]
[์ฌ์ง2]
(๋๋ค ํผ์จ์ฌ์ง)
ํ๋ฆฐ๋ ธ์ด์ฆ๋ ์ ๊ฐ ์ ์ํ์๋ฉด ์ค๋ฌด์คํ ๋๋ค์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค
์๋ฅผ ๋ค์ดย https://web.archive.org/web/20070228082433im_/http://freespace.virgin.net/hugo.elias/models/prln_d6.gif
์ด ์ฌ์ง์ด ๋๋ค๊ฐ์ด๋ผ๊ณ ํ์๋ฉด ํ๋ฆฐ ๋ ธ์ด์ฆ ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ๋ฉด [์ฌ์ง1] ์ฒ๋ผ ๋์ค๊ฒ ๋๋๊ฒ์ด์ฃ
์ฌ์ค ์ ๊ฐ๋ง๋ค 2d ์ฌ์์ฑ ๊ฒฝ์ฐ์๋ย
๊ทธ๋ฅ ์ ๋ํฐ์์ ์ ๊ณตํ๋
https://docs.unity3d.com/ScriptReference/Mathf.PerlinNoise.html
์ ์ด์ฉํ์ฌ ๋ง๋ค์ด๋ ํ๋ฅญํ์ง๋ง
์ ๊ฐ ์๋ฆฌ๋ฅผ ์๊ณ ์ถ์ ์์ฌ์ด ์๊ฒจ์
์ด์ฌํ ๊ตฌ๊ธ๋งํ์ฌ ์ป์ ์ ๋ณด๋ฅผ ๋๋ ๋ณผ๊น ํฉ๋๋ค(์ ํํ์ง ์์ผ๋ฉฐ ์ฃผ๊ด์ด ๋ค์ด๊ฐ ๋ด์ฉ์ผ์ ์์ผ๋ ์ ์ ์ผ๋ก ์ ๋ขฐํ์ง๋ ๋ง์๊ธธ ๋ฐ๋๋๋ค)
์ ๊ฐ ์๊ฐํ๋ ํ๋ง๋ ธ์ด์ฆ๋
1. 100% ๋๋ค์ผ๋ก ์๋ฅผ ์์ฑ
2. ์๋ค์ ๋ถ๋๋ฝ๊ฒ ๋งค๊พธ๊ธฐ
3. ์๋ค์ ๋ถ๋๋ฝ๊ฒ ๋ง๋ค๊ธฐ
4.ํฉ์น๊ธฐ
์ผ๋จ ์ฒซ๋จ๊ณ์ธ ๋๋ค์ ์ ๊ฐ ์ ๋ชจ๋ฅด๊ธฐ๋ ํ๊ณ ์ค์ํ ๋ฌธ์ ๊ฐ ์๋๋ ๋์ด๊ฐ๋๋ก ํ๊ฒ ์ต๋๋ค
๋๋ฒ์งธ ๋จ๊ณ์ธ ์๋ค์ ๋ถ๋๋ฝ๊ฒ ๋งค์ฐ๊ธฐ์์ ์ ๋ํ์ ์ผ๋ก ์ ํ๋ณด๊ฐ , ์ฝ์ฌ์ธ ๋ณด๊ฐ,ย ์ฐจ ๋ณด๊ฐ ๋ฑ๋ฑ์ด ์๋๋ฐ์
๋ถ๋๋ฝ๊ฒ ๋งค์ฐ๋ ์์ ์ ํ๋ ์ด์ ๋
๋๋ค๊ฐ 1๊ณผ 2 ์ฌ์ด์ 1.5์ ๊ฐ์ ์ป๊ณ ์ถ์๋ ์ด์์ ์ ํ์ง ์์ผ๋ฉด ๋์ถํ ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋๋ค
๋ฐฉ๋ฒ๋ค์ ์ ๊ฐ ๋์์ ๋ง์ด ์ป์ ์ฌ์ดํธ์ธย https://web.archive.org/web/20080110032515/http://freespace.virgin.net/hugo.elias/models/m_perlin.htm ์ ์์ธํ๊ฒ
๋์์์ผ๋ ์ฐธ๊ณ ํ์๋ฉด ๋ ๋ฏ ํฉ๋๋ค
3๋ฒ์งธ ์๋ค์ ๋ถ๋๋ฝ๊ฒ ๋ง๋๋ ๋ฐฉ๋ฒ์ย
์ง๊ธ ๋๋ค๊ฐ์ ๋๋ค(x)๋ก ๋์๋ฉด ๊ทธ ์ ๋๋ค๊ฐ์ ๋๋ค(x-1) ๊ทธ ๋ค์ ๋๋ค๊ฐ์ย ๋๋ค(x+1) ์ด ๋๊ฒ ์ฃ ?
์ด ๊ฐ๋ค์ ํ๊ท ์ ๊ตฌํด์ ํ๋ก๊ทธ๋๋ฐ ํ๊ฒ ๋๋ฉด ๋๋ฌด ํํํ๊ฒ ๋๊ฒ ์ฃ ?
Noise(x)/2 + Noise(x-1)/4 + Noise(x+1)/4(๊ฐ์ธ์ ์ธ ์๊ฒฌ์ ๋๋ค)
๊ทธ๋์ ์ง๊ธ ๊ฐ์ 1/2๋ฅผ ๊ณฑํ๊ณ x-1 , x+1์ 1/4๋ฅผ ๊ณฑํ๋๋ฏ ํฉ๋๋ค
๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง ํฉ์น๊ธฐ ๋จ๊ณ๋ย
(๊ทธ๋ฆผ์ผ๋ก ๋ณด๋ฉด ํธํ๊ฒ ์ดํดํ ์ ์์ผ์ค๋ฏ ํฉ๋๋ค)
๊ทธ๋ฆผ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์๊น์ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ๋ง๋ค์ด์ง "์ฅํ๋ธ"๋ค์(๋ฐฉ๊ธ ๊ณผ์ ์ ๊ฑฐ์น๊ฒ๋ค์ ์ฅํ๋ธ๋ผ๊ณ ๋ถ๋ฅธ๋ค๋ค์)
ํฉ์น๋ ๊ฒ๋๋ค, ์ด๋ ค์ธ๊ฑฐ ๊ฐ์ฃ ?
ํ์ง๋ง ์ฝ์ต๋๋ค, ์ด์ ๋ ํ๋ง๋ ธ์ด์ฆ(x) ์ ๊ฐ๋ง , ์ฆ ์๊น ๋ถ๋๋ฝ๊ฒ ๋งค์ฐ๋ ์์ ์ ํ๋๊ฒ์ฒ๋ผ ํน์ ์์น์ ์๋ ๊ฐ๋ง ๊ตฌํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ๋๋ค
ํ์ง๋ง ๊ทธ๋ฅ ์ฅํ๋ธ๋ค์ ๋ค ๋ํ๋ค๋ฉด ์ผ์ง์ ์ ๊ทธ๋ฆฌ๊ฒ ์ฃ ?
๊ทธ๋์ ์ฅํ๋ธ๋ค์ด ๋ํด์ง์๋ก ๋ํด์ง ์ฅํ๋ธ๋ค์ ์ํฅ๋ ฅ์ ์ค์ด๋ฉด์, ์ธ๋ฐํ ๊ณณ๊น์ง ํํ์ด ๊ฐ๋ฅํ๊ฒ ๊ณผ๊ฒฉํ๊ฒ ๋ง๋ค ํ์๊ฐ ์์ต๋๋ค
๋ฐฉ๋ฒ์? ๊ฐ๋จํ์ฃ
์ฃผํ์๋ฅผ ๋๋ฆฌ๊ณ , ์งํญ์ ์ค์ด๋ฉด ๋ฉ๋๋ค
(๋ช์ฃผ์ ์ ๋ฐฐ์ด ๋น๊ณผ ํ๋์ด ๋์์ด ๋ ์ค ๋ชฐ๋๋ค์)
๊ทธ๋ฆฌ๊ณ ํน์ ์์น์ ๋๋ฆด ์ฃผํ์๋ฅผ ๊ณฑํ๊ณ ์ค์ผ ์งํญ์ ๋น์จ์ ๋๋๊ฒ์ ์ฅํ๋ธ๋ค์ ์๋งํผ ๋ํ๋ฉด ์์ฑ์ ๋๋คย
์ ์ด๋ ๊ฒ ์ค๋ช ์ด ๋๋ฌ์ต๋๋ค
์ ๋ ์ด๊ธ์์ ๊ธฐ์ ์ ์ธ ์ธก๋ฉด๋ณด๋ค๋ ์๋ฆฌ๋ฅผ ์ฐ๋ ค ๋ ธ๋ ฅํ๋๋ฐ์...
์ด๊ฑด ๊ธ์ด๋ผ๊ณ ๋ ํ ์ ์์์ ๋๋ก ๋ชป์ผ๋ค์.. ์ด๊ฒ๋ ์ค๋ํ๋ค๋ณด๋ฉด ์ค๋ ฅ์ด ์ข์์ง๋ฆฌ๋ผ ๋ฏฟ์ต๋๋ค
๊ทผ๋ฐ ๊ตฌํํ ๋๋ ์ ๋ํฐ์์ ๊ธฐ๋ณธ์ผ๋ก ๋ด์ฅ๋์ด ์๋ย
Mathf.PerlinNoise์ ์ฐ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ๋ฒ๊ฑฐ๋ก์ธ ์ผ ์์ด ๋ฌด๋ํ๊ฒ ๊ตฌํ ๊ฐ๋ฅํ๊ฒ ๋ค์
์ ๊ทธ๋ผ ๋ฐ๋ก ๊ตฌํํด๋ณด๊ฒ ์ต๋๋ค
???
์.. ์ผ๋จ ์ปดํจํฐ ์ฌ๋ถํ ์ด ํ์ํ ๋ฏ ํด์ ๊ธ์ด ๊ธธ์ด์ง๊ธฐ๋ ํ์ผ๋ #1.5 ์์ ๊ตฌํํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค
๋ง์ด ๋ถ์กฑํ๊ธ ๋ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค
์ถ์ฒ์ ์ ์๊ฒ ํ์ด๋ฉ๋๋ค!
์ฐ๊ตฌ ๋ง์ด ํ๋ค~ ์ถ~
๊ธ์์ ๋งํ๊ฑด value noise๊ณ ํ๋ฆฐ ๋ ธ์ด์ฆ๋ gradient noise์. ๋์ด ๋น์ทํ๋ฐ ๋๋คํ ๊ฐ์ ๊ตฌํด๋ด๋ ๋ฐฉ๋ฒ์ ์ฐจ์ด๊ฐ ์์. value noise๋ ๊ฐ ์ง์ ๋ง๋ค ๋๋คํ ์๋ฅผ ํ ๋นํ๊ณ ํด๋น ๊ฐ๋ค์ ์ด์ฉํด์ ์ p์ ๊ฐ์ ๊ตฌํ๋๋ฐ, gradiant noise๋ ๊ฐ ์ง์ ๋ง๋ค ๋ฒกํฐ๋ฅผ ํ ๋นํ๊ณ , ์ p์ ๊ฐ์ ๊ตฌํ ๋ ๋๋ฌ์ผ ์ง์ ๋ค์ ๊ทธ๋ผ๋์ธํธ ๋ฒกํฐ์, ์ง์ ๋ถํฐ p๊น์ง์ ๋ฒกํฐ์ ๋ด์ ์ ํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํจ. ์ ๋ํฐ ์ด๋ค๋ฉด ์์ ์คํ ์ด์ fastnoise ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ์ฒํจ. ์ง๊ธ์ฒ๋ผ ํ๊ณ ์ถ์๊ฒ ์์ ๋ ์ฐพ์์ ๊ณต๋ถํ๋๊ฒ ์ง์ง ์ฆ๊ฒ๊ฒ ๊ณต๋ถํ๋ ๋ฐฉ๋ฒ์ด๋ผ ์๊ฐํจ, ํ์ดํ .