์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- ์ค๋ง์ผ๊ฒ์ดํธ์ฅํํ
- game
- ์ง๋ธ๋ฌ์ฌ
- ๋ฒกํฐ
- ๊ทธ๋ํฝ์คAPI
- opengl
- CG
- Shader
- Blender
- 3d
- ๋ํ์
- Unity
- ๋ธ๋๋
- ์ค๋ง์ผ๊ฒ์ดํธ
- Modeling
- ์์
- smilegate
- zbrush
- ๊ฒ์
- ๊ฒ์๊ฐ๋ฐ
- ๋ฆฌ๊น
- ์ปดํจํฐ๊ทธ๋ํฝ์ค
- ๊ทธ๋ํฝ์ค
- ์ญํ
- ๊ฒ์์์ง
- ๋ชจ๋ธ๋ง
- ๊ฒ์์ํ
- ์ ๋ํฐ
- opengles
- rendering
- Today
- Total
๐ฅํธ์์์ GamLog
[OpenGL] OpenGL ES๋ฅผ ์ด์ฉํ 3์ฐจ์ ์ปดํจํฐ ๊ทธ๋ํฝ์ค ์ ๋ฌธ _ 3์ฅ ๋ณธ๋ฌธ
[OpenGL] OpenGL ES๋ฅผ ์ด์ฉํ 3์ฐจ์ ์ปดํจํฐ ๊ทธ๋ํฝ์ค ์ ๋ฌธ _ 3์ฅ
์ฅ์ฒ์งํฅ์ฌ 2023. 11. 14. 12:59
์ง๋ ์๊ฐ์ ์ด์ด OpenGL ES๋ฅผ ์ด์ฉํ 3์ฐจ์ ์ปดํจํฐ ๊ทธ๋ํฝ์ค ์
๋ฌธ ๋์๋ฅผ ํตํด
ํด๋ฆฌ๊ณค ๋ฉ์ฌ๊ฐ ์ด๋ป๊ฒ ์์ฑ๋๊ณ ์ ์ฅ, ์ ๋ฌ๋๋์ง์ ๋ํด ์์๋ณด๋ ค๊ณ ํ๋ค.
์ฐธ๊ณ ํ ๋์๋ ์๋์ ์๋ค.
[ OpenGL ES๋ฅผ ์ด์ฉํ 3์ฐจ์ ์ปดํจํฐ ๊ทธ๋ํฝ์ค ์
๋ฌธ ]
๋ชฉ์ฐจ๋ ์๋์ ๊ฐ๋ค.
๐พ๋ชฉ์ฐจ
1. ํด๋ฆฌ๊ณค ๋ฉ์ฌ
2. ํด๋ฆฌ๊ณค ๋ฉ์ฌ์ ํํ
3. ํ๋ฉด ๋
ธ๋ฉ
3_1. ์ผ๊ฐํ ๋
ธ๋ฉ
3_2. ์ ์ ๋
ธ๋ฉ
4. ํด๋ฆฌ๊ณค ๋ฉ์ฌ ๋ด๋ณด๋ด๊ธฐ์ ๋ถ๋ฌ์ค๊ธฐ
โ๏ธํด๋ฆฌ๊ณค ๋ฉ์ฌ
์ ์ ์ ์ด ์๋ ํด๋ฆฌ๊ณค๋ฉ์ฌ๋ฅผ ์ฌ์ฉํ๋๊ฐ?
ํด๋ฆฌ๊ณค ๋ฉ์ฌ๋ ์ ํํ ํํ๋ฒ์ด ์๋๋ผ ๋ถ๋๋ฌ์ด ๊ณก๋ฉด์ ๊ทผ์ฌ์ ์ผ๋ก ํํํ ๊ทผ์ฌ์ ํํ๋ฒ์ผ๋ก
GPU๋ ํด๋ฆฌ๊ณค ๋ฉ์ฌ ์ฒ๋ฆฌ์ ์ต์ ํ ๋์ด์๊ธฐ ๋๋ฌธ์ ์ค์๊ฐ ๋ ๋๋ง ์ฝํ
์ธ (๊ฒ์)์์๋ ํด๋ฆฌ๊ณค ๋ฉ์ฌ๊ฐ ์ ํธ๋๋ค.
ํด๋ฆฌ๊ณค ๋ฉ์ฌ์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ด ๋๋ ํด๋ฆฌ๊ณค์ ์ผ๊ฐํ์ด๋ค. ํ์ง๋ง ๋ชจ๋ธ๋ง ์์
์์๋ ์ฌ๊ฐํ ๋ฉ์ฌ๊ฐ ์ ํธ๋๋ค.
์ฌ๊ฐํ ๋ฉ์ฌ ํ๋๋ฅผ ๋๊ฐ์ ์ผ๊ฐํ ๋ฉ์ฌ๋ก ๋ถํ ํ์ฌ ์ผ๊ฐํ ๋ฉ์ฌ๋ฅผ ๋ง๋ค ์ ์๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ค์ผ๋ฌ ๊ณต์์ ๋ฐ๋ฅด๋ฉด ๋ซํ ๋ฉ์ฌ์์ ์ผ๊ฐํ ๋ฉ์ฌ์ ๊ฐ์๋ ์ ์ ๊ฐ์์ 2๋ฐฐ์ด๋ค.
์ ์ ๊ฐ์๊ฐ ๋ง์ผ๋ฉด ๋ฉ์ฌ์ ํด์๋๊ฐ ๋๋ค๊ณ ๋งํ๋ฉฐ ํด์๋๋ ์ ํ์ฑ๊ณผ ํจ์จ์ฑ ์ฌ์ด์ ์๋ฐ๊ด๊ณ๋ฅผ ๊ณ ๋ คํ์ฌ ๊ฒฐ์ ๋๋ค.
ํด์๋๊ฐ ๋์ ์๋ก ๋ฉ์ฌ๋ ๋ณธ๋์ ๊ณก๋ฉด๊ณผ ์ ์ฌํด์ง์ง๋ง ๋ฉ์ฌ ์ฒ๋ฆฌ์๊ฐ์ด ์ฆ๊ฐํด ํจ์จ์ฑ์ด ๋จ์ด์ง๋ค.
โ๏ธํด๋ฆฌ๊ณค ๋ฉ์ฌ๋ฅผ ํํํ๋ ๋ฐฉ๋ฒ
์ผ๊ฐํ ๋ฉ์ฌ๋ฅผ ํํํ๋ ๊ฐ์ฅ ๋จ์ํจ ๋ฐฉ๋ฒ์ ์ธ ์ ์ ์ ์์๋ก๋์ดํ๋ ๊ฒ์ด๋ค.
์ ์ ๋ค์ด ์ ์ฅ๋๋ ๊ณต๊ฐ์ธ ์ ์ ๋ฐฐ์ด์์ ํ๋ฒ์ ์ธ ์ ์ ์ ์ฝ์ด ์ผ๊ฐํ ๋ฉ์ฌ๋ฅผ ๋ง๋ค ์ ์๋ค.
์ด ๋ฐฉ๋ฒ์ ์ง๊ด์ ์ด์ง๋ง ์ค๋ณต๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๋ค๋ ๋จ์ ์ด ์๋ค.
์ด๋ฅผ ๋ณด์ํ ๊ฒ์ด ์ธ๋ฑ์ค ๋ฐฐ์ด์ด๋ค. ์ธ๋ฑ์ค ๋ฐฐ์ด์ ์ด์ฉํด ์ผ๊ฐํ์ ๊ทธ๋ฆฌ๋ฉด ๋์ผ ์ ์ ์ ์ค๋ณต์ ์ฅ ํ์ง์์๋ ๋๋ค.
์ ์์์ ๊ฒฝ์ฐ ๋ํ์ ๊ฐ์๊ฐ ์ ๊ณ ๋ํ์ด ๊ฐ๋ ๋ฒํ
์ค๊ฐ ์ ๊ธฐ๋๋ฌธ์ ์ฐจ์ด๊ฐ ์์ด๋ณด์ด์ง๋ง ํ์ดํด๋ฆฌ๋ฅผ ๊ฐ๋ ๋ชจ๋ธ์ ์ฒ๋ฆฌํ๋ ๊ฒฝ์ฐ์๋
๋ฐ์ดํฐ ํฌ๊ธฐ์ ์ฐจ์ด๊ฐ ๋น๊ตํ ์ ์์ด ์ฐจ์ด๋๋ค. ๊ทธ ๋๋ ์ธ๋ฑ์ค ๋ฐฐ์ด์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋์ฑ ํจ์จ์ ์ผ ๊ฒ์ด๋ค.
Open GL์์๋ ์ ์ ๋ฐฐ์ด๋ง์ ์ฌ์ฉํ๋ ํํ๊ณผ ์ธ๋ฑ์ค ๋ฐฐ์ด์ ์ฌ์ฉํ๋ ๊ฒ์ ํฌํจํ ํํ ๋ชจ๋๋ฅผ ์ง์ํ๊ณ ์๋ค.
ํ์ง๋ง ์ ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ ๊ฑฐ์ ์๋ค๊ณ ๋ด๋ ๋ฌด๋ฐฉํ๋ค.
โ๏ธํ๋ฉด ๋ ธ๋ง
- ์ผ๊ฐํ ๋
ธ๋ง
: ์ผ๊ฐํ ํ๋ฉด์ ์์ง์ธ ๋ฒ์ ๋ฒกํฐ๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
<p1, p2, p3>๋ก ์ด๋ฃจ์ด์ง ์ผ๊ฐํ๋ฉ์ฌ๋ก ๊ฐ์ ํ ๋, ์ p1์ p2๋ฅผ ์๋ ๋ฒกํฐ v1๊ณผ p1์ p3๋ฅผ ์๋ ๋ฒกํฐ v2์ ๋ฒกํฐ๊ณฑ์ด ์ผ๊ฐํ ๋
ธ๋ง๋ก ์ ์ ๋ ์ ์๋ค.
์ปดํจํฐ ๊ทธ๋ํฝ์ค์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ๋
ธ๋ง์ ๋จ์๋ฒกํฐ๋ก ํํํ๋ค.
๋ฐ๋ผ์ v1 x v2๋ฅผ ์์ ์ ๊ธธ์ด๋ก ๋๋๋ ์ ๊ทํ ๊ณผ์ ์ ์ํํ๋ค.
์๋๋ ์ ๊ทํ์์ ์ ๋ฆฌํ ๊ฒ์ด๋ค.
n12์ n21์ ์์ ๋งํ๋ฐ์ ๊ฐ์ด ๋ฐ๋๋ฐฉํฅ์ ๊ฐ๋ฆฌํจ๋ค.
์ฆ, ์ผ๊ฐํ๋
ธ๋ง์ ๋ฐฉํฅ์ ์ ์ ์์๊ฐ p1,p2,p3 ์ธ์ง p1,p3,p2์ธ์ง์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค๋ ๊ฒ์ด๋ค.
์ ์ผ๊ฐํ์ ์ค๋ฅธ์ ๋ฒ์น์ ๋ฐ๋ฅด๋ฉด, ๋ฐ์๊ณ ๋ฐฉํฅ์ผ๋ก ์ ์ ์ด ์ ๋ ฌ๋๊ณ ๋ฌผ์ฒด ํ๋ฉด์์ ๋ฐ๊นฅ์ชฝ์ ํฅํ๋ ๋
ธ๋ฉ์ ์์ฑํ๋ค. < p1,p2,p3 >
๋ฐ๋์ ๊ฒฝ์ฐ, ์๊ณ๋ฐฉํฅ์ผ๋ก ์ ๋ ฌ๋ ์ ์ ์ ๋ฌผ์ฒด ์์ชฝ์ ํฅํ๋ ๋
ธ๋ฉ์ ์์ฑํ๋ค. < p1,p3,p2 >
- ์ ์ ๋
ธ๋ง
: ์ปดํจํฐ ๊ทธ๋ํฝ์ค์์ ์ค์ ์ค์ํ ๊ฐ๋
์ผ๋ก ์ผ๊ฐํ์ ์์ง์ธ ๋ฒกํฐ๋ก ์ ์๋๋ ์ผ๊ฐํ ๋
ธ๋ฉ์ ๋นํด, ์ ์ ๋
ธ๋ฉ์ ์ง๊ด์ ์ผ๋ก ์ค๋ช
ํ๊ธฐ๊ฐ ํ๋ค๋ค.
์ ์ ๋
ธ๋ฉ์ ํด๋ฆฌ๊ณค ๋ฉ์ฌ์ ์ ์ ์ด ์ํํ ๊ณก๋ฉด์ ์์ง์ธ ๊ฒ์ด๋ค. ํด๋ฆฌ๊ณค ๋ฉ์ฌ๋ง์ด ์ฃผ์ด์ก์ ๋ ์ ์ ๋
ธ๋ฉ์ ๊ณ์ฐํ๋ ์ ๋ต์ ์๋ค.
๋ค๋ง, ๊ทธ๋ด๋ฏํ ๊ฒฐ๊ณผ๋ฅผ ๋ด๋ ๊ธฐ๋ฒ๋ง์ด ์์ ๋ฟ์ด๋ค.
๊ทธ์ค ํ๊ฐ์ง ๋ฐฉ๋ฒ์ ํ ์ ์ ์ ๊ณต์ ํ๋ ์ผ๊ฐํ ๋
ธ๋ฉ๋ค์ ํ๊ท ์ ์ทจํ๋ ๊ฒ์ด๋ค.
๋ณดํต ์ ์ ๋
ธ๋ง์ 3Ds Max๋ฑ๊ณผ ๊ฐ์ ํจํค์ง๊ฐ ์๋์ผ๋ก ๊ณ์ฐํ๋ค.
โ๏ธํด๋ฆฌ๊ณค ๋ฉ์ฌ ๋ด๋ณด๋ด๊ธฐ/๋ถ๋ฌ์ค๊ธฐ
: ๋ณดํต ํด๋ฆฌ๊ณค ๋ฉ์ฌ๋ ๊ทธ๋ํฝ์ค ํจํค์ง(3Ds Max)๋ฅผ ์ฌ์ฉํด ์คํ๋ผ์ธ์์ ๋ง๋ค์ด์ง๊ณ —-> ๋ฐํ์ธ ์์ฉํ๋ก๊ทธ๋จ(unity)๋ก ๋๊ฒจ์ง๋ค.
์ด๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ ํฉํ ํํ๋ก ์ถ๋ ฅํ๋ ํ์๋ฅผ Export(๋ด๋ณด๋ด๊ธฐ) ๋ผ๊ณ ํ๊ณ
์ด ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ค๋ ๊ณผ์ ์ Import(๋ถ๋ฌ์ค๊ธฐ)๋ผ๊ณ ํ๋ค.
๋ํ์ ์ธ ๊ทธ๋ํฝ์ค ํจํค์ง 3Ds Max๊ฐ ์ง์ํ๋ ๋ํ์ ์ธ ํ์ผ ํฌ๋งท์ค ํ๋๋ [ .obj ]ํ์ฅ์์ด๋ค.
์ด๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ์ ์์น, ๋
ธ๋ฉ, ์ผ๊ฐํ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ค.
์ด๋ ๊ฐ v(vertex), vn(vertex normal),f(face)๊ธฐํธ๋ก ๋ํ๋๋ฉฐ 3์ฐจ์ ์ค๋ธ์ ํธ์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋๋ฐ ๊ฐ์ด๋๊ฐ ๋๋ค.
v, vn์ผ๋ก ์์ํ๋ ์ค์ ๊ฐ ์ ์ ์์น์ ๋
ธ๋ฉ์ 3์ฐจ์ ์ขํ๋ฅผ ๊ธฐ๋กํ๊ณ
f๋ ์ค๋ธ์ ํธ๋ฅผ ๊ตฌ์ฑํ๋ ์ผ๊ฐํ์ ๊ฐ์๋ฅผ ๋งํ๋ค. ํ ์ผ๊ฐํ์ ์ธ๊ฐ์ ์ ์ ์์น์ ๋
ธ๋ฉ์ ์ ๋ณด๋ฅผ ์์ผ๋ก ๊ธฐ๋กํ๋๋ฐ ์ด ๋์ //๋ก ๊ตฌ๋ถ๋๋ค.
1//1 ์ ์์น(0, 1, 0), ๋
ธ๋ฉ(0, 1, 0)์ธ ์ ์ ์ ๋งํ๋ค.
์ด์ ๊ฐ์ด .obj๋ฅผ ํตํด ์์ฉํ๋ก๊ทธ๋จ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ผ๋ก ์ด๋๋ ๋ฐ์ดํฐ๋ ์์ ๊ฐ์ ๊ธฐํธ๋ฅผ ํตํด ์ ์ ๋ฐฐ์ด๊ณผ ์ธ๋ฑ์ค๋ฐฐ์ด์ ๋ณด์ฌ์ค๋ค.
์ค๋์ ์ํฐ์คํธ๊ฐ ๋ชจ๋ธ๋งํ ์ค๋ธ์ ํธ๊ฐ ๊ฒ์์์ง์ผ๋ก ๋์ด์ค๊ธฐ๊น์ง ์ด๋ค ๊ณผ์ ์ ๊ฑฐ์น๊ณ ์ด๋ป๊ฒ ๊ตฌ์ฑ๋์๋์ง ๋ฑ์ ์์๋ณด๋ ์๊ฐ์ ๊ฐ์ก๋ค.
๋ค์์๊ฐ์ ์ขํ๊ณ์ ํ๋ ฌ์ ๋ํด ์ง๋ํ๊ฒ ์์๋ณด์

'Unity > OpenGL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[OpenGL][VAO, VBO] ์ผ๊ฐํ๊ทธ๋ฆฌ๊ธฐ (0) | 2023.11.17 |
---|---|
[OpenGL] OpenGL ES๋ฅผ ์ด์ฉํ 3์ฐจ์ ์ปดํจํฐ ๊ทธ๋ํฝ์ค ์ ๋ฌธ _ 1์ฅ, 2์ฅ (2) | 2023.11.05 |