37
Gledanje - kamera

Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

Gledanje - kamera

Page 2: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

Cevovod gledanja (Graphics Pipeline)

z = znear

z = zfar

y

x

z

COP

y

x

zx

z

z = -1

z = 1

y

x

y

Model Coordinates Eye Coordinates Normalized Coordinates

Window CoordinatesProjectedNormalized Coordinates

ModelviewTransform

ProjectionTransform

ViewportTransform

(-1,-1)

(1,1)

glScalef() glRotatef()glTranslatef()

glFrustrum()gluPerspective()

glViewport()

Page 3: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

Cevovod gledanja (viewing pipeline)

ModelviewMatrix, VM

ProjectionMatrix, R

Clipping

PerspectiveDivision

Viewport Transformation, Vp

(Px, Py, Pz)

(x*,y*,z*)

Eye coordinates

Clip coordinates

Normalized device coordinates

Page 4: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

Ravnina gledanja

eye

V

U

-N

RTTview =

⋅−⋅−⋅−

=

1000

100

010

001

NeVec

VeVec

UeVec

T

( )( )000−= eyeeVec

=

1000

0

0

0

zyx

zyx

zyx

NNN

VVV

UUU

R

=

11w

w

w

viewv

v

v

z

y

x

Tz

y

x

Page 5: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

Groba klasifikacija projekcij

Paralelna Perspektiva

Page 6: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

Klasifikacija planarnih projekcijPlanarne projekcije

Perspektiva

Pravokotna

Paralelna

EnotočkovnaPoševna

Dvotočkovna

Tritočkovna

Aksonometrična Multiview orthographicCabinet

Cavalier

TrimetričnaDimetričnaIzometrična

Page 7: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

Pravokotna (ortografska) projekcija

Je najbolj enostavna projekcija

Page 8: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

Ortografska projekcija

Page 9: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

Zaslon

Dodajanje perspektive pogledu je le vprasanje skaliranja višine in širine predmeta, odvisno od tega, koliko je predmet oddaljen od zaslona.

Paralelna projekcija

Video

Page 10: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

Perspektiva

Zaslon

Page 11: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

Pogledi - projekcije na ravnine

Vzporedne poglede dobimo običajno s pravokotno, vzporedno projekcijo karakterističnih točk predmetov na eno od ravnin xz, yz ali xz

Page 12: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

Pogledi v tipičnem modelirniku

Sprednji, stranski-desni, tloris-zgornji pogled so vzporedni projekcijski pogledi.

Črte v teh pogledih ne konvergirajo.Razdalja med objektom in kamero ne vpliva na velikost objekta, oddaljeni in bliznji predmeti so enako veliki.

Page 13: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

==

1000

0000

0010

0001

ortproj TT

Paralelne pravokotne projekcije (ortografske)

Page 14: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

Perspektivna projekcija

Perspektivna projekcija vsebuje določen Cp in oponaša naš vid. Pri taki projekciji je velikost predmeta obratnosorazmerna od tega, kako daleč je objekt od CP. Taka projekcija zgleda realistično, vendar ne ohranja kotov in vzporednosti črt.

Page 15: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

==

1/100

0100

0010

0001

d

TT persproj

opomba: d je na sliki N

Perspektivne projekcije

dzw

zZ

yY

xX

v

v

v

v

====

Page 16: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

Perspektiva

wZz

wYy

wXx

s

s

s

=

=

=

dzw

zZ

yY

xX

v

v

v

v

====kjer je

Paralelna (ortografska)

0===

s

vs

vs

z

yy

xx

Page 17: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

Tipi perspektiv

Enotočkovna perspektiva Dvotočkovna perspektiva

Tritočkovna perspektiva

Page 18: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

Lažna perspektiva

Page 19: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

V prejšne preproste transformacije moramo vključiti volumen gledanja (view volume):

Volumen gledanja

Page 20: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

Volumen gledanja, stožec gledanja

Volumen gledanja(view volume)

Stožec gledanja (frustrum)

Razmerje = wh

Prednja ravnina rezanja

Zadnja ravnina rezanja

Page 21: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

Rezano IzločenoIzločeno Prikazano

Prednja ravnina rezanja

Zadnja ravnina rezanja

Page 22: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

Nekaj pojmov

Position

Near distance

Far distance

Height angle

Width angle =

Look vector

Up vector

Height angle • Aspect ratio

x

y

z

Page 23: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

d

hzx v

v −=

h

d

d

hzx v

v =

d

hzy v

vol =

d

hzy v

v −=

dzv =

fzv =f

Bližnja ravninaDaljna ravnina

Nekaj matematike

Page 24: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

( )( )

−−

=

000

100

0010

0001

1000

0100

000

000

dffd

dffh

dh

d

Tpers

Skaliranje (d/h v x in y)Prirezana piramida v navadno

piramido

Navadna piramida v kvader

Transformacijske matrike

