gledanje - kamera - studentski.net · definicija osvetlitve odstranjevanje rezanje v 3d prostor...

Post on 10-Sep-2019

11 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Gledanje - kamera

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()

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

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

Groba klasifikacija projekcij

Paralelna Perspektiva

Klasifikacija planarnih projekcijPlanarne projekcije

Perspektiva

Pravokotna

Paralelna

EnotočkovnaPoševna

Dvotočkovna

Tritočkovna

Aksonometrična Multiview orthographicCabinet

Cavalier

TrimetričnaDimetričnaIzometrična

Pravokotna (ortografska) projekcija

Je najbolj enostavna projekcija

Ortografska projekcija

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

Perspektiva

Zaslon

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

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.

==

1000

0000

0010

0001

ortproj TT

Paralelne pravokotne projekcije (ortografske)

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.

==

1/100

0100

0010

0001

d

TT persproj

opomba: d je na sliki N

Perspektivne projekcije

dzw

zZ

yY

xX

v

v

v

v

====

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

Tipi perspektiv

Enotočkovna perspektiva Dvotočkovna perspektiva

Tritočkovna perspektiva

Lažna perspektiva

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

Volumen gledanja

Volumen gledanja, stožec gledanja

Volumen gledanja(view volume)

Stožec gledanja (frustrum)

Razmerje = wh

Prednja ravnina rezanja

Zadnja ravnina rezanja

Rezano IzločenoIzločeno Prikazano

Prednja ravnina rezanja

Zadnja ravnina rezanja

Nekaj pojmov

Position

Near distance

Far distance

Height angle

Width angle =

Look vector

Up vector

Height angle • Aspect ratio

x

y

z

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

( )( )

−−

=

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

( )( )

−−

−=

000

100

100

000

dffd

dff

hd

hd

Tpers

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

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

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

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);

OpenGL: Postavitev kamere (Paralelna projekcija)

glMatrixMode (GL_PROJECTION)glLoadIdentity();

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

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

Transformacija window - viewport

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

• 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

• Č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

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

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

top related