๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Graphic

OpenGL๋กœ ๋ฐฐ์šฐ๋Š” 3์ฐจ์› ์ปดํ“จํ„ฐ ๊ทธ๋ž˜ํ”ฝ์Šค::4์žฅ&์—ฐ์Šต๋ฌธ์ œ

by ๋„์บ๋ฆฌ๐Ÿฑ 2020. 7. 9.
๋ฐ˜์‘ํ˜•

โ— 4์žฅ ์—ฐ์Šต ๋ฌธ์ œ

 

1. ๊ทธ๋ž˜ํ”ฝ ๋ถ„์•ผ์˜ ISO ํ‘œ์ค€ ์ค‘ ํ•˜๋‚˜์ธ PHIGS์—๋Š” ๊ตฌ์กฐ์ฒด ๊ฐœ๋…์ด ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.(True/False)

2. API๋Š” ํ”„๋กœ๊ทธ๋žจ ์–ธ์–ด๋‹ค.(True/False)

3. ๊ณ ์ˆ˜์ค€ API๋Š” ์žฅ๋ฉด ๋ฌ˜์‚ฌ ์œ„์ฃผ๋กœ, ๊ตฌ์ฒด์  ๋ Œ๋”๋ง ๋ฐฉ์‹์ด ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค.(True/False)

4. ํŒŒ๋ผ๋ฏธํ„ฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์‹œ์Šคํ…œ ํ…Œ์ด๋ธ”์€ ๋ถˆํ•„์š”ํ•˜๋‹ค.(True/False)

5. ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์กฐ์—์„œ ์„œ๋ธŒ ํ”„๋กœ์„ธ์„œ์˜ ๋…ผ๋ฆฌ๋Š” ํ•˜๋“œ์›จ์–ด์ ์œผ๋กœ ๊ณ ์ •๋˜์–ด ์žˆ๋‹ค. (True/False)

6. ์ง€์—˜์ด C ํ•จ์ˆ˜์— ๋Œ€ํ•œ ํ˜ธ์ถœ์ด๋ผ๋ฉด GLU๋Š” ์ง€์—˜์— ๋Œ€ํ•œ ํ˜ธ์ถœ์ด๋‹ค.(True/False)

// ๋‚ด ์ƒ๊ฐ์€ ์ง€์—˜์€ ์ € ์œ„์—์„œ Cํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœํ•ด์„œ ๋ถˆ๋ฆฌ๋Š”๊ฒŒ ๋งž๋Š”๋ฐ, GLU๋Š” GL์— ๋Œ€ํ•œ ํ˜ธ์ถœ์ด ์•„๋‹ˆ๋ผ GL์ด GLU์— ๋Œ€ํ•œ ํ˜ธ์ถœ์ด๋‹ค. ๊ทธ๋ž˜์„œ False๋ผ๊ณ  ์ƒ๊ฐ.

// ๊ทผ๋ฐ ๋‹ต์„ ์จ๋†“์œผ์‹  ๋‹ค๋ฅธ ๋ถ„์€ True๋ผ๊ณ  ํ–ˆ๋Š”๋ฐ ๋ชจ๋ฅด๊ฒ ๋‹ค. 

7. ์ , ์„ , ์‚ผ๊ฐํ˜• ๋“ฑ ๋ Œ๋”๋ง์˜ ์ตœ์†Œ๋‹จ์œ„๋ฅผ ๊ทธ๋ž˜ํ”ฝ (๊ธฐ๋ณธ์š”์†Œ)๋ผ ํ•œ๋‹ค.

8. ์‹ฌ์‚ฌ ํ‘œ์ค€์ด ์ œ์ •๋˜์ง€ ์•Š๋Š” ์ƒํƒœ์—์„œ ํ˜„์‹ค ์‹œ์žฅ์—์„œ ํ†ต์šฉ๋˜๋Š” ํ‘œ์ค€์„ (์‚ฌ์‹ค ํ‘œ์ค€)์ด๋ผ ํ•œ๋‹ค.

