Biografije Karakteristike Analiza

Centralne (perspektivne) projekcije. Matrice perspektive u grafičkom API-ju ili je đavo u detaljima

Vrste perspektivne projekcije predložene u prethodnom dijelu nisu bile informativne, jer je u svim slučajevima iz svakog centra projekcije bilo vidljivo samo jedno lice kocke. Da bi posmatrač na osnovu samo jednog pogleda uočio trodimenzionalni oblik objekta, potrebno je da se vidi više lica ovog objekta. Za jednostavne objekte poput kocke, najmanje tri lica moraju biti vidljiva. Višeslojni pogled se može dobiti iz perspektivne projekcije u jednoj tački s fiksnim centrom i ravninom projekcije okomitom na smjer gledanja ako je objekt prethodno preveden i/ili rotiran. Tada se dobija realističan prikaz, osim ako je centar projekcije preblizu objektu.

Rice. 3-31 Perspektiva u tri tačke, (a) Originalna kocka; (b) perspektivna projekcija na ravan; (c) iskrivljena kocka.

Za početak, razmotrite jednostavan prijenos objekta, nakon čega slijedi projekcija u jednoj tački na ravan i sa centrom projekcije u tački . Tražena transformacija se piše kao

, (3-59)

Rice. 3-32 Perspektivna projekcija u jednoj tački s prijevodom u , smjerovima.

Jednačina (3-59) zajedno sa sl. 3-32 pokazuje da je prijevod u smjerovima i otvara dodatna lica objekta. Prijevod u oba ova smjera je neophodan da bi se otkrila tri lica jednostavnog objekta nalik kocki. Na sl. 3-32 prikazuje rezultate translacije duž prave linije centrirane u odnosu na ishodište kocke i projekcije u jednoj tački na ravan. Imajte na umu da je prednja strana prikazana u svojoj pravoj veličini i obliku.

Jednačina (3-59) također pokazuje da translacija duž ose, tj. prema ili udaljenom od centra projekcije rezultira jasnom promjenom razmjera (zbog elementa). Ovaj efekat je u skladu sa fizičkom stvarnošću, jer se objekti koji su udaljeniji od posmatrača čine manjim. Imajte na umu da kako se centar projekcije približava beskonačnosti, fenomen skaliranja nestaje. Ovaj efekat je šematski prikazan na Sl. 3-33. Kao što je prikazano na ovoj slici, objekat može biti sa obe strane centra projekcije. Ako su predmet i ravnina projekcije na istoj strani centra, onda, kao što je prikazano na sl. 3-33, dobija se ravna slika. Ako objekt i ravnina projekcije leže na suprotnim stranama centra, onda se dobija obrnuta slika.

Rice. 3-33 Efekat skaliranja pri kretanju duž ose za perspektivnu projekciju u jednoj tački.

Na sl. 3-34 prikazuje rezultate pomicanja objekta u sva tri smjera. Ovdje se kocka kreće duž trodimenzionalne prave linije od do . Primjetno je povećanje veličine, a u svim pogledima je uočljiv pravi oblik, ali ne i veličina prednje strane.

Ove ideje su detaljnije objašnjene u primjeru.

Primjer 3-22 Projekcija perspektive u jednoj tački sa prijenosom

Zamislite jediničnu kocku koja je centrirana u odnosu na ishodište sa sljedećim koordinatnim vektorima

.

Pomaknimo kocku za 5 jedinica u smjerovima i i izgradimo perspektivnu projekciju na ravninu sa centrom projekcije na .

Jednačina (3-59) daje ukupnu matricu transformacije

.

Rice. 3-34 Perspektivna projekcija u jednoj tački u kombinaciji s prijevodima u , , smjerovima.

Transformirane koordinate

.

Gornji desni objekat na sl. 3-32 prikazuje ovaj rezultat.

Ako je originalni objekt pomaknut za 5 jedinica u smjerovima , , a projekcija perspektive u jednoj tački je izgrađena na ravni sa centrom projekcije na , tada iz (3-59) slijedi da je napisana ukupna matrica transformacije as

.

Obratite pažnju na ukupno skaliranje dato vrijednošću 0,75 u donjem desnom elementu matrice transformacije.

Transformirane koordinate su

.

Rezultat je prikazan kao gornji desni objekat na sl. 3-34.

Nekoliko ivica će također biti vidljivo ako koristite rotaciju objekta. Jedna rotacija će otvoriti najmanje dva lica objekta, dok će dvije ili više rotacija oko različitih osa otvoriti najmanje tri lica.

Transformacijska matrica za rotaciju oko ose za ugao i naknadnu perspektivnu projekciju u jednoj tački na ravan sa centrom projekcije na:

. (3-60)

Slično, matrica transformacije za rotaciju oko ose za ugao i naknadnu perspektivnu projekciju u jednoj tački na ravan sa centrom projekcije u tački je:

. (3-61)