Page 25: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

( )( )

−−

−=

000

100

100

000

dffd

dff

hd

hd

Tpers

Page 26: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

Cevovod 3D upodabljanjaDefinicija predmeta

Kompozicija sceneDefinicija pogledaDefinicija osvetlitve

OdstranjevanjeRezanje v 3D prostor gledanja

Odstranjevanje zakritih ploskevRasterizacijaSenčenje

Lokalni koordinatni sistem

Koordinatni prostor sveta

Prostor gledanja

3D prostor zaslona

Prostor zaslona

Transformacije modela

Transformacija gledanja

Projekcija

Deljenje projekcije

Page 27: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

Stopnje transformacije verteksov

Matrikagledanja

Matrikaprojekcije

Deljenje perspektive

ViewportTransformation

Koordinate predmeta

Koordinate oči

Koordinate rezanja

Normalizirane koordinate

Transformacije okna

Tu vse transformacije uporabimo na vsaki točki

Matrika “Modelview” vsebuje trenutno transformacijsko matriko, CT

Page 28: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

OpenGL® Cevovod preslikav

Matrikagledanjamodela

Matrikaprojekcije

Delitevperspektive

Transformacijaviewport

w

z

y

x

eye

eye

eye

eye

w

z

y

x

1dev

dev

y

x

proj

proj

proj

w

y

x

win

win

y

x

originalniverteks

Verteks v koordinatnem prostoru očesa

2d projekcijaverteksa na Rvnino gledanja

Normalizirane koordinate

naprave(normalised

deviceCoordinates)

Končne koordinate

okna

Page 29: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

OpenGL: Položaj in usmeritev kamere

View plane

eye

V

U

-N

glMatrixMode (GL_MODELVIEW)glLoadIdentity();

glLookAt (eye.x, eye.y, eye.z, look.x, look.y, look.z, up.x, up.y, up.z);glLookAt (eye.x, eye.y, eye.z, look.x, look.y, look.z, up.x, up.y, up.z);

Page 30: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

OpenGL: Postavitev kamere (Paralelna projekcija)

glMatrixMode (GL_PROJECTION)glLoadIdentity();

glOrtho (left, right, bottom, top, near, far);glOrtho (left, right, bottom, top, near, far);

Page 31: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

OpenGL: Postavitev kamere (Perspektivna projekcija)

glMatrixMode (GL_PROJECTION)glLoadIdentity();

glFrustum (left, right, bottom, top, near, far);glFrustum (left, right, bottom, top, near, far);

gluPerspective (viewAngle, aspect, near, far);gluPerspective (viewAngle, aspect, near, far);

or

more intuitive

Page 32: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

Transformacija window - viewport

Page 33: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

Osnovna ideja: Svet in okno v ta svet

Predstavitev sveta

Okno v svet

• Predstavitev sveta ostaja ista.

• Okno v svet se spreminja, ko se premikamo v svetu, tj. okno v svet se premika.

Svet in okno v svet

Page 34: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

• Tako “okno v svet” kot “svet” imata oba koordinatni sistem.

• Zaslon je množica pikslov (pixel = picture element). Kot tudi okno na namizju zaslona. Kot tudi območje znotraj okna.

• Piksli tvorijo dvodimenzionalno mrežo s koordinatami (0,0) v zgornjem levem in maksimalnim številom pikslov za dimenzijo v spodnjem desnem kotu, npr.: (1024,768).

• Tako so koordinate zaslona naslednje:

(0,0)

(1024, 768)

Koordinate

Page 35: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

• Črte so podane v koordinatah z izhodiščem, podanim v središču zaslona, npr.:

resolucija 1024 x 768 pomeni središčno točko (512, 384)

• Vse transformacije:

• izvedemo na koordinatah sveta,

• ki jih preslikamo na koordinate zaslona.

• Tako je izračun logičnih transformacij ločen od podrobnosti vidnega področja.

• Model nočemo imeti vezan na resolucijo. Preslikava koordinat sveta na koordinate zaslona nam to omogoča.

Koordinate sveta

Page 36: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

Prikaz:

Os x

Os y

Os z

(0, 0, 0) v koordinatah sveta(512,384,0) v pravih koordinatah

• os Z je pravokotna na osi X in Y.

(512, 384, 0)

(512, -384, 0)

Koordinate sveta

Page 37: Gledanje - kamera - studentski.net · Definicija osvetlitve Odstranjevanje Rezanje v 3D prostor gledanja Odstranjevanje zakritih ploskev Rasterizacija Senčenje Lokalni koordinatni

Primer:

• točka (0,0,0) v svetu je (512, 384) na zaslonu.• točka (100, -20,0) v svetu je (612, 404) na zaslonu.

• zaslonska koordinata X postane večja s pozitivno koordinato sveta X.• zaslonska koordinata Y postane večja z negativno koordinato sveta Y.

Koordinate sveta