9. ISO์—์„œ ์‹œ์Šคํ…œ ํ…Œ์ด๋ธ”์€ ์ง€์—˜์˜ (์ƒํƒœ๋ณ€์ˆ˜ ํ…Œ์ด๋ธ”)์— ํ•ด๋‹นํ•œ๋‹ค.

10.GLUT๋Š” ์ง€์—˜๊ณผ (์œˆ๋„์šฐ) ์šด์˜์ฒด์ œ ์‚ฌ์ด์˜ ์ธํ„ฐํŽ˜์ด์Šค๋‹ค.

11. ์žฅ๋ฉด๋ฌ˜์‚ฌ API์—์„œ (๊ทธ๋ฃน) ๋…ธ๋“œ๋Š” 2๊ฐœ ์ด์ƒ์˜ ๋…ธ๋“œ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

12.์œˆ๋„์šฐ ์ขŒ์ƒ๋‹จ์„ ํ™”๋ฉด ์ขŒํ‘œ(30,10)์— ์œ„์น˜์‹œํ‚ค๊ธฐ ์œ„ํ•œ GLUTํ•จ์ˆ˜๋Š” (glutInitwindowposition(30,10))์ด๋‹ค.

13. C์–ธ์–ด์˜ ๋ถ€๋™ ์†Œ์ˆ˜ ํƒ€์ž…์ธ float์— ํ•ด๋‹นํ•˜๋Š” ์ง€์—˜ ํƒ€์ž…์€ (GLfloat)์ด๋‹ค.

14. ์–ด๋–ค ๋ชจ๋“œ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•œ ์ง€์—˜ ํ•จ์ˆ˜๋Š” (glutInitDisplayMode) ์ด๋‹ค.

15. ISO ๊ทธ๋ž˜ํ”ฝ์Šค ํ‘œ์ค€ ๋‚ด์šฉ์„ ์ธํ„ฐ๋„ท์—์„œ ์กฐ์‚ฌํ•˜์—ฌ ๋ฐœํ‘œํ•ด๋ณด๋ผ.

 

โ— 4์žฅ ๋‚ด์šฉ ์ •๋ฆฌ

1. ๊ทธ๋ž˜ํ”ฝ์Šค ํ‘œ์ค€

- IOSํ‘œ์ค€(International Oragnization for Standardization), ์ปดํ“จํ„ฐ ๊ทธ๋ž˜ํ”ฝ์Šค๋ž€, ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด์™€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌผ์ฒด์™€ ๋ฌผ์ฒด ์˜์ƒ์„ ์ƒ์„ฑ, ๋ณ€ํ˜•, ๋””์Šคํ”Œ๋ ˆ์ด , ์ €์žฅ ํ•˜๋Š” ๊ฒƒ.

 

์ด ๋ถ„์•ผ์˜ ํ‘œ์ค€ํ™”๋Š” '์ด์‹์„ฑ' ์„ ๋†’์ž„์œผ๋กœ์จ ์‚ฌ์šฉ์ž ํŽธ์˜๋ฅผ ๋„๋ชจํ•œ๋‹ค.

(์ฃผ์ „์‚ฐ๊ธฐ ๋…๋ฆฝ์„ฑ_๋™์ผ ํ”„๋กœ๊ทธ๋žจ ๋ชจ๋“  ํ•˜๋“œ์›จ์–ด์—์„œ ์‚ฌ์šฉ/

์žฅ๋น„ ๋…๋ฆฝ์„ฑ_์ž…์ถœ๋ ฅ์žฅ์น˜ ์ข…๋ฅ˜ ๋‹ฌ๋ผ๋„ ๋™์ผ ๊ธฐ๋Šฅ ์ˆ˜ํ–‰ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋žจ ๋ช…๋ น์€ ๊ฐ™์•„์•ผํ•จ/

ํ”„๋กœ๊ทธ๋žจ ์–ธ์–ด ๋…๋ฆฝ์„ฑ_ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ์— ์–ด๋– ํ•œ ํ”„๋กœ๊ทธ๋žจ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๋œ๋‹ค. /

์šด์˜์ž ์ด์‹์„ฑ_๋ˆ„๊ตฌ๋‚˜ ์ƒˆ๋กœ์šด ํ”„๋กœ๊ทธ๋žจ ์‚ฌ์šฉ๋ฒ•์„ ์‰ฝ๊ฒŒ ํ„ฐ๋“ํ•œ๋‹ค.)

 

