Search
๐Ÿ’พ

3 : OpenGL Primer

course
last review
mastery
intermediate
progress
not started
date
2023/03/21
4 more properties
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