U obje jednačine (3-60) i (3-61), dva elementa perspektivne transformacije (perspektive) u četvrtom stupcu matrice transformacije su različiti od nule. Dakle, jedna rotacija oko glavne ose, okomita na osu na kojoj leži centar projekcije, ekvivalentna je transformaciji perspektive u dve tačke. Pri okretanju oko ose na kojoj leži centar projekcije nema tog efekta. Imajte na umu da za jednu rotaciju, perspektivni element za os rotacije ostaje nepromijenjen, na primjer, u jednadžbama (3-60) i (3-61), elementi i jednaki su nuli.

U opštem slučaju, rotacija oko glavne ose ne otkriva broj lica neophodan za adekvatan trodimenzionalni prikaz – najmanje tri. Da biste to učinili, mora se kombinirati s kretanjem duž osi. Sljedeći primjer to ilustruje.

Primjer 3-23 Projekcija perspektive u dvije tačke pomoću jedne glavne rotacije

Razmotrimo projekciju na ravan sa centrom u tački na kocki na sl. 3-35a, rotirano oko ose za ugao da se otvori lijeva strana, i pomaknuto jedinicama duž da se otvori gornja strana.

Koristeći jednačinu (3-38) sa , jednadžbu (3-47) sa i jednačinu (3-14) sa , dobijamo

.

Transformirane koordinate su

.

Rezultat je prikazan na sl. 3-35b. Distorzija se pojavljuje zbog činjenice da se centar projekcije nalazi preblizu kocki. Obratite pažnju na konvergenciju paralelnih osi i pravih linija prema tačkama nestajanja koje leže na osi. Ove tačke nestajanja su definisane u Primeru 3-25 odeljka. 3-17.

Rice. 3-35 Perspektivna projekcija u dvije tačke sa rotacijom oko jedne ose.

Slično, transformacija perspektive u tri tačke se izvodi rotacijom oko dvije ili više glavnih osa, a zatim transformacija perspektive u jednoj tački. Na primjer, rotacija oko ose, zatim rotacija oko ose i projekcija perspektive na ravan sa centrom projekcije u tački ima sledeću matricu transformacije

.

Rezultat je prikazan na sl. 3-36.

Rice. 3-36 Perspektivna projekcija u tri tačke sa rotacijom oko dve ose.

Iz ovih rezultata postaje jasno da se perspektivna transformacija u jednoj, dvije ili tri točke može konstruirati korištenjem rotacija i translacija oko i duž glavne osi, nakon čega slijedi transformacija perspektive u jednoj tački sa centrom projekcije smještenim na jednoj glavnih osa. Ovi rezultati vrijede i za rotaciju oko proizvoljne ose u prostoru. Stoga, kada se u grafičkom sistemu koristi paradigma s fiksnim projekcijskim centrom i manipuliranim objektom, potrebno je samo osigurati konstrukciju jednotačkaste perspektivne projekcije na ravni sa centrom projekcije na osi .

Za detaljan opis metoda praćenja tačkastih karakteristika, kalibracije kamere i rekonstrukcije trodimenzionalnih objekata, potrebno je uvesti model perspektivnog projektovanja i opisati geometrijska svojstva ove transformacije. Tačke nekoliko perspektivnih projekcijskih slika imaju posebne međusobne odnose, koji su opisani epipolarnom geometrijom. Modele ovih odnosa treba detaljno razmotriti, jer. gotovo sve metode 3D rekonstrukcije zahtijevaju evaluaciju odgovarajućih modela i oslanjaju se na njihova svojstva.

Posebno je potrebno napomenuti pretpostavku da sve originalne slike snimaju istu scenu, tj. svaka slika je prikaz scene sa određene kamere. Stoga se radi lakšeg opisa uvodi pojam pogleda, kao slika s pridruženim modelom kamere iz koje je dobivena.

perspektivna projekcija

Model perspektivne projekcije odgovara idealnoj kameri obskuri. Ovaj model prilično odgovara procesu snimanja u većini modernih fotoaparata i kamkordera. Međutim, zbog ograničenja moderne optike, stvarni proces se donekle razlikuje od modela camera obscura. Razlike između stvarnog procesa i modela nazivaju se distorzije i modeliraju se zasebno.

Model najjednostavnije camera obscure je zgodan jer je u potpunosti opisan centrom projekcije i položajem ravni slike. Stoga se projekcija bilo koje tačke scene na slici može naći kao presek zraka koji povezuje centar projekcije i tačku scene sa ravninom slike.

Najjednostavniji model projekcije perspektive

Razmotrimo najjednostavniji slučaj, kada je centar projekcije (fokus) kamere postavljen u ishodište koordinatnog sistema, a ravan slike se poklapa sa ravninom Z=1. Neka su (X,Y,Z) koordinate tačke u 3-dimenzionalnom prostoru, a (x,y) projekcija ove tačke na sliku I. Perspektivna projekcija u ovom slučaju je opisana sledećim jednačinama:

U matričnom obliku, koristeći homogene koordinate, ove jednačine se prepisuju na sljedeći način:

(2.2)