-๊ธฐ๋ณธ์š”์†Œ์™€ ์‹œ์Šคํ…œ ๋ฆฌ์ŠคํŠธ

-ISO๊ทธ๋ž˜ํ”ฝ ํ‘œ์ค€์— ๊ทธ๋ฆผ ๊ตฌ์„ฑํ•˜๋Š” ๊ธฐ๋ณธ์š”์†Œ ์šฉ์–ด ์ •์˜ ๋˜์–ด์žˆ๋‹ค.

๊ธฐ๋ณธ์š”์†Œ_ ์ , ์„ , ์ฑ„์›€์˜์—ญ, ๊บพ์€์„, ํ‘œ์‹œ ๊บพ์€์„ , ๋ฌธ์ž /

๊ธฐ๋ณธ์š”์†Œ์™ธ์–‘_ ๋‘๊ป˜, ํŒจํ„ด, ์ƒ‰์„ฑ ๋“ฑ /

๊ธฐ๋ณธ์š”์†Œ ์†์„ฑ_ ๊ธฐ๋ณธ์š”์†Œ๊ฐ€ ์ง€๋‹ˆ๋Š” ํ˜„์žฌ์˜ ์™ธ์–‘๊ฐ’

 

-GKS,PHIGS

๊ทธ๋ž˜ํ”ฝ์Šค ํ‘œ์ค€์€ ํ‘œ์ค€์ด ์–ธ๊ธ‰ํ•˜๋Š” ๋‚ด์šฉ์— ๋”ฐ๋ผ 4๊ฐ€์ง€๋กœ ๋ถ„๋ฅ˜ํ•œ๋‹ค.(๊ณ„์ธต๊ตฌ์กฐ๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค.)

Lv.์‘์šฉํ”„๋กœ๊ทธ๋žจ : ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์ง€์ผœ์•ผ ํ•  ํ‘œ์ค€์„ ์ถ”์ƒ์  ์ˆ˜์ค€์—์„œ ์„œ์ˆ 

Lv.๊ฐ€์ƒ : ์ถœ๋ ฅ๋˜์–ด์•ผํ•  ๋‚ด์šฉ์„ ๊ธฐ๋ณธ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์„œ์ˆ 

Lv.๋…ผ๋ฆฌ์  : ์ฃผ์–ด์ง„ ์žฅ๋น„์—์„œ ํ•ด๋‹น ๊ธฐ๋ณธ ์š”์†Œ๋ฅผ ๊ทธ๋ฆฌ๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ณผ์ • ์„œ์ˆ 

Lv.๋ฌผ๋ฆฌ์  : ๊ฐœ๋ณ„ ์ž…์ถœ๋ ฅ ์žฅ๋น„์— ๊ด€ํ•œ ๋‚ด์šฉ ์„œ์ˆ 

 

1985 GKS ) ๊ฐ€์žฅ ๋จผ์ € ์ •์ฐฉ๋œ ๊ทธ๋ž˜ํ”ฝ์Šค ํ‘œ์ค€,  2์ฐจ์› ์œ„์ฃผ ๊ทธ๋ž˜ํ”ฝ ์ฒ˜๋ฆฌ, ์ „์—ญ ์ขŒํ‘œ๊ณ„, ์ •๊ทœํ™” ์žฅ์น˜ ์ขŒํ‘œ๊ณ„, ์žฅ์น˜ ์ขŒํ‘œ๊ณ„ → GKS-3D์ œ์ •

