โ 5์ฅ ์ฐ์ต๋ฌธ์
1. ์ ๊ธฐ ํจ๋์ ์ํ ํฐ์น ์คํฌ๋ฆฐ์์๋ ํ๋ฉด ํ๋ฉด์ ๋ง์ ์ธ๊ฒ ๋๋ฅด์ง ์์๋ ์์น๊ฐ ๊ฐ์ง๋๋ค. (True / False)
→ ๊ดํ ํจ๋์ ๋น์ ์๊ฐ๋ฝ์ด ๊ฐ๋ฆฌ๋ฉด ๋๋ฅธ ๊ฑธ๋ก ๊ฐ์ง๋ฅผ ํ์ง๋ง ์ ๊ธฐ ํจ๋์ ๋ง์ด ๋๋ฆฌ๊ณ ๋ฟ๋ ๊ฒ์ ์ํด์ ์์น๋ฅผ ๊ฐ์งํ๊ธฐ ๋๋ฌธ์ ํ๋ฉด์ ๋ง์ ์ธ๊ฒ ๋๋ฌ์ผ ํ๋ค.
2. ์ ๋ ฅ ์ฅ์น์ ์ ํ์ ๊ดํ ํ ๋ฆฌํ์คํธ ๋ชจ๋์์๋ ์ฌ์ฉ์๊ฐ ์ฃผ๋๊ถ์ ์ฅ๋ค. (True / False)
→์ด๋ฒคํธ ๋ชจ๋์์ ์ฌ์ฉ์๊ฐ ์ ๋ ฅ ์ฅ์น ์ ํ์ ์ฃผ๋๊ถ์ ์ฅ ์ ์๋ค.
3. ์ง์์์ ์ฝ๋ฐฑ ํจ์๋ฅผ ๋ฑ๋กํ๋ ๋ช ๋ น์ด๋ ์๋ก ์์๊ฐ ๋ฐ๋์ด๋ ๋๋ค. (True / False)
→ ํด๋น ์ด๋ฒคํธ๊ฐ ๋ฐ์์, ํด๋น ์ด๋ฒคํธ ์ฝ๋ฐฑํจ์์ ๋ฑ๋ก๋ ๊ฒ์ด ์คํ๋๋ ๊ฒ์์ผ๋ก ์์๊ฐ ๋ฐ๋์ด๋ ์๊ด ์๋ค.
4. ์ง์ ํ๋ก๊ทธ๋จ์์๋ ์ฝ๋ฐฑ ํจ์ ์ฌ์ด์ ํ๋ผ๋ฏธํฐ ๊ฐ์ ์ง์ญ ๋ณ์๋ก ๊ณต์ ํ ์ ์๋ค. (True / False)
→ ์ง์ญ๋ณ์๊ฐ ์๋๋ผ ์ ์ญ ๋ณ์์ ํํ๋ก ๊ณต์ ํ๋ค.
5. ์๋์ฐ ์ด์์ฒด์ ์ ํ๋ฉด ์ขํ๊ณ์ GLUT ํ๋ฉด ์ขํ๊ณ๋ ์์ ํ ์ผ์นํ๋ค .(True / False)
→์๋์ฐ์ GLUT๋ ์ข์๋จ ์์ , GL์ ์ขํ๋จ ์์
6. ํ๋์ ๋ทฐ ํฌํธ๋ ์ฌ๋ฌ ๊ฐ์ ์๋์ฐ๋ก ๋๋ ์ ์๋ค. (True / False)
→ ๋ฐ๋๋ก, ํ๋์ ์๋์ฐ๋ฅผ ์ฌ๋ฌ๊ฐ์ ๋ทฐํฌํธ๋ก ๋๋ ์ ์๋ ๊ฒ ๊ฐ๋ค.
7. ์๊ณก์ด ์ผ์ด๋๋ ์ด์ ๋ ํ๋ฉด์ ์ข ํก๋น๊ฐ ์ ์ง๋์ง ์๊ธฐ ๋๋ฌธ์ด๋ค. (True / False)
8. ์๋์ฐ ๋ด๋ถ ๋ฐฐ๊ฒฝํ๋ฉด์ ํ์์ผ๋ก ์ฑ์ฐ๋ ํจ์๋ glClearColor(0.0, 0.0, 0.0, 1.0)์ด๋ค. (True / False)
→glClearColor์ ํ์ฌ ํ๋ ์์ ์ฑ์ธ ์์์ ์ค์ ํ๋ ํจ์๋ก R,G,B,A ๊ฐ์ ์ธ์๋ก ๋ฐ๋๋ค. glClear ํธ์ถ ์ ์ glClearCOlor ๋ฅผ ํธ์ถํด ๋ฐฐ๊ฒฝ์์์ ๋ฐ๊ฟ์ผํ๋ค.
9. glViewport ํจ์์ ์ํด ๋ทฐ ํฌํธ๋ฅผ ๋ณ๋๋ก ์ค์ ํ์ง ์์ผ๋ฉด, ๋ทฐ ํฌํธ๋ ํญ์ ์๋์ ์ผ๋ก ํ์ฌ ์๋์ฐ์ ์ผ์นํ๋ค. (True / False)
10. glutDisplayFunc( )์ ์ฅ๋ฉด์ ๋์คํ๋ ์ดํ๋ ํจ์๋ก, ํ๋ก๊ทธ๋จ ์ํ ์ค ์ธ์ ๋ผ๋ ํ๋ก๊ทธ๋๋จธ๊ฐ ์ง์ ํธ์ถ ํ ์ ์๋ค. (True / False)
→ ์ด ํจ์๋ ์ฝ๋ฐฑํจ์๋ฅผ ๋ฑ๋กํ๋ ํจ์์ด๊ณ . ๋์คํ๋ ์ด ์ฝ๋ฐฑ์ด ํธ์ถ๋๋ ๊ฒฝ์ฐ์๋ง ํธ์ถํ๋ค.
11. ๋ณด๋ฅ ๋ชจ๋์์๋ ๋ฌผ์ฒด๋ฅผ ํ๋ฉด์ ๊ทธ๋ฆผ๊ณผ ๋์์ ๋ฌผ์ฒด ์์ฑ๊ณผ ๊ด๋ จ๋ ๋ชจ๋ ์ ๋ณด๋ฅผ ํ๊ธฐํด ๋ฒ๋ฆฐ๋ค. (True / False)
→ ์ง์ ๋ชจ๋์ ๋ณด๋ฅ ๋ชจ๋ ์ค ์์ ์ค๋ช ์ ํด๋นํ๋ ๊ฒ์ ์ง์ ๋ชจ๋.
12. ๋์คํ๋ ์ด ๋ฆฌ์คํธ์ ๋ช ๋ น์ด๋ ๋ค์ด๊ฐ ์ ์๋ค. (True / False)
13. ์ค๋ฅธ์ ๋ฒ์น์ ์ฌ์ฉํ์ฌ ์์๋๋ก ์ ์ ์ ๋์ดํ ๋ ์์ ์ ์์ง์๊ฐ๋ฝ ๋ฐฉํฅ์ ์กด์ฌํ๋ค. (True / False)
14. ์คํ์ด์ค ๋ณผ์ ์์ ๋๊ฐ ( 6 )์ธ ์ฅ์น์ด๋ค.
15. ๋น์ ์ธ๊ธฐ๋ฅผ ์ ๊ธฐ ์ ํธ๋ก ๋ฐ๊พธ๊ธฐ ์ํ ์นด๋ฉ๋ผ ์์๋ฅผ ( CCD )์ด๋ผ ํ๋ค.
16. ๋ฉ๋ด๋ฅผ ์ ํํ๊ธฐ ์ํ ๋ ผ๋ฆฌ์ ์ ๋ ฅ ์ฅ์น๋ฅผ ( ๋ฉ๋ด์ ํ์ ๋ ฅ๊ธฐ_choice )์ด๋ผํ๋ค.
17. ๋ฌผ์ฒด๋ฅผ ์ ํํ๊ธฐ ์ํ ๋ ผ๋ฆฌ์ ์ ๋ ฅ ์ฅ์น๋ฅผ ( ๋ฌผ์ฒด์ ํ์ ๋ ฅ๊ธฐ_pick )์ด๋ผํ๋ค.
18. ์ ๋ ฅ ์ฅ์น๊ฐ ์์ฉ ํ๋ก๊ทธ๋จ์์ ๋๊ฒจ์ฃผ๋ ๊ฐ์ ( ๋ฉ์ _measure )์ด๋ผ ํ๋ค.
19. ํ์ฌ ๋ค์ด์ ์๋ ๋ฉ์ ๋ฅผ ๊ทธ๋๋ก ๊ฐ์ ธ๊ฐ๋ ์ ๋ ฅ ๋ชจ๋๋ ( ์ํ ๋ชจ๋ )์ด๋ค.
20. ์ง์ ํ๋ก๊ทธ๋จ์์ ์ด๋ฒคํธ ๋ฃจํ๋ก ์ง์ ํ๋ผ๋ ๋ช ๋ น์ด๋ ( glutMainLoop( ) )์ด๋ค.
21. ์ง์ ํ๋ก๊ทธ๋จ์ ์ด๋ฒคํธ ์ฒ๋ฆฌ๋ ( GLUT )์ ํธ๋ฆฌํฐ์ ์ํด ์ด๋ฃจ์ด์ง๋ค.
22. ์๋์ฐ ์์น๋ฅผ ์ฎ๊ธฐ๊ฑฐ๋ ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ ๋ ์๋์ผ๋ก ํธ์ถ๋๋ ์ฝ๋ฐฑ ํจ์๋ ( glutReshapeFunc() )์ฝ๋ฐฑ์ด๋ค.
23. ํ๋ฉด์ ๋ณด์ด๊ณ ์ ํ๋ ๋ฌผ์ฒด์ ๋ฒ์๋ฅผ ์ง์ ํ ๋ถํผ๋ฅผ ( ๊ฐ์ ๋ถํผ )๋ผ๊ณ ํ๋ค.
24. ์ฌ๊ฐํ์ ๊ทธ๋ฆด ๋ ์ข์๋จ์ ๋ง์ฐ์ค ํด๋ฆญํ๊ณ ์ด์ด ๋ง์ฐ์ค๋ฅผ ์ฐํ๋จ์ผ๋ก ๋์ด๋ด๋ฆฌ๋ ๋์ค์ ์ฌ๊ฐํ์ ํฌ๊ธฐ๊ฐ ์ง์์ ์ผ๋ก ๋ณํ๋ค. ์ด๋ฅผ ( ๋ฌ๋ฒ ๋ฐด๋ฉ )์ด๋ผ ํ๋ค.
25. ์ด๋ฒคํธ ํ์ ์๋ฌด๋ฐ ์ด๋ฒคํธ๊ฐ ์์ ๋ ์๋์ผ๋ก ์ํํ๋ ์ฝ๋ฐฑ ํจ์๋ (์์ด๋ค _ Idle )์ฝ๋ฐฑ์ด๋ค.
26. ํ๋ ์ ๋ฒํผ๋ ์ฝ๊ธฐ์ ์ฐ๊ธฐ๊ฐ ๋์์ ์์ชฝ์์ ์งํ๋๋ ( ์ด์ค )ํฌํธ ๋ฉ๋ชจ๋ฆฌ๋ค.
27. ๋๋ธ ๋ฒํผ๋ง์ ์ฌ์ฉํ ๋ ํ์ฌ ์ฐ๊ธฐ๊ฐ ์งํ๋๋ ๋ฒํผ๋ ( ๋ฐฑ )๋ฒํผ๋ค.
28. ์ ์ ์ ๊ตฌ์ฒด์ ์ขํ ๋์ ์ ์ ์์ด๋๋ง์ ๋์ดํ ๋ชฉ๋ก์ ( ์ ์ ๋ฆฌ์คํธ ๋๋ ์ ์ ๋ฐฐ์ด )์ด๋ผ ํ๋ค.
29. ํด์๋ 1024*768์ ๊ธฐ์ค์ผ๋ก ํ ๋ ์ง์์ ํ๋ฉด ์ขํ (200,400)์ GLUT ํ๋ฉด ์ขํ ( 200, 368 367 )์ด๋ค.
30. ์ด ์ฅ์ ์ ์๋ ์ฝ๋ ์ค ํ๋๋ฅผ ์ ํํ๋, ์ฝ๋ ์ผ๋ถ๋ฅผ ๋ณ๊ฒฝํ์ฌ ์๋ก์ด ํ๋ก๊ทธ๋จ์ ์์ฑํ๊ณ ๋ฐํํด๋ณด๋ผ.
31. ๋ค์ 3๊ฐ์ ๋ช ๋ น์ด๊ฐ ๊ฐํด์ง ๊ฒฝ์ฐ ํ๋ฉด์ ๊ทธ๋ ค์ง๋ ์๋์ฐ์ ์ ํํ ์์น, ํฌ๊ธฐ, ๋ชจ์ต์ ๊ทธ๋ ค๋ณด๋ผ.
glutInitWindowPosition(80,30);
glutWindowSize(200,100);
glutCreateWindow("My Window");
→
โ 5์ฅ ๋ด์ฉ์ ๋ฆฌ
01) ๊ทธ๋ํฝ ์ ๋ ฅ ์ฅ์น
- ๋ฌผ๋ฆฌ์ ์ ๋ ฅ ์ฅ์น
: ์๋์ ๋ ฅ๊ณผ ์ ๋์ ๋ ฅ์ ์ํด ๊ตฌ๋ถ. ์๋์ ๋ ฅ์ฅ์น์์๋ ์ ๋ ฅ ์์น์ ๋ณํ๋ ์ ๋ ฅ, ์ด์ ์์น์ ๋ณํ๋์ ๋ํ์ฌ ์ ๋ ์์น๋ฅผ ๊ณ์ฐํ๋ ๊ฒ์ ์ด์์ฒด์ ์ ๋ชซ. ์ ๋์ ๋ ฅ์ฅ์น์๋ ์ ๋์ ์ธ ์ ๋ ฅ ์์น๊ฐ ๊ทธ๋๋ก ์ ๋ ฅ.
(๋์งํ์ด์ง: ์ปดํจํฐ๊ฐ ๊ทธ๋ฆผ์ ์ฒ๋ฆฌํ ์ ์๋๋ก ๋์งํธ ์ ๋ณด๋ก ๋ฐ๊พผ๋ค๋ ์๋ฏธ)
(ํ๋ชจ์์ ์ ๋ ฅ ์ฅ์น = ์คํ์ผ๋ฌ์ค : ํ์ ์์ง์ด๋ ๋์ ๋ชจ๋ ์ขํ๊ฐ ์ ๋ ฅ. ↔ ํ๋ธ๋ฆฟ์ ๋ฒํผ ํด๋ฆญ ์ ์๊ฐ์ ์ ์ขํ๋ง ์ ๋ ฅ)
(ํ๋ธ๋ฆฟ์์ ํฌ๋ช ๋ง์ ์ด๋์ ๋ฟ๋๋์ ์ ๋ ฅ ์ขํ์ ํํ๋ก ํ๋ก๊ทธ๋จ์ ์ ๋ฌํ๋๋ฐ, ์ฌ๊ธฐ์ ๋ ๊ฐ์ง ๋ฐฉ์์ด ์๋ค. ๊ดํ ํจ๋์ ๋ง์ ๋๋ฅด์ง ์์๋ ์์น๊ฐ ๊ฐ์ง๋๋ค. ์๊ฐ๋ฝ์ด ๋๋ฅด๋ฉด ๋น์ด ์ ๋ฌ๋์ง ์์์ ์์น๋ฅผ ๊ฐ์งํ๋ค. ์ ๊ธฐํจ๋์ ์ธ๋ถ ๋ง์ ๋๋ฅด๋ฉด ๋๋ฅธ ๊ณณ๋ง ๋ดํผ์ ๋ฟ๊ณ ์ฌ๊ธฐ์ ์ ๋ฅ๊ฐ ๋ฐ์ํ๋ค. )
- ๋ ผ๋ฆฌ์ ์ ๋ ฅ ์ฅ์น
: ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์๋ค์ด๋ ๋ฐ๋ ํค๋ณด๋๋ ๋ง์ฐ์ค ๋ฑ์ ๋ฌผ๋ฆฌ์ ์ฅ์น๋ฅผ ์ฌ์ฉํ๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ํฝ ์ํํธ์จ์ด๋ฅผ ์์ฑํ ๋๋ ๋ฌผ๋ฆฌ์ ์ฅ์น์ ๋ ผ๋ฆฌ์ ์ฅ์น๋ฅผ ๊ตฌ๋ถํ ํ์๊ฐ ์๋ค.
์์ค ์ฝ๋ ๋ด์์ ๋ฌผ๋ฆฌ์ ์ธ ์ ๋ ฅ ์ฅ์น์ ์ข ๋ฅ๋ฅผ ๊ตฌ์ฒด์ ์ผ๋ก ์ง์ ํ๋ ๋์ ์, ์ ๋ ฅ ๊ธฐ๋ฅ์ ๋ฐํ์ ๋ ๋ ผ๋ฆฌ์ ์ ๋ ฅ ์ฅ์น๋ฅผ ์ง์ ํ๋๋ก ํ๋ค.
-
์ขํ์ ๋ ฅ๊ธฐ(Locator)
-
์ฐ์์ขํ์ ๋ ฅ๊ธฐ(Stroke)
-
๋ฌธ์์ด์ ๋ ฅ๊ธฐ(String)
-
์ค์นผ๋ผ์ ๋ ฅ๊ธฐ(Valuator)
-
๋ฉ๋ด์ ํ์ ๋ ฅ๊ธฐ(Choice)
-
๋ฌผ์ฒด์ ํ์ ๋ ฅ๊ธฐ(Pick)
- ๋ฌผ์ฒด ์ ํ
: 1) ํด๋ฆญํ ๊ณณ์์ ๊ฐ๊น์ด ๋ฌผ์ฒด ์ ํ 2) ํด๋ฆญ ์์น๋ฅผ ์ค์ฌ์ผ๋ก ํฝ ์๋์ฐ ๋ณด์ฌ์ค
3) ํด๋ฆญ๋ ๋ถ๋ถ์ ์ค์ฒฉ๋ ๋ชจ๋ ๋ฌผ์ฒด๋ฅผ ์์ฐจ์ ์ผ๋ก ๋ณด์ฌ์ฃผ๋ฉฐ ์ฌ์ฉ์ ์ ํ 4) ์ ํ ๋ฌผ์ฒด๋ช ํค๋ณด๋ ์ ๋ ฅ
02) ์ ๋ ฅ ๋ชจ๋
: ์ ๋ ฅ์ฅ์น์ ์์ฉ ํ๋ก๊ทธ๋จ ์ฌ์ด์ ์ด๋ค ๋ฐ์ ์ผ๋ก ์ํธ ์์ฉ์ด ์ผ์ด๋๋์ง์ ๋ฐ๋ผ ์ ๋ ฅ ๋ชจ๋๋ฅผ ๋๋๋ค.
- ๋ฉ์ : ์ ๋ ฅ์ฅ์น๊ฐ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋๊ฒจ์ฃผ๋ ๊ฐ
- ํธ๋ฆฌ๊ฑฐ: ๋ฉ์ ๋ฅผ ๊ฐ์ ธ๊ฐ๋ผ๋ ์ ํธ
- ๋ฉ์ ํ๋ก์ธ์ค : ๋ฉ์ ๋ฅผ ์ธ์ํ์ฌ ์ ์ฅํ๋ ๊ณผ์ , ์ผ๋ฐ์ ์ผ๋ก ์ฅ์น๋ฅผ ์ด๊ธฐํ ํ ๋ ์คํ๋๊ธฐ ์์ํ๋ค.
→ ๋ฉ์ ํ๋ก์ธ์ค์ ํธ๋ฆฌ๊ฑฐ์ ๊ด๊ณ๋ฅผ ๊ธฐ์ค์ผ๋ก 3๊ฐ์ง ์ ๋ ฅ๋ชจ๋ ๊ตฌ๋ถํ๋ค.
1. ๋ฆฌํ์คํธ ๋ชจ๋
: ํ๋ก๊ทธ๋จ์ด ์คํ ์ค์ ๋ฉ์ ๋ฅผ ์๊ตฌํ๋ ๋ฐฉ์
2. ์ํ ๋ชจ๋
: = ์ง์ ๋ชจ๋,
3. ์ด๋ฒคํธ ๋ชจ๋
: ์ ๋ ๋ชจ๋๋ ํ๋ก๊ทธ๋จ์ด ์ง์ ํ ๋ฌผ๋ฆฌ์ ์ฅ์น ์ธ์ ์ ๋ ฅ ์ฅ์น์ ์ ๋ ฅ์ด ๋ฌด์๋๋ค.
์ด๋ฒคํธ ๋ชจ๋๋ ์ฌ์ฉ์๊ฐ ์ ํํ ์ ๋ ฅ ์ฅ์น๊ฐ ์ฐ์ ๊ถ์ ์ฅ๋ค. ์๋ฌด๋๋ ์์๋ก ์ ํํ ์ ๋ ฅ ์ฅ์น๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ํ๋ก๊ทธ๋จ์ ์ ๋ฌํ ์ ์๊ณ , ํ๋ก๊ทธ๋จ์ ์ด๋ฌํ ์๊ตฌ์ ๋ง์ถ์ด ํด๋น ์์ ์ ์ํ.
์ ๋ ฅ์ฅ์น๊ฐ ํธ๋ฆฌ๊ฑฐ ๋๋ ์๊ฐ ํ๋์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๊ฒ์ผ๋ก ๋ณธ๋ค. ์ด๋ฒคํธ ํ๋ฅผ ์ฌ์ฉํ๋ค.
์ด๋ฒคํธ ๋ชจ๋๋ฅผ ์ฌ์ฉํ๋ ์์คํ ์ ์ด๋ฒคํธ ๊ตฌ๋ ์์คํ ์ด๋ผ๊ณ ํ๋ค.
์ฝ๋ฐฑํจ์๋ ์์ฉ ํ๋ก๊ทธ๋จ์ด ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋งํ๋ค.
์ด๋ฒคํธ ํ์ ๋ณ๋ก ํ๋ก๊ทธ๋จ์ด ์ํํด์ผ ํ ๋ด์ฉ์ ํจ์๋ก ๋ํ๋ธ ๊ฒ์ด๋ค.
์ฒ์ ์ ๋ ฅ ์ฅ์น ์ด๊ธฐํ ์ดํ, ๋ชจ๋ ์ด๋ฒคํธ๋ ๋ฃจํ ๋ฌธ(loop structure)์ ์ํด ์ฒ๋ฆฌ๋๋ค. ์๋ก์ด ์ด๋ฒคํธ๊ฐ ํ์ ๋ค์ด์๋์ง๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ๊ฒ์ฌํ๋ค.
03) ์ง์ ํ๋ก๊ทธ๋จ์ ์
: ์ง์ ํ๋ก๊ทธ๋จ์ ์๋์ฐ ๊ธฐ๋ฅ ๋ฐ ์ ์ถ๋ ฅ ์ ์ด์ ์์ด์ GLUT ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฏํ๋ค.
์๋ ์ฌ์ง์ฒ๋ผ GLUT๋ ์ง์ ํ๋ก๊ทธ๋จ๊ณผ ๋๋ผ์ด๋ฒ ์ฌ์ด์์ ์ธํฐํ์ด์ค ์ญํ ์ ํ๋ค.
GLUT๋ ํ๋ก๊ทธ๋๋จธ๊ฐ ๋ฑ๋กํ ํจ์๋ฅผ ์ฝ๋ฐฑ ํ ์ด๋ธ ํํ๋ก ์ ์ฅํ๋ค.
- ๋์คํ๋ ์ด ์ด๋ฒคํธ - ๋ ๋๋ง์ ์ํ ์ด๋ฒคํธ - ์ง์์ ๋ชจ๋ ๋ ๋๋ง ๋ช ๋ น์ ๋๋ถ๋ถ ๋์คํ๋ ์ด ์ฝ๋ฐฑ ํจ์ ๋ด๋ถ์ ์ ์๋๋ค.
- ๋ง์ฐ์ค ์ด๋ฒคํธ - ๋ง์ฐ์ค ๋ฒํผ์ ๋๋ ๊ฑฐ๋ ๋ผ์์ ๋ ํธ๋ฆฌ๊ฑฐ ๋๋ค.
- ๋ฆฌ์ ฐ์ดํ ์ด๋ฒคํธ - ์ฌ์ฉ์๊ฐ ์๋์ฐ ํฌ๊ธฐ๋ฅผ ๋ฐ๊ฟ ๋, ํค๋ณด๋ ์ด๋ฒคํธ ํค๊ฐ ๋๋ฌ์ก์ ๋, ์์ด๋ค ์ด๋ฒคํธ๋ ํ์ ์๋ฌด๋ฐ ๋ช ๋ น์ด ์์ ๋ ๊ฐ๊ฐ ํธ์ถ
์ฝ๋ฐฑ ํจ์๋ฅผ ์คํํ๋ ๊ฒ์ GLUT ์ด๊ณ , GLUT๋ ์ด๋ค ์๊ฐ์ ๋จ ํ๋์ ์ฝ๋ฐฑ ํจ์๋ง์ ์คํํ๋ค.
04) ์๋์ฐ์ ๋ทฐ ํฌํธ
์ง์ ํ๋ก๊ทธ๋จ์ผ๋ก ๋ถํฐ ํ๋ฉด์ ๊ทธ๋ ค์ง๊ธฐ๊น์ง ์ญ์ญ์ญ ์ขํ ๋ณํ์ ๊ฑฐ์น๊ฒ ๋๋ค. ๊ทธ์ค, ์ ๊ท ์ขํ๊ณ์ ํ๋ฉด ์ขํ๊ณ๊ฐ ์ต์ข ์ ์ผ๋ก ๊ทธ๋ฆผ์ ํ๋ฉด์ ๊ทธ๋ฆฌ๋ ๋จ๊ณ์ ๊ด์ฌํ๋ค.
โ ํ๋ฉด ์ขํ๊ณ(SCS) = ์ฅ์น ์ขํ๊ณ(DCS) = ์๋์ฐ ์ขํ๊ณ : ํ์ ๋จ์๋ก ์ขํ๋ฅผ ํ์ _ ์ข์๋จ์์ ์ขํ๊ณ
์ ๊ท ์ขํ๋ฅผ ์ฌ์ฉํ๋ฉด ํด์๋์ ๋ฐ๋ฅธ ์ขํ ๊ณ์ฐ์ด ๋จ์ํ ๋๋ค.
- ๋ทฐํฌํธ : ์๋์ฐ ๋ด๋ถ์ ์ค์ ํ ์์ ์ฐฝ.
glutInit() ํจ์๋ glut ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด๊ธฐํ ํ๊ณ , ์๋์ฐ ์ด์์ฒด์ ์ ์ฐ๊ฒฐํ์ฌ ํ๋์ ์ธ์ ์ ํ์ฑ. glut์ ํ๋ฉด ์ขํ๊ณ๋ ์๋์ฐ์ ํ๋ฉด ์ขํ๊ณ๋ฅผ ๋ฐ๋ฅธ๋ค.(์ข์๋จ ์์ )
glClear() ํจ์๋ ๋ฌธ์ ๊ทธ๋๋ก ํ๋ ์ ๋ฒํผ๋ฅผ ์ต๊ธฐํ ํ๋ผ๋ ์๋ฏธ.
glut๋ ์ข์๋จ์ด ์์ ์ด์ง๋ง gl์ ์ขํ๋จ์ด ์์ ์ด๋ค.
05) ์ฝ๋ฐฑ ํ๋ก๊ทธ๋๋ฐ
- Reshpae ์ฝ๋ฐฑ
glut๋ ๋ค์ 3 ๊ฐ์ง์ ๊ฒฝ์ฐ์ ๋ฆฌ์ ฐ์ดํ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๊ฒ์ผ๋ก ์ทจ๊ธํ๋ค. ( ์ฒ์ ์๋์ฐ ์ด ๋/ ์๋์ฐ ์์น๋ฅผ ์ฎ๊ธธ ๋/ ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ ๋) ์๋์ฐ ํฌ๊ธฐ ์กฐ์ ์ ๋ฐ๋ฅธ ์๊ณก์ ๋ฐฉ์งํ๋ ค๋ฉด glOrtho() ํจ์๋ฅผ ์ด์ฉํด์ผํ๋ค.
glMatrixMode()๋ ํฌ์ ํ๋ ฌ์ ๋ณํ๋์์ผ๋ก ์ค์ ํ๋ผ๋ ๋ช ๋ น์ด๋ฉฐ, glLoadIdentity()๋ ์ด ํ๋ ฌ์ ์ผ๋จ ํญ๋ฑ ํ๋ ฌ์ ์ค์ผ๋ผ๋ ๋ช ๋ น์ด. ์ด ๋ ๋ช ๋ น์ด ์ ํ๋์ด์ผ glOrtho() ํจ์์์ ์ง์ ํ ๊ฐ์ด ํด๋น ํ๋ ฌ์ ๊ณฑํด์ง๋ค.
๊ฐ์๋ถํผ = ํ๋ฉด์ ๋ณด์ด๊ณ ์ ํ๋ ๋ฌผ์ฒด์ ๋ฒ์๋ฅผ ๋งํ๋ค.
๊ฐ์ ๋ถํผ๋ฅผ ์ ์ํ๊ธฐ ์ํ glOrtho() ํจ์์ ํ๋กํ ํ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
void glOrtho
( GLdouble left, GLdouble right, GLdouble bottom. GLdouble top, GLdouble near, GLdouble far);
ํฌ์ ๋ฐฉ์์์ ํฌ์๋ฉด์ ๊ฐ์ ๋ถํผ์ ์ ๋ฐฉ ์ ๋จ๋ฉด๊ณผ ๋์ผ. glOrtho()์ ์ํด ๊ฐ์ ๋ถํผ์ ๋ชจ์ต์ ์กฐ์ ํจ์ผ๋ก์จ ์๊ณก ํด์ ๊ฐ๋ฅ. -> ํฌ์๋ฉด ์์ฒด์ ์ข ํก๋น๊ฐ ๋ทฐ ํฌํธ์ ์ข ํก๋น๊ฐ ์ผ์นํด์ ๋ฌผ์ฒด๋ ์ ํ ์๊ณก๋์ง ์๋๋ค.
- Mouse ์ฝ๋ฐฑ
void glutMotionFunc(void(*func) (int x, int y));
void glutPassiveMotionFunc(void(*func) (int x, int y));
void glutEntryFunc(void(*func) (int state));
// glutPostRedisplay()ํจ์๋ ๋ณ์ ๊ฐ์ด ๋ณ๊ฒฝ ๋์์ผ๋ฏ๋ก ๋ค์ ์ด๋ฒคํธ ๋ฃจํ๊ฐ ๋ ๋ ๋ฐ๋์ ๋์คํ๋ ์ด ํจ์๋ฅผ ๋ค์ ์คํํ๋ผ๋ ๊ฒ.
- Menu ์ฝ๋ฐฑ
int glutCreateMenu(void(*func)(int value))
void glutSetMenu(int id)
void glutAddMenuEntry(char *name,int value);
int glutAttachMenu(int button)
void glutaddSubMenu(char *name, int menu);
- Idle ์ฝ๋ฐฑ
์ด๋ฒคํธ ๋ฃจํ๋ฅผ ๋ ๋๋ง๋ค GLUT๋ ํ์ ์์ธ ์ด๋ฒคํธ๋ฅผ ๊ฒ์ฌํจ.
glClear()๋ฅผ ๊ธฐ์กด์ ์ปฌ๋ฌ ๋ฒํผ ๋ด์ฉ์ ๋ค ์ง์ฐ๋ผ๋ ์๋ฏธ๋ก, ์ด๊ฒ ์๋ค๋ฉด ์๋ก์ด ์ฌ๊ฐํ์ด ์ด์ ์ฌ๊ฐํ์ด ์์ ๊ฒน์ณ์ ๊ธฐ๋ก ๋๋ฏ๋ก ์ํ๋ ๋ฐ๊ฐ ์๋๋ค. = ๋ฌ๋ฒ ๋ฐด๋ฉ : ์ด์ ์ ๊ทธ๋ฆผ์ ์ง์ฐ๊ณ , ๋ฐฐ๊ฒฝ์์ ๋ค์ ์น ํ๊ณ .
- Timer ์ฝ๋ฐฑ
์ผ์ ์๊ฐ ๊ฐ๊ฒฉ์ด ์ง๋๋ฉด ๋ฐ์ํ๋ ์ด๋ฒคํธ๊ฐ ํ์ด๋จธ ์ด๋ฒคํธ
06) ์ ๋๋ฉ์ด์ ๊ณผ ๋๋ธ ๋ฒํผ๋ง
ํ๋ ์ ๋ฒํผ๋ ์์ชฝ์ผ๋ก ์ฐ๊ฒฐ๋ 2์ค ํฌํธ ๊ตฌ์กฐ๋ค. ๊ทธ๋ํฝ ํ๋ก์ธ์๊ฐ ํ๋ ์ ๋ฒํผ์ ๋ฌผ์ฒด ์์์ ์ฐ๊ณ , ๋น๋์ค ์ปจํธ๋กค๋ฌ๋ ์ฐ์ธ ๋ด์ฉ์ ์ฝ์ด์ ํ๋ฉด์ ๋ฟ๋ฆฐ๋ค.
์ด ๋ ๋ ๊ฐ์ ์๋ ์ฐจ์ด๊ฐ ๋ฐ์ํ๋ค. ๋น๋์ค ์ปจํธ๋กค๋ฌ๊ฐ ์ฝ๋ ์๋ >> ๊ทธ๋ํฝ ํ๋ก์ธ์๊ฐ ์ฐ๋ ์๋.
์ด๋ก ์ธํด ๊น๋นก๊ฑฐ๋ฆผ๋ฑ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
์ด๋ฅผ ํด๊ฒฐ ํ๊ธฐ ์ํด "๋๋ธ ๋ฒํผ๋ง"์ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ๋ค.
๋๋ธ ๋ฒํผ๋ง์ด๋, 2๊ฐ์ ๋ฒํผ๋ฅผ ์ด๋ค. ํ๋ฐํธ ๋ฒํผ์ ๋ฐฑ๋ฒํผ์ด๋ค. ๋ฒํผ๋ค์ ๊ฐ๊ฐ ์์ ํ๋๋ฅผ ์จ์ ํ ์ ์ฅํ ์ ์๋ ๊ตฌ์กฐ๋ค. ๋น๋์ค ์ปจํธ๋กค๋ฌ๊ฐ ํ๋ฐํธ ๋ฒํผ์ ๋ด์ฉ์ ์ฝ๊ณ ์ถ๋ ฅํ๋ ๋์ ๊ทธ๋ํฝ ํ๋ก์ธ์๊ฐ ๋ฐฑ๋ฒํผ์ ๋ด์ฉ์ ์จ๊ฐ๋ค. ๊ทธ๋ํฝ ํ๋ก์ธ์๊ฐ ์ฐ๊ธฐ๋ฅผ ๋ง์น๋ฉด ๋น๋์ค ์ปจํธ๋กค๋ฌ๊ฐ ๋ฐฑ ๋ฒํผ๋ก ์ค์์นญ ํ๋ค.
๊ทธ๋์ ํ์ฌ ๋น๋์ค ์ปจํธ๋กค๋ฌ๊ฐ ์ฝ๊ณ ์๋ ๋ฒํผ๋ฅผ ํ๋ฐํธ ๋ฒํผ๋ก, ๊ธฐ๋ก์ค์ธ ๋ฒํผ๋ฅผ ๋ฐฑ ๋ฒํผ๋ก ์นญํ๋ค.
์ด๋ ๊ฒ ๋๋ธ ๋ฒํผ๋ฅผ ์ฐ๊ธฐ ์ํด์ glutInitDisplayMode(GLUT_DOUBLE)์ด๋ผ๊ณ ์ด๊ธฐํํด์ผํ๋ค.
๊ทธ๋ฆฌ๊ณ glutSwapBuffers() ํจ์๋ ํ๋ฐํธ ๋ฒํผ์ ๋ฐฑ ๋ฒํผ๋ฅผ ์ค์์นญ ํ๊ธฐ ์ํ ๊ฒ์ด๋ค. ์ด ํจ์ ์คํ์ ๋ฌต์์ ์ผ๋ก glFush() ์คํ๋๋ค. ์ฆ ์ด์ ์ ํ๋ฐํธ ๋ฒํผ์ ๊ฐํด์ง ๋ช ๋ น์ ๋ชจ๋ ์คํํ ํ์ ๋ฒํผ ์ค์์นญ์ด ์ผ์ด๋๋ค.
07) ์ ์ ๋ฐฐ์ด
- ์ค๋ฅธ์ ๋ฒ์น์ผ๋ก ๊ทธ๋ฆฐ๋ค.
08) ๋์คํ๋ ์ด ๋ฆฌ์คํธ
: ์ง์ ํจ์์ ์คํ ๋ชจ๋๋ ๋ ๊ฐ์ง๋ก ๋ถ๋ฅ๋๋ค. ๋ฐ๋ก ์ง์ ๋ชจ๋์ ๋ณด๋ฅ ๋ชจ๋.
์ง์ ๋ชจ๋๋ ๋ฌผ์ฒด๋ฅผ ํ๋ฉด์ ๊ทธ๋ฆผ๊ณผ ๋์์ ๋ฌผ์ฒด ์์ฑ๊ณผ ๊ด๋ จ๋ ๋ชจ๋ ์ ๋ณด๋ฅผ ํ๊ธฐํด ๋ฒ๋ฆฐ๋ค.
๋ณด๋ฅ ๋ชจ๋๋ ์ ์๋ ๋ฌผ์ฒด ์ ๋ณด๋ฅผ ๊ทธ๋๋ ์ ์งํ๊ณ ์ฌ์ฌ์ฉํ๋ค. ์ง์์ ๋ณด๋ฅ ๋ชจ๋๋ ๋์คํ๋ ์ด ๋ฆฌ์คํธ์ ์ํด ์ด๋ฃจ์ด์ง๋ค.
๋์คํ๋ ์ด ๋ฆฌ์คํธ๋ ๊ทธ๋ํฝ ์ฒ๋ฆฌ ์๋์ ์ง๊ฒฐ๋๋ค. ๋์คํ๋ ์ด ๋ฆฌ์คํธ ๋ด๋ถ์๋ ๊ธฐ๋ณธ ์์, ์ํ ๋ณ์, ์์์ ๋ฌผ๋ก ์ด๋, ํ์ , ์กฐ๋ช ์์ ๊ณผ ๊ด๋ จ๋ ๋ชจ๋ ๋ช ๋ น์ ์ง์ด ๋ฃ์ ์ ์๋ค. ๋ค์ ๋งํด ๋ฐ๋ณต์ ์ผ๋ก ์คํ ๋์ด์ผ ํ ์ผ๋ จ์ ์ง์ ๋ช ๋ น์ด๋ฅผ ๋์คํ๋ ์ด ๋ฆฌ์คํธ ๋ด๋ถ์ ํฌํจ์ํด์ผ๋ก์ ํ๋ก๊ทธ๋จ ์คํ ์๊ฐ์ ๋นจ๋ผ์ง๋ค.
๋๊ธ