Previous chapter
Todayโs Main QUEST
๋ฌด์์ ๊ทธ๋ฆด ๊ฒ์ธ๊ฐ?
Q1 : ๊ทธ๋ ค์ผ ํ๋ ๊ฒ์ Shape[ํ์]์ธ๋ฐ, ์ด๋ป๊ฒ ํํํ ๊ฒ์ธ๊ฐ?
Q2 : ์ด๋ ๊ฒ ํํ๋ Shape๋ฅผ ๋์คํฐ ๋๋ฐ์ด์ค๋ก ์ด๋ป๊ฒ ๊ทธ๋ฆด ๊ฒ์ธ๊ฐ?
โ ํฝ์
์ ์ด๋ป๊ฒ ๋ง๋๋๊ฐ?
How To Program a Graphics
๊ทธ๋ํฝ์ค ๋ ๋๋ง์ ํ๋ก๊ทธ๋๋ฐํ๊ฒ ๋ค๋ ๊ฒ
โข
Illumination โ Projection โ Frame Buffer Fill-in
์ ๊ณผ์ ์ ๋ชจ๋ ์ฒ๋ฆฌํ๋๊ฒ ๊ทธ๋ํฝ์ค ํ๋ก์ธ์ค์ด๋ค.
ํ์ง๋ง ์ด ๋ชจ๋ ๊ณผ์ ์ ์ ๋ก๋ถํฐ ๋ง๋๋๊ฑด ๋ฐํด๋ถํฐ ์ฌ๋ฐ๋ช
ํ๋ ์ผ์ด๋ฉฐ, ๋ฐ๋ผ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํ์ํจ.
What we want from Libraries
โข
Primitives๋ฅผ ๊ด๋ฆฌํด์ฃผ๋ ๊ธฐ๋ฅ
โข
์กฐ๋ช
, Projection, Rasterization์ ๊ณ์ฐํด์ฃผ๋ ๊ธฐ๋ฅ
์ด ๊ด๋ฆฌ, ๊ณ์ฐ์ฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ฐ๋ฆฌ๋ OpenGL์ ์ฌ์ฉํ ๊ฒ์ด๋ค.
Why OpenGL?
โข
๊ตญ์ ํ์ค
โข
๋์ ์ด์์ฒด์ ์ง์ ๋ฒ์
OpenGL Features
โข
์ธํฐํ์ด์ค ์์๊ฐ ์์ (๊ฐ OS์์ ์์์ ๊ด๋ฆฌํด์ค์ผ ํจ)
โข
๋ชจ๋ ๋๋ฐ์ด์ค์์ ๊ธฐ๋ณธํ์ฌ๋์ด์์
Typical OpenGL Programming
1.
OS์ OpenGL ๋งํฌ
2.
OpenGL ์คํ
3.
Shader ํ๋ก๊ทธ๋จ ์ปดํ์ผ ํ ๋งํฌ
4.
๋ฐ์ดํฐ ์ค๋น, OpenGL์ผ๋ก ์ ์ก
5.
๊ทธ๋ฆฌ๊ธฐ
์์ด๋ ๊ฒ ๋ณต์กํ ๊ณผ์ ์ ๊ฑฐ์น๋๊ฐ?
Immediate Mode Drawing
drawLine(x1,y1,x2,y2);
SQL
๋ณต์ฌ
๋ค์๊ณผ ๊ฐ์ ๋ฐฉ์์ Immediate Mode Drawing์ด๋ผ๊ณ ํ๋ค.
์ด๋ฐ ์์ผ๋ก ์ปค๋งจ๋๋ฅผ ์ง ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค.
โข
๋ชจ๋ ์ต์ ํ๋ฅผ ์ง์ ํด์ผํ๋ค.
โข
๋ชจ๋ ๊ณ์ฐ์ ์ง์ ํด์ผํ๋ค.
โข
function call์ด ๋๋ฌด ๋ง์์ง๋ค. โ ์ฑ๋ฅ์ ํ์ ์์ธ์ด ๋๋ค.
โข
๊ทธ๋ฆฌ๋ ๋์์ด ๋ฌ๋ผ์ง๊ฒ ๋๋ฉด ์ฝ๋๋ฅผ ์ง์ ๋ฐ๊ฟ์ผ ํ๋ค.
๋ฐ๋ผ์ ๋ฐ์ดํฐ๋ง ์ ๊ณตํด๋ ์์์ ๊ทธ๋ฆด ์ ์๋๋ก ๊ทธ๋ํฝ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ตฌ์ฑํ๊ฒ ๋์์ผ๋ฉฐ,
๊ทธ๋ํฝ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ท๋ชจ๊ฐ ์ ์ ์ปค์ง๋ฉด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ต์ ํ๊น์ง ํ๋๋ก ์๊ตฌํ๋ค.
Retained Mode Drawing
โข
๋ด๊ฐ ๊ทธ๋ ค์ผ ํ ๋์์ ์ดํ๋ฆฌ์ผ์ด์
์ ์ ์๋ง ๊ฐ์ง๊ณ ์๋ค.
โฆ
์ค์ ์ด๋ป๊ฒ ๊ทธ๋ฆด์ง๋ ๊ทธ๋ํฝ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ง ๊ฐ์ง๊ณ ์๋ค.
โข
์ดํ๋ฆฌ์ผ์ด์
์ด ์ฃผ๋ ๋ช
๋ น์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๋ ๋ช
๋ น๊ณผ ๊ทธ๋ฆฌ๋ผ๋ ๋ช
๋ น ๋๊ฐ์ง๋ง ์์ ๊ฒ.
์ด๋ฐ์์ผ๋ก ๊ตฌ์ฑํํ๋ฉด ๊ทธ๋ํฝ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์กฐ๊ธ ๋ ๋ง์ ๋ช
๋ น๊ณผ ๋น ๋ฅธ ๊ณ์ฐ์ ์ฒ๋ฆฌํ ์ ์์ ๊ฒ์ด๋ค.
Retained Mode vs Immediate Mode
โข
Immediate mode๋ ๋จ์ํ ๊ทธ๋ฆผ์ ๊ทธ๋ฆด ๋ ์ดํดํ๊ธฐ ์ฝ๊ณ ์ฌ์ฉํ๊ธฐ ํธํ๋ค.
โข
Retained mode๋ ํ๋์จ์ด์ ์ฑ๋ฅ์ ์ด์ฉ
What you need to do in OpenGL Pipeline
โข
์ ์ ๋ฐ์ดํฐ๋ฅผ OpenGL๋ก ๋ณด๋ธ๋ค.
โข
OpenGL์ ์
ฐ์ด๋๋ฅผ ํ๋ก๊ทธ๋จํ๋ค.
โฆ
Vertex Shader, Fragment Shager(GLSL)
โข
ํ๋ก๊ทธ๋จ ์คํ(Draw!)โ
Next chapter