1989 PHIGS) ์ฃผ๋กœ 3์ฐจ์› ๋ชจ๋ธ๋ง, ๊ฐ€์‹œํ™”, ์ „์—ญ ์ขŒํ‘œ๊ณ„, ์ •๊ทœํ™” ์žฅ์น˜ ์ขŒํ‘œ๊ณ„, ์žฅ์น˜ ์ขŒํ‘œ๊ณ„, ์‹œ์ , ๊ฐ€์‹œ๋ถ€ํ”ผ ๋“ฑ์— ์ฃผ์•ˆ์ ์„ ๋‘” ํ‘œ์ค€์•ˆ // CAD ๋ฏธ๊ตญ์ฃผ๋„์˜ ํ‘œ์ค€

 

- ๊ทธ๋ž˜ํ”ฝ ํŒŒ์ผ

๋น„ํŠธ๋งต ํŒŒ์ผ: ๋‹จ์ˆœํžˆ ํ™”๋ฉด ํ™”์†Œ๊ฐ’์„ ์ €์žฅ

GKS ๋ฉ”ํƒ€ํŒŒ์ผ: ๊ทธ๋ฆผ์„ ๋งŒ๋“ค์–ด ๋‚ผ ๋•Œ ์‚ฌ์šฉํ•œ ์ˆœ์ฐจ์  ๋ช…๋ น์–ด๋“ค ์ €์žฅ

PHIGS ๋ฉ”ํƒ€ํŒŒ์ผ: GKS ๋ฉ”ํƒ€ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ํฌํ•จ + ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๋ ˆ๋ฒจ์—์„œ ๊ธฐ๋ณธ ์š”์†Œ ์‚ฌ์ด์˜ ๊ด€๊ณ„๊นŒ์ง€ ์ €์žฅ.

 

- ์–ธ์–ด ๋ฐ”์ธ๋”ฉ? ๊ทธ๋ž˜ํ”ฝ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ๊ฒƒ.

 

2. API

- ๊ทธ๋ž˜ํ”ฝ API

application program์ด graphics library ํ˜ธ์ถœ → ๋“œ๋ผ์ด๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ํ•ด๋‹น ํ•˜๋“œ์›จ์–ด ์ œ์–ดํ•˜๋Š” ์–ด์…ˆ๋ธ”๋ฆฌ ๋ช…๋ น์–ด๋กœ ๋ฐ”๊พผ๋‹ค.

API = ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋Š”๋ฐ ์ง์ ‘ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜

 

2์ฐจ์› ๊ทธ๋ž˜ํ”ฝ API - PDL, X

3์ฐจ์› ๊ทธ๋ž˜ํ”ฝ API - PEX, Renderman

 

๊ณ ์ˆ˜์ค€ API = ์ถ”์ƒ์ , ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๋‹ค. 

๊ทธ๋ฆผ์„ ๊ทธ๋ฆฌ๊ธฐ ์œ„ํ•œ ์‹ค์ œ์  ์„ธ๋ถ€ ๊ณผ์ •์„ ๋ช…์‹œํ•˜๋Š” ๋Œ€์‹ , ๋ฌผ์ฒด๋ฅผ ์ •์˜ํ•˜๊ณ  ๋ฌผ์ฒด ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ๋ฌ˜์‚ฌํ•จ์œผ๋กœ์จ ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ ์™„๋ฃŒ. ์˜ˆ ) Open Inventor, VRML

 

์ €์ˆ˜์ค€ API = ๊ตฌ์ฒด์ , ๋ฌผ์ฒด๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ธฐ๋ณธ์š”์†Œ์˜ ์ •์˜๋ถ€ํ„ฐ ์‹ค์ œ ๊ทธ๋ฆผ์„ ๊ทธ๋ฆฌ๋Š” ์„ธ๋ถ€์ ์ธ ๊ณผ์ •์„ ์ผ์ผํžˆ ๋ช…์‹œ. ๊ทธ๋ž˜ํ”ฝ ๋ฉ”๋ชจ๋ฆฌ, ๊ทธ๋ž˜ํ”ฝ ๊ฐ€์† ์นฉ ๋“ฑ ํ•˜๋“œ์›จ์–ด์™€ ๋ฐ€์ ‘ํ•˜๋‹ค. ์ด๋กœ ํ•˜๋“œ์›จ์–ด ์„ฑ๋Šฅ์„ ์ตœ๋Œ€ํ•œ ๋ฐœํœ˜๊ฐ€๋Šฅํ•˜๋‹ค.