Ravan koja se nalazi na udaljenosti od 1 od centra projekcije i okomita na optičku os naziva se idealna ravan slike. Optička os siječe idealnu ravan slike u tački c, koja se naziva glavna tačka. Ilustracija najjednostavnijeg slučaja perspektivne projekcije prikazana je na sl. jedan.

Interna kalibracija kamere

Najjednostavniji slučaj perspektivne projekcije gotovo uvijek ne odgovara stvarnoj kameri. Udaljenost od centra projekcije do ravni slike, tj. žižna daljina, označena sa f, obično nije jednaka 1. Takođe, koordinate tačke u ravni slike možda se ne poklapaju sa apsolutnim koordinatama. Kada se koristi digitalna kamera, odnos između koordinata tačke na slici i apsolutnih koordinata tačke na idealnoj ravni je određen oblikom i veličinom matričnih piksela.

Označimo dimenzije piksela matrice digitalnog fotoaparata kao p x , p y , ugao nagiba piksela kao α, a glavnu tačku kao , Sl.2. Tada su koordinate tačke (x, y) na slici koja odgovara tački (x R, y R) na idealnoj ravni određene izrazom:

(2.3)

Ako f x ,f y označavaju žižnu daljinu f mjerenu širinama i visinama piksela, a označavaju tan(α)*f/p y kao s, tada se formula 2.3 pretvara u:

(2.4)

K matrica se naziva matrica za kalibraciju interne kamere. U većini slučajeva, za prave digitalne kamere, ugao nagiba piksela je blizak direktnom, tj. parametar s=0, a širina i visina piksela su jednake. Osnovna tačka se obično nalazi u centru slike. Prema tome, matrica K se može napisati kao:

(2.5)

Ova pretpostavka o obliku matrice K se široko koristi za pojednostavljenje algoritama za određivanje unutrašnje kalibracije kamere, kao i za sintetičko modeliranje slike, neophodnog za procenu kvaliteta i efikasnosti metoda 3D rekonstrukcije.

Kalibracija eksterne kamere

Neka je M tačka scene u 3-dimenzionalnom prostoru. Svako kretanje je euklidska transformacija prostora, pa se u homogenim koordinatama izražava kao:

(2.6)

gdje je R matrica rotacije, T= T je translacijski vektor.

Kretanje kamere u odnosu na scenu je ekvivalentno obrnutom kretanju tačaka scene u odnosu na kameru, stoga je jednako:

(2.7)

gdje su R, T matrica rotacije i vektor kretanja kamere u odnosu na scenu. Matrica C se naziva matrica eksterna kalibracija kamere. Matrica C -1 se naziva matrica pokreti kamere. Dakle, matrica eksterne kalibracije kamere prevodi koordinate tačaka scene iz koordinatnog sistema scene u koordinatni sistem povezan sa kamerom.

Model pune perspektivne projekcije

Iz izraza 2.1, 2.4, 2.7 može se izvesti izraz za proizvoljnu perspektivnu projekciju za bilo koju kameru sa proizvoljnom orijentacijom i pozicijom u prostoru:

U kraćem obliku, uzimajući u obzir prethodnu notaciju, ova formula se može napisati kao:

Matrica P se naziva matrica projekcije kamere.

Analogno općoj transformaciji perspektive, prvo razmotrimo najjednostavniji slučaj transformacije ravni perspektive. Neka se ravan p poklapa sa ravninom Z=0, tada su homogene trodimenzionalne koordinate bilo koje njene tačke M=. Za bilo koju kameru sa matricom projekcije P, perspektivna transformacija ravnine je opisana matricom 3*3:


Budući da se bilo koja ravan u 3-dimenzionalnom prostoru može prevesti u ravan Z = 0 euklidskom transformacijom rotacije i translacije, što je ekvivalentno množenju matrice kamere P sa matricom transformacije L, tada se perspektivni prikaz proizvoljne ravni u prostor je opisan linearnom transformacijom sa matricom dimenzija 3 * 3.

Transformacija perspektivne ravni se takođe naziva homografija. U matričnom obliku, transformacija perspektivne ravni se zapisuje kao m=HM.

Geometrija dvije slike

Scena utisnuta na svim izvornim slikama smatra se nepomičnom, tako da se relativni položaj projekcija tačaka scene na različitim kadrovima ne može proizvoljno mijenjati. Ograničenja nametnuta na lokaciju projekcija tačaka očito zavise od parametara kamera i njihove pozicije jedna u odnosu na drugu. Stoga, definicija modela takvih ograničenja daje neke informacije o relativnom položaju kamera sa kojih su slike dobijene.

Transformacija perspektivne ravni

Ako se centri dviju kamera poklapaju, tada se tačke na ravni slike obje kamere pretvaraju jedna u drugu perspektivnom transformacijom ravnine. U ovom slučaju, transformacija tačaka između slika ne zavisi od oblika 3D scene, već samo od relativnog položaja ravni slike.

Ako je cijela scena ili njen dio ravan, tada se njene slike u različitim pogledima s nepodudarnim centrima kamere mogu konvertovati jedna u drugu homografskom transformacijom. Neka je p posmatrana ravan, H 1 homografska transformacija između ravni p i slike I 1, H 2 - homografska transformacija između ravni p i slike I 2. Zatim homografska transformacija H 12 između slika I 1 i I 2 može se ispisati ovako:

H 12 ne zavisi od parametrizacije ravni p, pa prema tome ne zavisi od koordinatnog sistema u prostoru

Većina metoda za određivanje koordinata 3D tačaka iz njihovih projekcija i metoda za rekonstrukciju 3D scene zasnivaju se na pretpostavci da se centar kamere kreće između pogleda. Stoga, ako se centri kamera nekoliko tipova podudaraju, ove metode će dati pogrešne rezultate. Takve konfiguracije kamera moraju biti otkrivene i njima se rukuje na poseban način.

Kako je homografska transformacija zapisana u homogenim koordinatama, matrica H je definirana do razmjera. Ima 8 stupnjeva slobode i parametrizira se sa 8 varijabli. Svaki poznati par odgovarajućih tačaka m 1 i m2 na prvoj i drugoj slici, redom, daje 2 linearne jednadžbe iz elemenata matrice H. Dakle, 4 poznata para odgovarajućih tačaka su dovoljna da se sastavi sistem linearnih jednačina od 8 jednačina sa 8 nepoznatih. Prema ovom sistemu, homografija H može se jednoznačno odrediti ako nijedna tri tačke ne leže na istoj pravoj.

Fundamental Matrix

Razmotrimo slučaj kada se centri dvije vrste kamera ne poklapaju. Neka C1 i C2- centri dvije kamere, M - 3-dimenzionalna tačka scene, m 1 i m2- projekcije tačke M na prvu i drugu sliku, respektivno. Neka je P ravan koja prolazi kroz tačku M i centre kamera C1 i C2. Ravan P siječe ravnine slike prve i druge, vidi se duž pravih linija l 1 i l 2. Jer zraci C 1 M i C 2 M leže u ravni P, očigledno je da tačke m 1 i m2 lezi na pravim linijama l 1 i l 2 respektivno. Moguće je dati opštiju izjavu da projekcije bilo koje tačke M, koja leži u ravni P, na obe slike moraju ležati na pravim linijama l 1 i l 2. Ove linije se nazivaju epipolarne linije. P ravan se naziva epipolarna ravan.

Dva prikaza iste scene nazivaju se stereopar i segment C 1 C 2, koji povezuje centre kamera, naziva se baza stereo para (osnovna linija) ili stereo baza. Bilo koja epipolarna ravan prolazi kroz segment C 1 C 2. Neka C 1 C 2 siječe prvu i drugu sliku u tačkama e 1 i e 2 respektivno. bodova e 1 i e 2 nazivaju se epipolarne tačke ili epipoli. Sve epipolarne linije se sijeku u tačkama e 1 i e 2 na prvoj i drugoj slici, respektivno. Skup epipolarnih ravni je snop koji se siječe duž stereobaze C 1 C 2. Mnoge epipolarne linije na obje slike također predstavljaju snopove pravih linija koje se seku na e 1 i e 2 .

bodova m 1 i m2 nazivaju se odgovarajućim ako su projekcije iste tačke scene M. Epipolarne linije l 1 i l 2 nazivaju se odgovarajućim ako leže u istoj epipolarnoj ravni P. Ako epipolarna ravan P prolazi kroz tačku m 1, zatim epipolarne linije l 1 i l 2 koji leže u njemu nazivaju se odgovarajućim tačkama m 1.

Ograničenje položaja odgovarajućih tačaka m 1 i m2, koji slijedi iz epipolarne geometrije, može se formulirati na sljedeći način: tačka m2 odgovara m 1, mora ležati na epipolarnoj liniji l 2 odgovarajući m 1. Ovo stanje se naziva epipolarno ograničenje. U homogenim koordinatama, uslov da je tačka m leži na liniji l napisano kao l T m=0. Epipolarna linija također prolazi kroz epipolarnu tačku. Jednadžba prave linije koja prolazi kroz tačke m 1 i e 1 može se napisati kao:

l 1 ∼ x m 1,

gdje x je antisimetrična matrica 3*3 takva da, x m 1- vektorski proizvod m 1 i e 1.

Za odgovarajuće epipolarne linije l 1 i l 2 desno:

gdje P+- pseudo-inverzija matrice P.

Matrica F se naziva fundamentalna matrica. To je linearni operator koji preslikava svaku tačku m 1 odgovarajuća epipolarna linija l 2. Za svaki par odgovarajućih tačaka m 1 i m2 u pravu

m T 2 Fm 1 =0

Ovo je formulacija epipolarnog ograničenja u smislu osnovne matrice.

Osnovna matrica ima 7 stupnjeva slobode. Svaki par odgovarajućih tačaka m 1 i m2 specificira jednu linearnu jednačinu po elementima matrice, tako da se može izračunati iz poznatih 7 parova odgovarajućih tačaka.