์˜ˆ ) OpenGL, Direct3D

 

VRML API

: ์ธํ„ฐ๋„ท์„ ์—ผ๋‘ํ•œ ๊ณ ์ˆ˜์ค€ API. ํŠน์ง•์œผ๋กœ ์ธํ„ฐ๋„ท์„ ํ†ตํ•œ ์‚ฌ์šฉ์ž ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์ด ์žˆ๋‹ค. ๊ฐ€์ƒ ํ˜„์‹ค ๊ฐœ๋…์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ. ์›๊ฒฉ ์‚ฌ์šฉ์ž ์‚ฌ์ด์˜ ์ƒํ˜ธ ์ž‘์šฉ์— ๋”ฐ๋ผ ํ™”๋ฉด ์žฅ๋ฉด ๋ณ€ํ™”, ํ˜„์‹ค๊ฐ ์ฆํญํ•œ๋‹ค.

VRML๋กœ ์ž‘์„ฑ๋œ ์žฅ๋ฉด์„ ๋ณด๋ ค๋ฉด VRML๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ”Œ๋Ÿฌ๊ทธ์ธ ํ•ด์•ผํ•œ๋‹ค. ์ด ๋ธŒ๋ผ์šฐ์ €๋กœ๋Š” cosmo player ๊ฐ€ ์žˆ๋‹ค.=>>VRML์€ 3์ฐจ์› ์ปดํ“จํ„ฐ ๊ทธ๋ž˜ํ”ฝ ์ด๋ก ์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ฑฐ์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์‰ฝ์‚ฌ๋ฆฌ ์‹œํ—˜ํ•ด ๋ณผ ์ˆ˜ ์žˆ๋Š” API์ด๋‹ค.  

3. ์˜คํ”ˆ์ง€์—˜ ๊ฐœ๊ด„

- API ๋ฐœ๋‹ฌ ๊ณผ์ •

CORE : 1979, ACM SIGGRAPH ์ œ์•ˆ

GL : ์‹ค๋ฆฌ์ฝ˜ ๊ทธ๋ž˜ํ”ฝ์Šค์‚ฌ์˜ ์›Œํฌ ์Šคํ…Œ์ด์…˜์šฉ API

PHIGS: ๊ณ„์ธต๊ตฌ์กฐ, ๊ทธ๋ฃนํ™”๋ชจ์ž„

OpenInventor : PHIGS์™€ opengl์„ ๊ธฐ๋ฐ˜์œผ๋กœ sceneGraph, OOP๊ฐœ๋…์„ ๋„์ž…

VRML : OpenInventor๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ€์ƒ ํ˜„์‹ค ๊ฐœ๋… ๋„์ž…

 

API์˜ ์กด์žฌ ์ด์œ ? ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ํ”„๋กœ๊ทธ๋žจ ์ˆ˜์›”ํžˆ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ  

API == ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์ธํ„ฐํŽ˜์ด์Šค

== ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜(ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ)

 

3์ฐจ์› API์‹œ์žฅ ์˜ค๋žซ๋™์•ˆ ์ฃผ๋„ํ•œ ๊ฒƒ ?? Opengl !!!

์ €์ˆ˜์ค€ API๋‹ค. ๊ทธ๋ž˜์„œ OpenInventor , VRML, Java3D๋“ฑ ๊ณ ์ˆ˜์ค€ API์˜ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๋œ๋‹ค

 

1982๋…„ ์‹ค๋ฆฌ์ฝ˜ ๊ทธ๋ž˜ํ”ฝ์Šค(SGI)์‚ฌ๊ฐ€ ์ž์‚ฌ์˜ ์›Œํฌ์Šคํ…Œ์ด์…˜์šฉ ๊ทธ๋ž˜ํ”ฝ ํ•˜๋“œ์›จ์–ด๋ฅผ ํŒŒ์ดํ”„๋ผ์ธํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ๋œ API๊ฐ€ Iris GL(GL) → ์•„์ด๋ฆฌ์Šค ์ง€์—˜์ด ์ดํ›„ ๊ณ ์„ฑ๋Šฅ ๊ทธ๋ž˜ํ”ฝ ์นด๋“œ๋ฅผ ์žฅ์ฐฉํ•œ ๊ฐœ์ธ์šฉ ์ปดํ“จํ„ฐ์— ์ด์‹๋˜๊ธฐ ์‹œ์ž‘ํ•˜๋ฉฐ openGL์ด๋ผ ๋ถ€๋ฆ„ → IDsoft๋ผ๋Š” ๊ฒŒ์ž„์˜ ์ฃผ ์—”์ง„์œผ๋กœ ์‚ฌ์šฉํ•ด์„œ ๊ธ‰ ๋ถ€์ƒ ํ•จ. 

 

==> ๋งŽ์€ ๊ทธ๋ž˜ํ”ฝ ์นด๋“œ ์ œ์กฐ์—…์ฒด๋“ค์€, ์ง€์—˜๊ณผ ์ž์‚ฌ์˜ ๊ทธ๋ž˜ํ”ฝ ๋ณด๋“œ ์‚ฌ์ด์˜ ์ธํ„ฐํŽ˜์ด์Šค ์—ฐ๊ฒฐ ํ•  ์ˆ˜ ์žˆ๋Š” ๋“œ๋ผ์ด๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐœ๋ฐœํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. (์™œ? ์ง€์—˜ ๋ช…๋ น์„ ์–ด์…ˆ๋ธ”๋ฆฌ ๋ช…๋ น์–ด๋กœ ๋ฒˆ์—ญํ•˜๋Š” ๊ณผ์ •์—์„œ ์ž์‚ฌ ๊ทธ๋ž˜ํ”ฝ๋ณด๋“œ์˜ ํ•˜๋“œ์›จ์–ด ๊ธฐ๋Šฅ์„ ์ตœ๋Œ€ ํšจ์œจ์ ์œผ๋กœ ํ•˜๊ธฐ ์œ„ํ•ด)

 

- GL ์„ค๊ณ„ ์›๋ฆฌ:

๋ฒ”์šฉ์„ฑ-๋Œ€๋ถ€๋ถ„ ํ•˜๋“œ์›จ์–ด ์‹คํ–‰ ๊ฐ€๋Šฅ, ์†Œํ”„ํŠธ์›จ์–ด ๋ฉด์—์„œ๋Š” ์šด์˜์ฒด์ œ ๋ฌด๊ด€ํžˆ ์„ค๊ณ„

ํšจ์œจ์„ฑ-ํ˜ธํ™˜์„ฑ ์ง€๋‹˜. ๊ทธ๋ž˜ํ”ฝ ํ•˜๋“œ์›จ์–ด์˜ ๊ฐ€์† ๊ธฐ๋Šฅ์„ ์ตœ๋Œ€ํ•œ ๋ฐœํœ˜ํ•˜๊ธฐ ์œ„ํ•ด

๋…๋ฆฝ์„ฑ-๊ธฐ๋Šฅ๊ฐ„์˜ ๋…๋ฆฝ์„ฑ์ด ๋ณด์žฅ๋จ

์™„์ „์„ฑ-ํ•˜๋“œ์›จ์–ด ๊ธฐ๋Šฅ์„ ๋Œ€๋ถ€๋ถ„ ์ˆ˜์šฉ/ ๊ณตํ†ต๋œ ๊ธฐ๋Šฅ์ด ์•„๋‹Œ ํŠน์ • ํ•˜๋“œ์›จ์–ด ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด์„œ ARBํ™•์žฅ ํ˜•ํƒœ๋กœ ๋ช…๋ น์–ด ์ œ๊ณต

์ƒํ˜ธ์ž‘์—…์„ฑ

 