Epipolarno ograničenje vrijedi za bilo koji par odgovarajućih tačaka smještenih na dvije vrste idealnih ravni. Ako su poznate interne kalibracione matrice K1 i K2 kamere oba tipa, tada se epipolarno ograničenje za odgovarajuće tačke na idealnim ravnima piše kao:

Matrica E se zove bitno matrica. Može se pokazati da se bitna matrica može dobiti i iz relativnih položaja kamera.

Neka P 1 =(I|0) i P 2 =(R|-RT)- dvije projekcijske matrice sa kalibracijom K = I. Tada se projekcijske jednadžbe na idealnoj ravni obje komore zapisuju kao:

Pronađite epipolarnu liniju u drugom pogledu koja odgovara tački m" 1 na prvom. Da biste to učinili, dovoljno je projicirati na drugi pogled dvije tačke koje leže na zraku (C 1 ,m" 1) na drugi pogled, na primjer centar prve kamere (0,0,0,1) T i tačka na ravni beskonačnosti (x" 1 ,y" 1 ,z" 1 ,0) T. Projekcije ovih tačaka će biti -RT, i R(x" 1 ,y" 1 ,z" 1 ,0) T. Epipolarna linija jednadžbe l 2 prolaz kroz obje ove točke je dat kao vektorski proizvod:

l 2 =RT×R(x" 1 ,y" 1 ,z" 1) T =R(T×(x" 1 ,y" 1 ,z" 1) T)