-GL์€ ์™œ ํ‘œ์ค€์ธ๊ฐ€? ๋„ˆ๋ฌด ๋งŽ์€ ๊ฒƒ์„ ํ•˜๋ ค ํ•˜์ง€ ์•Š๊ณ , ์ด๋ฏธ ์„ค๊ณ„๋œ ๋ฌผ์ฒด๋ฅผ ๊ทธ๋ ค๋‚ผ ๋ฟ, ์œˆ๋„์šฐ ์กฐ์ž‘/ ์• ๋‹ˆ๋ฉ”์ด์…˜/ ์†Œ๋ฆฌ ์ถ”๊ฐ€ ์ž‘์—…๋“ฑ์„ ํ•  ์ˆ˜ ์—†๋‹ค. ์ด๋Š” ๋ Œ๋”๋ง์— ๊ด€ํ•ด์„œ ์ถฉ๋ถ„ํ•œ ๋Šฅ๋ ฅ์ด๋‹ค. 

 

-๊ทธ๋ž˜ํ”ฝ ์ฒ˜๋ฆฌ

๊ธฐ๋ณธ์š”์†Œ ์ •์˜ → ๋ชจ๋ธ๋ง(๋ณต์žก๋ฌผ์ฒด ์„ค๊ณ„ - ๊ณ ์ˆ˜์ค€API) → ๋ Œ๋”๋ง(๋ชจ๋ธ๋ง๋œ ๋ฌผ์ฒด ํ™”๋ฉด์— ๊ทธ๋ฆฌ๋Š” - ์ €์ˆ˜์ค€ API) 

 

-ํŒŒ์ดํ”„ ๋ผ์ธ๊ณผ ์ƒํƒœ๋ณ€์ˆ˜

---ํŒŒ์ดํ”„๋ผ์ธ == ๊ทธ๋ž˜ํ”ฝ ์ฒ˜๋ฆฌ๋ฅผ ๋ถ„์—…ํ•œ ๊ฒƒ ๊ณผ ๊ฐ™๋‹ค. GPU ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ํš๊ธฐ์ ์œผ๋กœ ๊ฐœ์„ ํ•˜๊ณ , ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์กฐ ํ™œ์šฉ์‹œ ๋ชจ๋“  ์„œ๋ธŒ ํ”„๋กœ์„ธ์„œ ๋™์‹œ์— ๊ฐ€๋™๋˜์„œ ์ฒ˜๋ฆฌ์†๋„๊ฐ€ ๋นจ๋ผ์ง„๋‹ค. ํ•˜๋“œ์›จ์–ด๋กœ ๊ตฌํ˜„๋œ๋‹ค.

---์ƒํƒœ๋ณ€์ˆ˜ : ๋ฌผ์ฒด๊ฐ€ ์–ด๋–ป๊ฒŒ ๊ทธ๋ ค์ ธ์•ผ ํ• ์ง€๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค. GL์€ ๋‹จ์ง€ ์„œ๋ธŒ ํ”„๋กœ์„ธ์„œ๋“ค์—๊ฒŒ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ์ผ์„ ํ•œ๋‹ค.

---์‹œ์Šคํ…œ ํ…Œ์ด๋ธ”: GLํ”„๋กœ๊ทธ๋žจ์ด ์ƒํƒœ๋ณ€์ˆ˜ ๊ฐ’์„ ์„ค์ •ํ•˜๋ฉด ๊ทธ ๊ฐ’์ด ์ƒํƒœ ํ…Œ์ด๋ธ”์— ๊ธฐ๋ก๋˜๊ณ , ๊ฐœ๋ณ„ ํŒŒ์ดํ”„๋ผ์ธ ํ”„๋กœ์„ธ์„œ๋Š” ํ•„์š”ํ•œ ์ƒํƒœ๋ณ€์ˆ˜ ๊ฐ’์„ ์ด ํ…Œ์ด๋ธ”๋กœ๋ถ€ํ„ฐ ์ฝ์–ด์„œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