U matričnom obliku, vektorski proizvod T×(x" 1,y" 1,z" 1) T može se napisati pomoću matrice S:

Tada se epipolarno ograničenje na tačke u idealnoj ravni piše kao:

Izraz esencijalne matrice u smislu parametara eksterne kalibracije dvije kamere koristi se za izračunavanje relativnih položaja kamera.

Geometrijska svojstva tri ili više slika

Neka C1,C2 i C3- centri triju pogleda na istu trodimenzionalnu scenu. U ovom slučaju, epipolarna ograničenja se nameću na odgovarajuće tačke bilo kog para pogleda. Ako su poznate projekcije dvije tačke m 1 i m2 na prvom i drugom pogledu, tada se pozicija projekcije na trećoj slici može naći kao sjecište dva epipolarna pogleda koja odgovaraju tačkama m 1 i m2.

Prema dvije poznate projekcije m 1 i m2 dvije slike sa poznatom kalibracijom mogu se koristiti za određivanje položaja tačke M u prostoru. Stoga, ako je kalibracija treće slike poznata, onda se projekcija tačke M na treći pogled može odrediti jednostavnom projekcijom.

Ograničenja nametnuta na položaj odgovarajućih tačaka više od dvije slike također se mogu napisati u linearnom obliku. Za tri pogleda, ova ograničenja su napisana u obliku trifokalnog tenzora, za četiri pogleda - u obliku kvadrifokalnog tenzora. Međutim, izračunavanje ovih ograničenja je ekvivalentno izračunavanju kalibra sve tri ili četiri vrste u projektivnom prostoru. U ovom radu se ove vrste ograničenja ne koriste, stoga se ne razmatraju detaljnije.

Višegodišnji radovi. Voloshin Maximilian. HRABOST PESNIKA. 1. Uredite pjesmu kao tekst prekomorske depeše: Suvoća, jasnoća, pritisak - svaka riječ je na oprezu.

Slovo za slovom koje treba rezati na tvrdom i skučenom kamenu: Što su riječi škrtije, to je njihova snaga intenzivnija. Voljni naboj misli jednak je prešućenim strofama.

Izbriši iz rječnika riječi "Ljepota", "Inspiracija" - Podli žargon rimova Pjesniku - razumijevanje: Istina, konstrukcija, plan, ekvivalencija, sažetost i tačnost. U trezvenom, čvrstom zanatu - nadahnuće i čast pesnika: U gluhonemoj supstanci izoštri transcendentalnu budnost. Voloshin M.A. Biblioteka: Regionalna naučna univerzalna javna biblioteka Oryol. I.A. Bunin. - M.,; Izabrana djela: U 2 toma.

M., ; Crveni dim: Priče. - M.,; Gladyshev iz izviđanja: Priče. - M.,; Echelon; Neminovnost: romani. Napravio je mnogo prijevoda marijskih i udmurtskih pjesnika. S vremena na vrijeme okušao se i u prozi. Op. Maksimilijan Aleksandrovič Vološin () je jedan od najvećih pesnika prve trećine 20. veka. Riječ je o talentiranom umjetniku, višestrukom liričaru, koji je od simbolističkih, ezoteričnih pjesama prošao put do građansko-novinarske i naučno-filozofske poezije, preko antropozofskih sklonosti – do „ideala Grada Božjeg“.

Predloženo izdanje omogućava čitatelju da se upozna ne samo s najboljim poetskim djelima Vološina, već i sa njegovim najzanimljivijim radovima o estetici, memoarskoj prozi, publicistici i pismima vezanim za dramatične događaje u životu zemalja. Autor. Voloshin Maximilian. Sve pesme autora. Posao. Hrabrost pesnika. 2. Zvijezde. Kreirajte odabrane zbirke autora i pjesama!

Razgovarajte sa istomišljenicima! Pišite recenzije, sudjelujte u poetskim duelima i takmičenjima! Pridružite se najboljima! Hvala vam što ste se pridružili Poembuku! E-mail sa podacima za pristup nalogu je poslan na Vašu email adresu!

Morate se prijaviti u roku od 24 sata. U suprotnom, račun će biti izbrisan! Registrovani korisnici dobijaju mnogo pogodnosti: Objavljujte poeziju - ostvarite svoj talenat! Kreirajte odabrane zbirke autora i pjesama! Razgovarajte sa istomišljenicima! Pišite recenzije, sudjelujte u poetskim duelima i takmičenjima!. Maksimilijan Vološin. Opis. Maksimilijan Aleksandrovič Vološin je jedan od najvećih pesnika prve trećine 20. veka.

Riječ je o talentiranom umjetniku, višeznačnom liričaru, koji je od simbolističkih, ezoteričnih pjesama prošao put do građansko-novinarske i naučno-filozofske poezije, preko antropozofskih sklonosti – do „ideala Grada Božjeg“. Predloženo izdanje omogućava čitatelju da se upozna ne samo s najboljim poetskim djelima Vološina, već i sa njegovim najzanimljivijim radovima o estetici, memoarskoj prozi, publicistici i pismima vezanim za dramu.

Odabrani radovi i pisma. M. A. Voloshin. Cijena. rub. Maksimilijan Aleksandrovič Vološin je jedan od najvećih pesnika prve trećine 20. veka. Riječ je o talentiranom umjetniku, višeznačnom liričaru, koji je od simbolističkih, ezoteričnih pjesama prošao put do građansko-novinarske i naučno-filozofske poezije, preko antropozofskih sklonosti – do „ideala Grada Božjeg“.

Vološin M.A., Odvažnost pesnika: Izabrana dela i pisma. serija: Nova biblioteka ruskih klasika: obavezan primerak Parada, g., str. Opis knjige. Maksimilijan Aleksandrovič Vološin () je jedan od najvećih pesnika prve trećine 20. veka. Riječ je o talentiranom umjetniku, višestrukom liričaru, koji je od simbolističkih, ezoteričnih pjesama prošao put do građansko-novinarske i naučno-filozofske poezije, preko antropozofskih sklonosti – do „ideala Grada Božjeg“.

kategorije Post navigacija

Danas ćemo detaljnije pogledati uređaj virtuelne kamere. Počnimo sa slikom.

Na slici vidimo koordinatni prostor kamere. Smjer ("izgled") kamere uvijek se poklapa sa pozitivnim smjerom z-ose, a sama kamera se nalazi na početku.

Unutrašnji prostor piramide prikazan na slici je onaj dio virtuelnog svijeta koji će korisnik vidjeti.

Obratite pažnju na tri ravni. Prvi se nalazi na udaljenosti od 1 duž z-ose. Ovo je bliski avion. Ono što je prije toga igrač nikada neće vidjeti. U ovom slučaju, vrijednost z je jednaka jedan, ali općenito govoreći, može biti bilo što. Jedna mana u prikazu grafike je povezana sa bliskom ravninom. Ovaj nedostatak se manifestuje prvenstveno kod snimatelja (zbog velike slobode kamere). Kada se previše približite nekom objektu, možete završiti "unutra". Od najnovijih igara, ovaj nedostatak je bio posebno izražen u Left 4 dead: kada se gomila zombija nagomilala na igrača, vrlo često je bilo moguće pogledati unutar drugih likova.

Ravan koja se nalazi na udaljenosti od 100 jedinica duž z-ose naziva se daleka ravan. Opet, vrijednost može biti proizvoljna. Korisnik nikada neće vidjeti objekte dalje od ove ravni.

Šest ravni koje definiraju prostor koji će korisnik vidjeti nazivaju se ravnine za odsijecanje: lijevo, desno, gore, dolje, blizu i daleko.

Ravan koja se nalazi između bliže i dalje je ravan projekcije. U budućnosti ćemo ovu ravan postaviti na z=1, tj. odgovaraće najbližem. Ovdje sam razdvojio blisku i projekcijsku ravan da pokažem da to nije ista stvar. Projekciona ravan je namijenjena za posljednju transformaciju koordinata: transformaciju iz 3D prostora kamere u 2D prostor.

Zahvaljujući projekcijskoj ravni korisnik će vidjeti virtuelni svijet. Zapravo, ovaj avion je ono što će korisnik vidjeti. Projekciona ravan je direktno povezana sa konceptima kao što su glavni/pozadinski baferi, prozor programa i ekran korisnika. Svi ovi koncepti se mogu posmatrati kao pravougaona slika, koja je u memoriji računara predstavljena nizom brojeva.

Pretvaranje koordinata iz trodimenzionalnog svijeta u ravan projekcije najteže je od onih koje smo do sada proučavali.

Vidno polje / vidno polje (vidno polje)

Na gornjoj slici, ravnina projekcije (a samim tim i slika koju će korisnik vidjeti) ima širinu veću od svoje visine. Širina i visina ravni projekcije se postavljaju pomoću uglova. Postoje različiti nazivi za ove uglove: vidno polje ili vidno polje. Na engleskom - vidna polja.

Pogledi su definisani sa dva ugla. Nazovimo ih: fovx - područje horizontalnog pogleda, fovy - područje okomitog pogleda. Više o oblastima pogleda: ispod.

Z-bafer / w-bafer / dubinski bafer (z-bafer / w-bafer / dubinski bafer)

Pogledajmo sliku koja prikazuje dva trokuta: na udaljenosti od 25 i 50 jedinica od kamere. Slika (a) prikazuje lokaciju trokuta u prostoru (pogled odozgo), a slika (b) prikazuje konačnu sliku:

Kao što možete pretpostaviti, sliku treba nacrtati počevši od najudaljenijih elemenata i završavajući s najbližima. Očigledno rješenje: izračunajte udaljenost od početka (od kamere) do svakog objekta, a zatim uporedite. Kompjuterska grafika koristi malo napredniji mehanizam. Ovaj mehanizam ima nekoliko imena: z-bafer, w-bafer, dubinski bafer. Veličina z-bafera u smislu broja elemenata je ista kao i veličina pozadinskog i glavnog bafera. Z-komponenta objekta najbližeg kameri se unosi u z-bafer. U ovom primjeru, gdje se plavi trokut preklapa sa zelenim, z-koordinate plavog će biti baferovane u baferu dubine. Više ćemo govoriti o z-baferima u posebnom tutorijalu.

Ortografska / paralelna projekcija (pravopisna / paralelna projekcija)

Operacija u kojoj dolazi do smanjenja dimenzije prostora (postojao je trodimenzionalni prostor, postao je dvodimenzionalan) naziva se projekcija. Prije svega, zanima nas perspektivna projekcija, ali prvo ćemo se upoznati sa paralelnom (paralelnom ili ortografskom projekcijom).

Za izračunavanje paralelne projekcije dovoljno je odbaciti dodatnu koordinatu. Ako imamo tačku u prostoru [ 3 3 3 ], onda će se sa paralelnom projekcijom na ravan z=1 ona projektovati u tačku .

Projekcija perspektive na ravan projekcije

U ovoj vrsti projekcije, sve linije se konvergiraju u jednoj tački. Ovako funkcioniše naša vizija. A upravo se uz pomoć perspektivne projekcije modelira "izgled" u svim igrama.


Uporedite ovaj crtež sa crtežom koji prikazuje homogene koordinate iz prethodne lekcije. Da biste prešli iz trodimenzionalnog prostora u dvodimenzionalni prostor, potrebno je prve dvije komponente vektora podijeliti trećom: [ x/z y/z z/z ] = [ x/z y/z 1 ].

Kao što sam gore napisao, ravan projekcije može se nalaziti bilo gdje između bližeg i daljeg. Ravan projekcije ćemo uvijek postaviti na z=1, ali u ovom vodiču ćemo pogledati druge opcije. Pogledajmo sliku:


Označimo udaljenost do ravni projekcije od početka sa d. Razmotrićemo dva slučaja: d=1 i d=5. Važna stvar: treća komponenta svih vektora nakon projekcije mora biti jednaka d - sve tačke se nalaze u istoj ravni z=d. Ovo se može postići množenjem svih vektorskih komponenti sa d: [ xd/z yd/z zd/z]. Sa d=1, dobijamo: [ x/z y/z 1 ], ova formula je korištena za transformaciju homogenih koordinata.

Sada, ako pomerimo ravan projekcije u tačku z=5 (odnosno d=5), dobijamo: [ xd/z yd/z zd/z ] = [ 5x/z 5y/z 5 ]. Posljednja formula projektuje sve vektore prostora u jednu ravan, gdje je d=5.
Imamo mali problem ovde. Prethodna formula radi sa 3D vektorima. Ali složili smo se da koristimo četvorodimenzionalne vektore. Četvrta komponenta u ovom slučaju može se jednostavno odbaciti. Ali to nećemo učiniti, jer njegova upotreba daje neke specifične karakteristike, o kojima ćemo govoriti kasnije.

Potrebno je pronaći zajednički djelitelj treće i četvrte komponente, pri dijeljenju kojim vrijednost d ostaje u trećoj komponenti, a jedan u četvrtoj. Ovaj djelitelj je d/z. Sada od uobičajenog vektora [ x y z 1 ] trebamo dobiti vektor spreman za projekciju (podjelu) [ x y z z/d]. Ovo se radi pomoću matrice transformacije (provjerite rezultat množenjem bilo kojeg vektora sa ovom matricom):


Posljednja transformacija još nije projekcija. Ovdje jednostavno dovodimo sve vektore u oblik koji nam je potreban. Podsjećam da ćemo ravan projekcije postaviti na d=1, što znači da će vektori izgledati ovako: [ x y z z ].

Matrica transformacije perspektive

Pogledat ćemo matricu transformacije perspektive koja se koristi u DirectX-u:

Sada znamo čemu služi element _34. Također znamo da elementi _11 i _22 skaliraju sliku horizontalno i vertikalno. Hajde da vidimo šta se tačno krije iza naziva xScale i yScale.

Ove varijable zavise od oblasti prikaza o kojima smo gore govorili. Povećanjem ili smanjenjem ovih uglova, možete skalirati (skalirati ili zumirati) sliku - promijeniti veličinu i omjer ravnine projekcije. Mehanizam zumiranja nejasno podsjeća na zum u kamerama / kamerama - princip je vrlo sličan. Uzmite u obzir cifru:


Ugao fov dijelimo na dva dijela i uzimamo u obzir samo jednu polovinu. Ono što vidimo ovdje: povećanjem ugla fov / 2 (i, shodno tome, ugla fov), povećavamo sin ugla i smanjujemo cos. To dovodi do povećanja ravni projekcije i, shodno tome, do smanjenja projektiranih objekata. Idealan ugao za nas bi bio fov/2 = P/4. Podsjećamo, ugao u P/4 radijanima je 45 stepeni. U ovom slučaju, fov će biti jednak 90 stepeni. Zašto je ugao od 45 stepeni dobar za nas? U ovom slučaju nema skaliranja, već cos(P/4)/sin(P/4)=1.

Sada možemo lako skalirati sliku okomito (horizontalno) koristeći sinus i kosinus polovice površine prikaza (kotangentna funkcija u C++ se zove cot):

ySkala = cos(fovY/2)/sin(fovY/2) = krevetić(fovY/2)
DirectX koristi samo vertikalno područje prikaza (fovY), a horizontalno skaliranje ovisi o području okomitog prikaza i omjeru.

Podsjećam da je prozor u našim programima veličine 500x500. Omjer širine i visine: 1 prema 1. Prema tome, varijable će biti jednake: xScale=1, yScale=1.

Standardni omjer monitor/TV: 4:3. Ovaj odnos odgovara rezolucijama ekrana: 640x480, 800x600, 1600x1200. Nećemo još dodirivati ​​način rada preko cijelog ekrana, ali možemo promijeniti veličinu prozora programa. Možete promijeniti veličinu prozora (u sadašnjim parametrima), na primjer, na 640X480. Ali da se sve ne rasteže (kvadrati će izgledati kao pravokutnici), ne zaboravite promijeniti odgovarajuće varijable u matrici projekcije.

Skoro sam zaboravio, forumulu za xScale u DirectX-u:

xScale = yScale / omjer
Omjeri stranica su jednostavno postavljeni: 1/1, 4/3, 16/9 - to su standardni.

Ostaje da saznamo svrhu elemenata _33, _34 matrice transformacije perspektive. zf je z-koordinata daleke ravni (od daleko - daleko), a zn je z-koordinata bliske ravni (od blizu - blizu). Imajte na umu da element _43 = _33 * -zn.

Najlakši način da shvatite šta tačno ove formule rade je kroz primjere. Pomnožite standardni vektor [ x y z w ] sa matricom prikazanom iznad. Preporučujem da to učinite sa listom papira i olovkom (nadam se da se sjećate kako množite dvije matrice). Vektorske komponente će poprimiti sljedeći oblik.

1. = x*xScale
2. = y*yScale
3. = z*(zf/(zf-zn)) + w*(-(zn*zf)/(zf-zn)) = (zf/(zf-zn))*(z - w*zn)
4. = (w*z)/d
Napravimo projekcijsku transformaciju (sve elemente dijelimo na 4. komponentu, dok pretpostavljamo da su d=1 i w=1):

1. = (d*x*xScale)/(w*z) = (x*xScale)/z
2. = (d*y*yScale)/(w*z) = (y*xScale)/z
3. = (zf/(zf-zn))*(z - w*zn)*(w*d/z) = (zf/(zf-zn))*(1 - zn/z)
4. = 1
Kao rezultat, dobili smo vektor oblika:

[ x/(z*xScale) y/(z*yScale) (zf/(zf-zn))*(1-zn/z) 1 ]
Sada, ako navedete određene vrijednosti za zf i zn, naći ćete sljedeće (za pozitivne vrijednosti): ako se vektor nalazi prije bliske ravnine, tada će z-komponenta nakon transformacije biti manja od nule, ako vektor se nalazi iza daleke ravni, tada će z-komponenta biti veće jedinice.

Nema razlike gdje se tačno nalaze bliža i dalja ravnina: zn=1, zf=10 ili zn=10, i zf=100 (ili bilo koje druge vrijednosti) - nakon transformacije, vidljivo područje će se nalaziti u intervalu od nula do jedan, uključujući.

Tome su namijenjene formule u elementima _33, _34 projekcijske matrice - da projiciraju udaljenost od bliže do dalje ravni u segment . Provjerite tako što ćete izračunati vrijednosti nekoliko vektora za određene vrijednosti zn,zf (da, na komadu papira!!!).