- ๋ชจ๋“œ: ์ƒํƒœ๋ณ€์ˆ˜๋ณด๋‹ค ํฌ๊ด„์  ๊ฐœ๋… / ์กฐ๋ช…, ํ…์Šค์ฒ˜ ๊ฐ™์€ ์ข…๋ฅ˜์˜ ์ƒํƒœ๋ณ€์ˆ˜/ ์กฐ๋ช… ๋ชจ๋“œ๋ฅผ ๋น„ํ™œ์„ฑํ™” ํ•˜๋ฉด ์กฐ๋ช…์— ๊ด€๋ จ๋œ ๋ชจ๋“  ์ƒํƒœ๋ณ€์ˆ˜๊ฐ€ ์ž๋™์œผ๋กœ ๋น„ํ™œ์„ฑํ™” ๋œ๋‹ค.

 

4. ์˜คํ”ˆ์ง€์—˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

- ๋ช…๋ น์–ด :  GL์€ ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด ๊ฐ์ฒด ์ง€ํ–ฅ์„ ์ฑ„ํƒ ํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

- ํ”„๋กœ๊ทธ๋žจ ๊ตฌ์„ฑ ์š”์†Œ

* ๊ตฌ์„ฑ์š”์†Œ1//์ง€์—˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(GL : OpenGL Core Library)

→ ๋ Œ๋”๋ง ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ํ•จ์ˆ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

 

* ๊ตฌ์„ฑ์š”์†Œ2//์ง€์—˜ ์œ ํ‹ธ๋ฆฌํ‹ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(GLU : OpenGL Utility Library)

 ์ง€์—˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋„์šฐ๋ฏธ

 ๋‹ค๊ฐํ˜• ๋ถ„ํ• (Tessellation), Projection, Quadric Surface, NURBS(Non-Uniform Rational B-Spline) ๋“ฑ ๊ณ ๊ธ‰๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ํ•จ์ˆ˜๋กœ์„œ GL ํ•จ์ˆ˜๋กœ ์ž‘์„ฑ๋˜์–ด์žˆ์Œ

 

* ๊ตฌ์„ฑ์š”์†Œ3//์ง€์—˜ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํˆด ํ‚ท(GLUT : OpenGL Utility Toolkit)

 ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ๋ฐ›์•„๋“ค์ด๊ฑฐ๋‚˜ ํ™”๋ฉด ์œˆ๋„์šฐ๋ฅผ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•œ ํ•จ์ˆ˜๋กœ์„œ ์œˆ๋„์šฐ ์šด์˜์ฒด์ œ๊ฐ€ ์‹คํ–‰ํ•˜๋Š” ๊ธฐ๋Šฅ๋“ค

 GL ํ”„๋กœ๊ทธ๋žจ๊ณผ ๊ทธ ํ”„๋กœ๊ทธ๋žจ์ด ๋Œ์•„๊ฐ€๋Š” ์œˆ๋„์šฐ ์šด์˜์ฒด์ œ ์‚ฌ์ด์˜ ์ธํ„ฐํŽ˜์ด์Šค

 GL์˜ ์ผ๋ถ€๊ฐ€ ์•„๋‹Œ Freeware

 

 

- GLUT์™€ ์œˆ๋„์šฐ ์šด์˜์ฒด์ œ

(intro) ์šด์˜์ฒด์ œ๊ฐ€ ํ•˜๋Š” ์ผ์€?

  • ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์‹œ ํ”„๋กœ๊ทธ๋žจ์„ ์ œ์–ด

  • GL ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์˜ ์‹œ์ž‘ ๋ช…๋ น์„ ๋‚ด๋ฆฌ๋Š” ๊ฒƒ๋„ ์šด์˜์ฒด์ œ

  • GL ์š”์ฒญ์— ๋”ฐ๋ผ ์ƒˆ๋กœ์šด ์œˆ๋„์šฐ ๋งŒ๋“ค๊ธฐ

  • GL์˜ ๋ Œ๋”๋ง ์ž‘์—…์ด ๋๋‚ฌ์„ ๋•Œ ์œˆ๋„์šฐ ์•ˆ์— ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ด๋Š” ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœ

  • ๋งˆ์šฐ์Šค ํด๋ฆญ์‹œ ์ƒํ˜ธ์ž‘์šฉ์— ํ•„์š”ํ•œ ํ•จ์ˆ˜ ํ˜ธ์ถœ

- GLUT

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€