Biograafiad Omadused Analüüs

Kesksed (perspektiivsed) projektsioonid. Graafika API perspektiivmaatriksid ehk kurat peitub detailides

Eelmises osas pakutud perspektiivprojektsiooni tüübid ei olnud informatiivsed, kuna kõigil juhtudel oli igast projektsioonikeskusest näha ainult kuubi üks tahk. Selleks, et vaatleja tajuks objekti kolmemõõtmelist kuju ainult ühe vaate põhjal, on vajalik, et selle objekti mitu tahku oleksid nähtavad. Lihtsate objektide (nt kuubik) puhul peab olema nähtav vähemalt kolm tahku. Fikseeritud keskpunktiga ja vaatesuunaga risti oleva projektsioonitasandiga ühepunktilisest perspektiivprojektsioonist saab mitmetahulise vaate, kui objekt on eelnevalt tõlgitud ja/või pööratud. Seejärel saadakse realistlik vaade, välja arvatud juhul, kui projektsioonikeskus on objektile liiga lähedal.

Riis. 3-31 kolmepunktiline vaatenurk, (a) originaalkuubik; (b) perspektiivprojektsioon lennukis; c) moonutatud kuup.

Alustuseks kaaluge objekti lihtsat teisaldamist, millele järgneb ühe punkti projektsioon tasapinnale ja projektsioonikeskus punktis . Nõutav teisendus on kirjutatud kujul

, (3-59)

Riis. 3-32 Ühepunktiline perspektiivprojektsioon koos tõlkega , suundades.

Võrrand (3-59) koos joonisega fig. 3-32 näitab, et ülekanne suundades ja avaneb täiendavad näod objektiks. Lihtsa kuubitaolise objekti kolme tahu paljastamiseks on vaja tõlkida mõlemas suunas. Joonisel fig. 3-32 näitab translatsiooni tulemusi piki sirgjoont, mille keskpunkt on kuubi alguspunkti suhtes ja ühe punkti projektsioon tasapinnale. Pange tähele, et esikülg on näidatud selle tegelikus suuruses ja kujus.

Võrrand (3-59) näitab ka seda, et translatsioon piki telge, s.o. projektsiooni keskpunkti poole või sellest eemale toob kaasa selge skaala muutumise (elemendi tõttu). See efekt on kooskõlas füüsilise reaalsusega, kuna vaatlejast kaugemal asuvad objektid tunduvad väiksemad. Pange tähele, et kui projektsioonikeskus läheneb lõpmatusele, kaob skaleerimise nähtus. See efekt on skemaatiliselt näidatud joonisel fig. 3-33. Nagu sellel joonisel näidatud, võib objekt olla projektsioonikeskmest mõlemal pool. Kui objekt ja projektsioonitasand asuvad keskpunkti samal küljel, siis, nagu on näidatud joonisel fig. 3-33, saadakse sirge kujutis. Kui objekt ja projektsioonitasand asuvad kõrvuti erinevad küljed keskelt eemal, on pilt tagurpidi.

Riis. 3-33 Skaleerimise mõju piki telge liikudes ühepunktilise perspektiivprojektsiooni korral.

Joonisel fig. 3-34 näitab objekti liigutamise tulemusi kõigis kolmes suunas. Siin liigub kuup piki kolmemõõtmelist sirgjoont punktist kuni . Suuruse suurenemine on märgatav ja kõikidel vaadetel on tegelik kuju märgatav, kuid mitte esikülje suurus.

Neid ideid selgitatakse üksikasjalikumalt näites.

Näide 3-22 Ühepunktiline perspektiivprojektsioon koos ülekandega

Vaatleme lähtepunkti suhtes tsentreeritud ühikkuupi järgmiste koordinaatvektoritega

.

Liigutame kuupi 5 ühiku võrra suundades ja koostame perspektiivprojektsiooni tasapinnale, mille projektsioonikeskus on .

Võrrand (3-59) annab üldise teisendusmaatriksi

.

Riis. 3-34 Ühepunktiline perspektiivprojektsioon koos tõlgetega , , suundades.

Teisendatud koordinaadid

.

Ülemine parem objekt joonisel fig. 3-32 kujutab seda tulemust.

Kui algset objekti nihutati 5 ühiku võrra suundades , ja ühepunktiline perspektiivprojektsioon ehitati tasapinnale, mille projektsiooni keskpunkt on , siis punktist (3-59) järeldub, et üldine teisendusmaatriks on kirjutatud nagu

.

Pange tähele üldist skaleerimist, mille annab teisendusmaatriksi alumises paremas elemendis väärtus 0,75.

Teisendatud koordinaadid on

.

Tulemus on näidatud ülemise parempoolse objektina joonisel fig. 3-34.

Mitmed servad on samuti nähtavad, kui kasutate objekti pööramist. Üks pööramine avab objekti vähemalt kaks külge, samas kui kaks või enam pööret ümber erinevate telgede avavad vähemalt kolm külge.

Teisendusmaatriks ümber telje nurga võrra pööramiseks ja sellele järgnev ühepunktiline perspektiivprojektsioon tasapinnale, mille projektsioonikese on :

. (3-60)

Samamoodi on teisendusmaatriks ümber telje nurga võrra pööramiseks ja sellele järgnev ühepunktiline perspektiivprojektsioon tasapinnale, mille projektsiooni keskpunkt on punktis:

. (3-61)

Mõlemas võrrandis (3-60) ja (3-61) on teisendusmaatriksi neljandas veerus kaks perspektiivi teisenduse (perspektiivi) elementi nullist erinevad. Seega on üks pööre ümber peatelje, mis on risti teljega, millel asub projektsiooni keskpunkt, võrdne kahepunktilise perspektiivi teisendusega. Pöörates ümber telje, millel asub projektsioonikese, sellist efekti ei ole. Pange tähele, et ühe pöörde korral jääb pöörlemistelje perspektiivelement muutumatuks, näiteks võrrandites (3-60) ja (3-61) on elemendid ja vastavalt võrdsed nulliga.

IN üldine juhtumümber peatelje pööramine ei näita piisava kolmemõõtmelise esituse jaoks vajalike tahkude arvu – vähemalt kolm. Selleks tuleb see kombineerida liikumisega piki telge. Seda illustreerib järgmine näide.

Näide 3-23 Kahepunktiline perspektiivprojektsioon ühe peamise pööramise abil

Mõelge projektsioonile tasapinnale, mille keskpunkt on joonisel fig. 3-35a, pööratud ümber telje nurga võrra, et avada vasak pool, ja liigutatud ühikutega mööda, et avada ülemine pool.

Kasutades võrrandit (3-38) koos , võrrandit (3-47) koos ja võrrandit (3-14) koos , saame

.

Teisendatud koordinaadid on

.

Tulemus on näidatud joonisel fig. 3-35b. Moonutused ilmnevad seetõttu, et projektsiooni keskpunkt asub kuubile liiga lähedal. Pange tähele paralleelsete telgedega ja sirgjoonte lähenemist teljel asuvatele kadumispunktidele. Need kadumispunktid on määratletud jaotise näidetes 3-25. 3-17.

Riis. 3-35 Kahepunktiline perspektiivprojektsioon pöördega ümber ühe telje.

Samamoodi teostatakse kolmepunktiline perspektiivteisendus, pöörates ümber kahe või enama põhitelje ja seejärel ühepunktilise perspektiivi teisenduse. Näiteks ümber telje pööramisel, seejärel ümber telje pööramisel ja perspektiivprojektsioonil tasapinnale, mille projektsiooni keskpunkt on punktis, on järgmine teisendusmaatriks

.

Tulemus on näidatud joonisel fig. 3-36.

Riis. 3-36 Kolmepunktiline perspektiivprojektsioon pöörlemisega ümber kahe telje.

Nendest tulemustest saab selgeks, et ühe-, kahe- või kolmepunktilise perspektiivi teisenduse saab konstrueerida, kasutades pööramisi ja translatsioone ümber ja piki põhitelge, millele järgneb ühepunktiline perspektiivteisendus, mille projektsioonikeskus asub ühel põhitelgedest. Need tulemused kehtivad ka ruumis suvalise telje ümber pöörlemisel. Seega, kui seda kasutatakse graafikasüsteem fikseeritud projektsioonikeskme ja manipuleeritava objektiga paradigma, on vaja vaid tagada ühepunktilise perspektiivprojektsiooni konstrueerimine tasapinnal, mille projektsioonikeskus on teljel .

Punktide jälgimise, kaamera kalibreerimise ja kolmemõõtmeliste objektide rekonstrueerimise meetodite üksikasjalikuks kirjeldamiseks on vaja tutvustada perspektiivset disainimudelit ja kirjeldada selle teisenduse geomeetrilisi omadusi. Mitme perspektiivse projektsioonikujutise punktidel on üksteisega erilised suhted, mida kirjeldab epipolaarne geomeetria. Nende suhete mudeleid tuleks üksikasjalikult käsitleda, sest. peaaegu kõik 3D-rekonstrueerimise meetodid nõuavad vastavate mudelite hindamist ja tuginevad nende omadustele.

Eraldi tuleb ära märkida eeldus, et kõik originaalpildid jäädvustavad sama stseeni, s.t. iga pilt on stseeni vaade konkreetsest kaamerast. Seetõttu on kirjeldamise hõlbustamiseks kasutusele võetud vaate mõiste kui pilt koos sellega seotud kaameramudeliga, millest see on saadud.

perspektiivprojektsioon

Perspektiiviprojektsiooni mudel vastab ideaalsele camera obscurale. See mudel vastab üsna täpselt enamiku kaasaegsete kaamerate ja videokaamerate pildistamisprotsessile. Kaasaegse optika piirangute tõttu erineb tegelik protsess siiski mõnevõrra camera obscura mudelist. Erinevusi tegeliku protsessi ja mudeli vahel nimetatakse moonutusteks ja neid modelleeritakse eraldi.

Lihtsaima camera obscura mudel on mugav, kuna seda kirjeldab täielikult projektsioonikeskus ja pilditasandi asukoht. Seetõttu võib stseeni mis tahes punkti projektsiooni pildil leida kui projektsiooni keskpunkti ja stseeni punkti pilditasandiga ühendava kiire ristumiskohta.

Lihtsaim perspektiivprojektsioonimudel

Vaatleme lihtsaimat juhust, kui kaamera projektsioonikese (fookus) on paigutatud koordinaatsüsteemi alguspunkti ja pilditasand langeb kokku Z=1 tasapinnaga. Olgu (X,Y,Z) punkti koordinaadid 3-mõõtmelises ruumis ja (x,y) selle punkti projektsioon kujutisele I. Perspektiiviprojektsiooni kirjeldatakse sel juhul järgmiste võrranditega:

Maatriksi kujul, kasutades homogeenseid koordinaate, kirjutatakse need võrrandid ümber järgmiselt:

(2.2)

Tasapinda, mis asub projektsiooni keskpunktist 1 kaugusel ja on risti optilise teljega, nimetatakse ideaalseks kujutise tasapinnaks. Optiline telg lõikub ideaalse kujutise tasapinnaga punktis c, mida nimetatakse põhipunktiks. Perspektiiviprojektsiooni kõige lihtsama juhtumi illustratsioon on näidatud joonisel fig. 1.

Sisekaamera kalibreerimine

Lihtsaim perspektiivprojektsiooni juhtum ei vasta peaaegu alati tegelikule kaamerale. Kaugus projektsiooni keskpunktist kujutise tasapinnani, s.o. fookuskaugus, mida tähistatakse f-ga, ei ole tavaliselt võrdne 1-ga. Samuti ei pruugi kujutise tasapinna punkti koordinaadid absoluutsete koordinaatidega kokku langeda. Digikaamera kasutamisel määrab pildil oleva punkti koordinaatide ja ideaalsel tasapinnal oleva punkti absoluutkoordinaatide vahelise seose maatriksi pikslite kuju ja suurus.

Tähistame digikaamera maatriksi piksli mõõtmed p x , p y , piksli kaldenurka α ja põhipunkti , joonis 2. Seejärel määratakse ideaalse tasapinna punktile (x R , y R) vastava pildi punkti (x, y) koordinaadid avaldisega:

(2.3)

Kui f x ,f y tähistab fookuskaugust f mõõdetuna pikslite laiustes ja kõrgustes ning tan(α)*f/p y kui s, siis teisendatakse valem 2.3 järgmiseks:

(2.4)

K-maatriksit nimetatakse sisemise kaamera kalibreerimismaatriksiks. Enamasti on päris digikaamerate puhul pikslite kaldenurk lähedane otsesele, s.t. parameeter s=0 ning piksli laius ja kõrgus on võrdsed. Põhipunkt asub tavaliselt pildi keskel. Seetõttu saab maatriksi K kirjutada järgmiselt:

(2.5)

Seda eeldust maatriksi K kuju kohta kasutatakse laialdaselt kaamera sisemise kalibreerimise määramise algoritmide lihtsustamiseks, samuti sünteetilise kujutise modelleerimisel, mis on vajalik 3D-rekonstrueerimismeetodite kvaliteedi ja tõhususe hindamiseks.

Välise kaamera kalibreerimine

Olgu M stseenipunkt 3-mõõtmelises ruumis. Igasugune liikumine on ruumi eukleidiline teisendus, nii et homogeensetes koordinaatides väljendatakse seda järgmiselt:

(2.6)

kus R on pöörlemismaatriks, T= T on translatsioonivektor.

Kaamera liikumine stseeni suhtes on samaväärne stseeni punktide vastupidise liikumisega kaamera suhtes, seega on see võrdne:

(2.7)

kus R, T on pöördemaatriks ja kaamera liikumise vektor stseeni suhtes. Maatriksit C nimetatakse maatriksiks väline kalibreerimine kaamerad. Maatriksit C -1 nimetatakse maatriksiks kaamera liigutused. Seega tõlgib kaamera väline kalibreerimismaatriks stseenipunktide koordinaadid stseeni koordinaatsüsteemist kaameraga seotud koordinaatsüsteemi.

Täisperspektiiviprojektsioonimudel

Avaldistest 2.1, 2.4, 2.7 saab tuletada suvalise perspektiivprojektsiooni avaldise mis tahes kaamera jaoks, millel on suvaline orientatsioon ja asukoht ruumis:

Lühemal kujul, võttes arvesse eelmist tähistust, saab selle valemi kirjutada järgmiselt:

Maatriksit P nimetatakse kaamera projektsioonimaatriksiks.

Analoogiliselt üldise perspektiivi teisendusega vaatleme esmalt kõige lihtsamat perspektiivitasandi teisenduse juhtumit. Tasand p ühtib tasapinnaga Z=0, siis selle mis tahes punkti homogeensed kolmemõõtmelised koordinaadid M=. Iga projektsioonimaatriksiga P kaamera puhul kirjeldatakse tasandi perspektiivi teisendust 3*3 maatriksiga:


Kuna iga 3-mõõtmelise ruumi tasapinda saab teisendada tasapinnaks Z = 0 pöörlemise ja translatsiooni eukleidilise teisendusega, mis on samaväärne kaamera maatriksi P korrutamisega teisendusmaatriksiga L, siis suvalise tasandi perspektiivkuva ruumi kirjeldatakse lineaarse teisendusega maatriksiga mõõtmetega 3 * 3.

Nimetatakse ka perspektiivtasandi teisendust homograafia. Maatriksi kujul kirjutatakse perspektiivtasandi teisendus järgmiselt m = HM.

Kahe pildi geomeetria

Kõigile lähtepiltidele jäädvustatud stseeni peetakse liikumatuks, seega ei saa stseenipunktide projektsioonide suhteline asukoht erinevatel kaadritel suvaliselt muutuda. Punktprojektsioonide asukohale seatud piirangud sõltuvad ilmselgelt kaamerate parameetritest ja nende asendist üksteise suhtes. Seetõttu annab selliste piirangute mudelite määratlus teavet nende kaamerate suhtelise asukoha kohta, millest pilte saadi.

Perspektiivitasandi teisendus

Kui kahe kaamera keskpunktid langevad kokku, teisendatakse mõlema kaamera kujutise tasapinnal olevad punktid tasandi perspektiivi teisendusega üksteiseks. Sel juhul ei sõltu punktide teisenemine piltide vahel 3D-stseeni kujust, vaid ainult pilditasandite suhtelisest asukohast.

Kui kogu stseen või osa sellest on tasapind, siis saab selle erinevates vaadetes olevaid pilte, mille kaamerakeskmed ei lange kokku, homograafilise teisenduse abil üksteiseks teisendada. Olgu p vaadeldav tasand, H 1 homograafiline teisendus tasapinna p ja kujutise vahel ma 1, H 2 - homograafia teisendus tasapinna p ja kujutise vahel ma 2. Seejärel homograafia teisendus H 12 piltide vahel ma 1 Ja ma 2 saab väljastada järgmiselt:

H 12 ei sõltu tasandi p parameetritest ja seetõttu ei sõltu ruumi koordinaatsüsteemist

Enamik meetodeid 3D-punktide koordinaatide määramiseks nende projektsioonide põhjal ja meetodeid 3D-stseeni rekonstrueerimiseks põhinevad eeldusel, et kaamera keskpunkt liigub vaadete vahel. Seega, kui mitut tüüpi kaamerate keskpunktid langevad kokku, annavad need meetodid valesid tulemusi. Selliseid kaamerakonfiguratsioone tuleb tuvastada ja käsitleda erilisel viisil.

Kuna homograafiline teisendus on kirjutatud homogeensetes koordinaatides, on maatriks H defineeritud kuni mõõtkavani. Sellel on 8 vabadusastet ja parameetrid on 8 muutujaga. Iga teadaolev vastavate punktide paar m 1 Ja m2 vastavalt esimesel ja teisel pildil annab 2 lineaarvõrrandit maatriksi H elementidest. Seetõttu piisab 4 teadaolevast vastavate punktide paarist, et koostada lineaarvõrrandisüsteem 8 võrrandist 8 tundmatuga. Selle süsteemi kohaselt saab H homograafiat üheselt määrata, kui kolm punkti ei asu samal sirgel.

Põhiline maatriks

Vaatleme juhtumit, kui kahte tüüpi kaamerate keskpunktid ei lange kokku. Lase C1 Ja C2- kahe kaamera keskpunktid, M - stseeni kolmemõõtmeline punkt, m 1 Ja m2- punkti M projektsioonid vastavalt esimesel ja teisel pildil. Olgu P tasand, mis läbib punkti M ja kaamerate keskpunkte C1 Ja C2. Tasand П lõikub esimese ja teise kujutise tasapindadega, seda nähakse mööda sirgeid l 1 Ja l 2. Kuna kiired C 1 M Ja C 2 M asetsevad tasapinnas П, on ilmne, et punktid m 1 Ja m2 lamada sirgjoontel l 1 Ja l 2 vastavalt. On võimalik anda üldisem väide, et iga tasapinnal P asuva punkti M projektsioonid mõlemale kujutisele peavad asetsema sirgel. l 1 Ja l 2. Neid jooni nimetatakse epipolaarseteks joonteks. P-tasandit nimetatakse epipolaarseks tasapinnaks.

Sama stseeni kahte vaadet nimetatakse stereopaariks ja segmendiks C 1 C 2, mis ühendab kaamerate keskpunkte, nimetatakse stereopaari (baasline) baasiks või stereoaluseks. Iga epipolaarne tasapind läbib segmenti C 1 C 2. Lase C 1 C 2 lõikub punktides esimese ja teise kujutisega e 1 Ja e 2 vastavalt. punktid e 1 Ja e 2 nimetatakse epipolaarseteks punktideks või epipoolideks. Kõik epipolaarsed jooned lõikuvad punktides e 1 Ja e 2 vastavalt esimesel ja teisel pildil. Epipolaarsete tasandite kogum on kiir, mis lõikub piki stereobaasi C 1 C 2. Paljud epipolaarsed jooned mõlemal pildil tähistavad ka sirgjoonte kimpe, mis ristuvad punktis e 1 Ja e 2 .

punktid m 1 Ja m2 nimetatakse vastavateks, kui need on stseeni sama punkti projektsioonid. Epipolaarsed jooned l 1 Ja l 2 nimetatakse vastavateks, kui nad asuvad samal epipolaartasandil P. Kui epipolaarne tasand P läbib punkti m 1, siis epipolaarsed jooned l 1 Ja l 2 selles lebavaid nimetatakse punktile vastavaks m 1.

Vastavate punktide asukoha piirang m 1 Ja m2, mis tuleneb epipolaarsest geomeetriast, võib sõnastada järgmiselt: punkt m2 vastab m 1, peab asuma epipolaarsel joonel l 2 vastav m 1. Seda seisundit nimetatakse epipolaarseks piiranguks. Homogeensetes koordinaatides on tingimus, et punkt m asub joonel l kirjutatud kui l T m = 0. Epipolaarne joon läbib ka epipolaarset punkti. Punkte läbiva sirge võrrand m 1 Ja e 1 võib kirjutada järgmiselt:

l 1 ∼ x m 1,

Kus x on antisümmeetriline 3*3 maatriks, nii et x m 1- vektorprodukt m 1 Ja e 1.

Vastavate epipolaarsete joonte jaoks l 1 Ja l 2õige:

Kus P+- maatriksi P pseudoinversioon.

Maatriksit F nimetatakse põhimaatriksiks. See on lineaarne operaator, mis kaardistab iga punkti m 1 vastav epipolaarne joon l 2. Iga vastavate punktide paari kohta m 1 Ja m2õige

m T 2 Fm 1 =0

See on epipolaarse piirangu sõnastus põhimaatriksi mõistes.

Põhimaatriksil on 7 vabadusastet. Iga vastavate punktide paar m 1 Ja m2 määrab ühe lineaarvõrrandi maatriksi elementide kohta, nii et seda saab arvutada teadaoleva 7 paari vastavate punktide põhjal.

Epipolaarne piirang kehtib mis tahes vastavate punktide paari kohta, mis asuvad kahte tüüpi ideaalsel tasapinnal. Kui sisemised kalibreerimismaatriksid on teada K1 Ja K2 mõlemat tüüpi kaamerate puhul kirjutatakse ideaalsete tasandite vastavate punktide epipolaarne piirang järgmiselt:

Maatriksit E nimetatakse hädavajalik maatriks. Võib näidata, et olulise maatriksi on võimalik saada ka kaamerate suhtelistest asenditest.

Lase P 1 =(I|0) Ja P 2 =(R|-RT)- kaks projektsioonimaatriksit kalibreerimisega K = I. Seejärel kirjutatakse mõlema kambri projektsioonivõrrandid ideaalsel tasapinnal järgmiselt:

Leidke punktile vastav epipolaarne joon teisest vaatest m" 1 esimesel. Selleks piisab, kui projitseerida teisele vaatele kaks kiirel asuvat punkti (C 1, m" 1) teisele vaatele, näiteks esimese kaamera keskele (0,0,0,1) T ja punkt lõpmatuse tasandil (x" 1 ,y" 1 ,z" 1 ,0) T. Nende punktide projektsioonid on vastavalt -RT ja R(x"1,y"1,z"1,0) T. Epipolaarse joone võrrand l 2 mõlema punkti läbimine on antud vektorkorrutisena:

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

Maatriksi kujul vektorkorrutis T×(x"1,y"1,z"1)T saab kirjutada maatriksi S abil:

Seejärel kirjutatakse ideaalse tasapinna punktide epipolaarne piirang järgmiselt:

Kaamerate suhteliste positsioonide arvutamiseks kasutatakse olulise maatriksi väljendust kahe kaamera väliste kalibreerimisparameetrite kaudu.

Kolme või enama pildi geomeetrilised omadused

Lase C1,C2 Ja C3- sama kolmemõõtmelise stseeni kolme vaate keskpunktid. Sel juhul kehtestatakse mis tahes vaatepaari vastavatele punktidele epipolaarsed piirangud. Kui on teada kahe punkti projektsioonid m 1 Ja m2 esimesel ja teisel vaatel saab projektsiooni asukoha kolmandal pildil leida kahe punktidele vastava epipolaarse vaate ristumiskohana m 1 Ja m2.

Kahe teadaoleva prognoosi kohaselt m 1 Ja m2 Punkti M asukoha määramiseks ruumis saab kasutada kahte teadaoleva kalibreerimisega pilti. Seega, kui on teada kolmanda kujutise kalibreerimine, saab punkti M projektsiooni kolmandale vaatele määrata lihtsa projektsiooniga.

Rohkem kui kahe pildi vastavate punktide asukohale seatud piiranguid saab kirjutada ka lineaarselt. Kolme vaate puhul on need piirangud kirjutatud trifokaalse tensori kujul, nelja vaate puhul - kvadrifokaalse tensori kujul. Nende piirangute arvutamine on aga samaväärne kõigi kolme või nelja tüüpi gabariidi arvutamisega projektiivses ruumis. Käesolevas töös seda tüüpi piiranguid ei kasutata, mistõttu neid lähemalt ei käsitleta.

Aastate tööd. Vološin Maximilian. POEEDI VÄÄRSUS. 1. Redigeerige luuletust nagu ülemere saadetise teksti: kuivus, selgus, surve – iga sõna on valvel.

Kõvale ja kitsale kivile raiumiseks täht tähe järel: Mida ihnemad on sõnad, seda intensiivsem on nende jõud. Mõtte tahtlik laeng võrdub vaigistatud stroofidega.

Kustutage sõnastikust sõnad "Ilu", "Inspiratsioon" - Riimide keskmine žargoon Luuletajale - mõistmine: Tõde, konstruktsioon, plaan, samaväärsus, kokkuvõtlikkus ja täpsus. Kaines, pingelises töös - luuletaja inspiratsioon ja au: kurttummas aines teravdage transtsendentaalset valvsust. Voloshin M.A. Raamatukogu: Oryoli piirkondlik teaduslik universaalne avalik raamatukogu. I.A. Bunin. - M.,; Valitud teosed: 2 köites.

M., ; Punane suits: jutud. - M.,; Gladõšev luurest: lood. - M.,; Ešelon; Paratamatus: romaanid. Ta tegi palju tõlkeid mari ja udmurdi luuletajaid. Aeg-ajalt proovis ta kätt ka proosas. Op. Maximilian Aleksandrovitš Vološin () on 20. sajandi esimese kolmandiku üks suurimaid luuletajaid. See on andekas kunstnik, mitmetahuline lüürik, kes on jõudnud sümbolistlikest, esoteerilistest luuletustest tsiviilajakirjandusliku ja teadusfilosoofilise luuleni, antroposoofiliste eelistuste kaudu - "Jumala linna ideaalini".

Kavandatav väljaanne võimaldab lugejal tutvuda mitte ainult Vološini parimate poeetiliste teostega, vaid ka tema kõige huvitavamate esteetikateostega, memuaarproosa, ajakirjanduse ja kirjadega, mis on seotud dramaatiliste sündmustega riikide elus. Autor. Vološin Maximilian. Kõik autori luuletused. Töö. Luuletaja meisterlikkus. 2. Tähed. Looge valitud autorite ja luuletuste kogud!

Vestelge mõttekaaslastega! Kirjutage arvustusi, osalege luuleduellidel ja -võistlustel! Liituge parimatega! Aitäh Poembukiga liitumise eest! Teie e-posti aadressile on saadetud e-kiri konto juurdepääsuandmetega!

Peate sisse logima 24 tunni jooksul. Vastasel juhul konto kustutatakse! Registreeritud kasutajad saavad palju eeliseid: avaldage luulet – realiseerige oma talent! Looge valitud autorite ja luuletuste kogud! Vestelge mõttekaaslastega! Kirjutage arvustusi, osalege luuleduellidel ja -võistlustel!. Maximilian Vološin. Kirjeldus. Maximilian Aleksandrovitš Vološin on 20. sajandi esimese kolmandiku üks suurimaid luuletajaid.

See on andekas kunstnik, mitmetahuline lüürik, kes on jõudnud sümbolistlikest, esoteerilistest luuletustest tsiviilajakirjandusliku ja teadusfilosoofilise luuleni, antroposoofiliste eelsoodumuste kaudu – "Jumala linna ideaalini". Kavandatav väljaanne võimaldab lugejal tutvuda mitte ainult Vološini parimate poeetiliste teostega, vaid ka tema kõige huvitavamate esteetikateostega, memuaarproosa, ajakirjanduse ja draamaga seotud kirjadega.

Valitud teosed ja kirjad. M. A. Vološin. Hind. hõõruda. Maximilian Aleksandrovitš Vološin on 20. sajandi esimese kolmandiku üks suurimaid luuletajaid. See on andekas kunstnik, mitmetahuline lüürik, kes on jõudnud sümbolistlikest, esoteerilistest luuletustest tsiviilajakirjandusliku ja teadusfilosoofilise luuleni, antroposoofiliste eelsoodumuste kaudu – "Jumala linna ideaalini".

Voloshin M.A., Luuletaja vaprus: valitud teosed ja kirjad. sari: Uus Vene klassika raamatukogu: kohustuslik eksemplar Paraad, g., lk., Raamatu kirjeldus. Maximilian Aleksandrovitš Vološin () on 20. sajandi esimese kolmandiku üks suurimaid luuletajaid. See on andekas kunstnik, mitmetahuline lüürik, kes on jõudnud sümbolistlikest, esoteerilistest luuletustest tsiviilajakirjandusliku ja teadusfilosoofilise luuleni, antroposoofiliste eelistuste kaudu - "Jumala linna ideaalini".

kategooriad Postituse navigeerimine

Täna vaatame lähemalt virtuaalkaamera seadet. Alustame pildist.

Joonisel näeme kaamera koordinaatruumi. Kaamera suund ("välimus") langeb alati kokku z-telje positiivse suunaga ja kaamera ise asub lähtepunktis.

Joonisel kujutatud püramiidi siseruum on see osa virtuaalsest maailmast, mida kasutaja näeb.

Pöörake tähelepanu kolmele tasapinnale. Esimene asub piki z-telge 1 kaugusel. See on lähilennuk. Seda, mis on enne seda, ei näe mängija kunagi. Sel juhul on z väärtus võrdne ühega, kuid üldiselt võib see olla ükskõik milline. Just lähitasandiga seostatakse üks graafika kuvamise defekt. See defekt avaldub eelkõige laskurites (fotoaparaadi suure vabaduse tõttu). Kui jõuate objektile liiga lähedale, võite sattuda "sisse". Viimastest mängudest tuli see defekt eriti selgelt välja Left 4 dead puhul: kui mängijale kuhjus zombide hulk, oli väga sageli võimalik vaadata teiste tegelaste sisse.

Tasapinda, mis asub piki z-telge 100 ühiku kaugusel, nimetatakse kaugtasandiks. Jällegi võib väärtus olla meelevaldne. Kasutaja ei näe kunagi sellest tasapinnast kaugemal asuvaid objekte.

Kuut tasandit, mis määravad kasutajale kuvatava ruumi, nimetatakse lõiketasanditeks: vasak, parem, ülemine, alumine, lähedal ja kaugel.

Tasapind, mis asub lähi- ja kaugema vahel, on projektsioonitasand. Tulevikus asetame selle tasapinna z=1, st. see ühtib lähimaga. Siin olen eraldanud lähi- ja projektsioonitasandid, et näidata, et need pole samad. Projektsioonitasand on mõeldud viimaseks koordinaatide teisendamiseks: teisendamiseks kaamera 3D-ruumist 2D-ruumi.

Tänu projektsioonitasandile näeb kasutaja virtuaalset maailma. Tegelikult on see tasapind see, mida kasutaja näeb. Projektsioonitasand on otseselt seotud selliste mõistetega nagu põhi/taustapuhvrid, programmi aken ja kasutaja ekraan. Kõiki neid mõisteid võib käsitleda ristkülikukujulise pildina, mis on arvutimälus kujutatud arvude massiiviga.

Koordinaatide teisendamine kolmemõõtmelisest maailmast projektsioonitasandiks on seni uuritutest kõige keerulisem.

Vaateväli / vaateväli (vaateväli)

Ülaltoodud joonisel on projektsioonitasandi (ja seega ka pildi, mida kasutaja näeb) laius suurem kui selle kõrgus. Projektsioonitasandi laius ja kõrgus määratakse nurkade abil. Nendel nurkadel on erinevad nimetused: vaateväli või vaateväli. Inglise keeles - vaateväljad.

Vaatealad on määratletud kahe nurga all. Nimetagem neid: fovx - horisontaalne vaateala, fovy - vertikaalne vaateala. Lisateavet vaatealade kohta: allpool.

Z-puhver / w-puhver / sügavuspuhver (z-puhver / w-puhver / sügavuse puhver)

Vaatame pilti, millel on kaks kolmnurka: 25 ja 50 ühiku kaugusel kaamerast. Joonis (a) näitab kolmnurkade asukohta ruumis (pealtvaade) ja joonis (b) näitab lõplikku pilti:

Nagu arvata võis, tuleb pilt joonistada alustades kõige kaugematest elementidest ja lõpetades lähimate elementidega. Ilmselge lahendus: arvutage kaugus lähtepunktist (kaamerast) iga objektini ja seejärel võrrelge. Arvutigraafika kasutab veidi arenenumat mehhanismi. Sellel mehhanismil on mitu nime: z-buffer, w-buffer, sügavuspuhver. Z-puhvri suurus elementide arvu järgi on sama, mis tausta ja põhipuhvrite suurus. Kaamerale lähima objekti z-komponent sisestatakse z-puhvrisse. Selles näites, kus sinine kolmnurk kattub rohelisega, puhverdatakse sinise z-koordinaadid sügavuspuhvris. Räägime z-puhvritest lähemalt eraldi õpetuses.

Ortograafiline / paralleelprojektsioon (ortograafiline / paralleelprojektsioon)

Operatsiooni, milles toimub ruumi mõõtme vähenemine (oli kolmemõõtmeline ruum, see muutus kahemõõtmeliseks), nimetatakse projektsiooniks. Eelkõige huvitab meid perspektiivprojektsioon, kuid esmalt tutvume paralleelse (paralleel- või ortograafilise projektsiooniga).

Paralleelprojektsiooni arvutamiseks piisab lisakoordinaadist loobumisest. Kui meil on punkt ruumis [ 3 3 3 ], siis paralleelprojektsiooniga tasapinnale z=1 projitseeritakse see punkti .

Perspektiivne projektsioon projektsioonitasandile

Seda tüüpi projektsioonis koonduvad kõik sirged ühte punkti. Nii töötab meie visioon. Ja just perspektiiviprojektsiooni abil modelleeritakse "välimust" kõikides mängudes.


Võrrelge seda joonist eelmise õppetunni homogeensete koordinaatide joonisega. Selleks, et liikuda kolmemõõtmelisest ruumist kahemõõtmelisse ruumi, tuleb vektorite kaks esimest komponenti jagada kolmandaga: [ x/z y/z z/z ] = [ x/z y/z 1 ].

Nagu ma eespool kirjutasin, võib projektsioonitasand asuda lähedal ja kaugel. Asetame projektsioonitasandi alati z=1, kuid selles õpetuses vaatleme teisi võimalusi. Vaatame pilti:


Tähistame kaugust projektsioonitasandist lähtepunktist kui d. Vaatleme kahte juhtumit: d=1 ja d=5. Oluline punkt: kõikide vektorite kolmas komponent pärast projektsiooni peab olema võrdne d-ga - kõik punktid asuvad samal tasapinnal z=d. Seda saab saavutada, korrutades kõik vektori komponendid d-ga: [ xd/z yd/z zd/z ]. Kui d=1, saame: [ x/z y/z 1 ], seda valemit kasutati homogeensete koordinaatide teisendamiseks.

Kui nüüd nihutada projektsioonitasand punkti z=5 (vastavalt d=5), saame: [ xd/z yd/z zd/z ] = [ 5x/z 5y/z 5 ]. Viimane valem projitseerib kõik ruumivektorid ühele tasapinnale, kus d=5.
Meil on siin väike probleem. Eelmine valem töötab 3D-vektoritega. Kuid me leppisime kokku, et kasutame neljamõõtmelisi vektoreid. Neljanda komponendi võib sel juhul lihtsalt ära visata. Kuid me ei tee seda, kuna selle kasutamine annab mõned spetsiifilised funktsioonid, mida arutame hiljem.

Kolmandale ja neljandale komponendile tuleb leida ühine jagaja, millega jagamisel jääb väärtus d kolmandasse ja üks neljandasse. See jagaja on d/z. Nüüd tuleb tavalisest vektorist [ x y z 1 ] saada projektsiooniks (jagamiseks) valmis vektor [ x y z z/d ]. Seda tehakse teisendusmaatriksi abil (kontrollige tulemust, korrutades mis tahes vektori selle maatriksiga):


Viimane teisendus ei ole veel projektsioon. Siin lihtsalt toome kõik vektorid soovitud kujundisse. Tuletan teile meelde, et asetame projektsioonitasandi d=1, mis tähendab, et vektorid näevad välja järgmised: [ x y z z ].

Perspektiivne teisendusmaatriks

Vaatame DirectX-is kasutatavat perspektiivi teisendusmaatriksit:

Nüüd teame, mille jaoks element _34 on mõeldud. Teame ka, et elemendid _11 ja _22 skaleerivad pilti horisontaalselt ja vertikaalselt. Vaatame, mis täpselt on peidus nimede xScale ja yScale taga.

Need muutujad sõltuvad vaatepiirkondadest, millest eespool rääkisime. Neid nurki suurendades või vähendades saate pilti skaleerida (skaala või suumida) – muuta projektsioonitasandi suurust ja kuvasuhet. Suumimehhanism meenutab ähmaselt kaamerate/kaamerate suumimist – põhimõte on väga sarnane. Mõelge joonisele:


Jagame nurga fov kaheks osaks ja arvestame ainult ühte poolt. Mida me siin näeme: suurendades nurka fov / 2 (ja vastavalt ka nurka fov), suurendame nurga pattu ja vähendame cos. See toob kaasa projektsioonitasandi suurenemise ja vastavalt projekteeritud objektide vähenemise. Meie jaoks oleks ideaalne nurk fov/2 = P/4. Tuletame meelde, et nurk P/4 radiaanides on 45 kraadi. Sel juhul võrdub fov 90 kraadiga. Miks on 45-kraadine nurk meile hea? Sel juhul skaleerimist ei toimu, vaid cos(P/4)/sin(P/4)=1.

Nüüd saame pilti hõlpsalt vertikaalselt (horisontaalselt) skaleerida, kasutades poole vaateala siinust ja koosinust (C++ kotangensi funktsiooni nimetatakse cot):

yScale = cos(fovY/2)/sin(fovY/2) = cot(fovY/2)
DirectX kasutab ainult vertikaalset vaateala (fovY) ja horisontaalne skaleerimine sõltub vertikaalvaate alast ja kuvasuhtest.

Tuletan meelde, et meie programmide akna suurus on 500x500. Kuvasuhe: 1 kuni 1. Seetõttu on muutujad võrdsed: xScale=1, yScale=1.

Standardne monitori/teleri kuvasuhe: 4:3. See suhe vastab ekraani eraldusvõimetele: 640x480, 800x600, 1600x1200. Täisekraani režiimi me veel ei puuduta, kuid saame programmi akna suurust muuta. Saate muuta akna suurust (praegustes parameetrites), näiteks 640x480. Kuid selleks, et kõik ei veniks (ruudud näevad välja nagu ristkülikud), ärge unustage projektsioonimaatriksis vastavaid muutujaid muuta.

Ma peaaegu unustasin, et DirectX-i xScale foorumi:

xScale = ySkaala / kuvasuhe
Kuvasuhted on seatud lihtsalt: 1/1, 4/3, 16/9 - need on standardsed.

Jääb välja selgitada perspektiivteisendusmaatriksi elementide _33, _34 otstarve. zf on kaugtasandi z-koordinaat (kaugelt - kaugelt) ja zn on lähitasandi z-koordinaat (lähedalt - lähedalt). Pange tähele, et element _43 = _33 * -zn.

Kõige lihtsam viis aru saada, mida need valemid täpselt teevad, on näidete kaudu. Korrutage standardvektor [ x y z w ] ülaltoodud maatriksiga. Soovitan seda teha paberilehe ja pliiatsiga (loodan, et mäletate, kuidas kahte maatriksit korrutada). Vektori komponendid on järgmisel kujul.

1. = x*xSkaala
2. = y*yScale
3. = z*(zf/(zf-zn)) + w*(-(zn*zf)/(zf-zn)) = (zf/(zf-zn))*(z - w*zn)
4. = (w*z)/d
Teeme projektsiooni teisenduse (jagame kõik elemendid 4. komponendiks, samas eeldame, et d=1 ja w=1):

1. = (d*x*xskaala)/(w*z) = (x*xskaala)/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
Selle tulemusena saime vormi vektori:

[x/(z*xScale) y/(z*yScale) (zf/(zf-zn))*(1-zn/z) 1]
Nüüd, kui määrate zf ja zn jaoks konkreetsed väärtused, leiate (positiivsete väärtuste jaoks) järgmise: kui vektor asub enne lähitasandit, on z-komponent pärast teisendust väiksem kui null, kui vektor asub kaugtasandi taga, siis on z-komponent suuremad ühikud.

Pole vahet, kus täpselt lähi- ja kaugetasand asuvad: zn=1, zf=10 või zn=10 ja zf=100 (või mis tahes muud väärtused) - pärast teisendust asub nähtav ala intervallis. nullist üheni, kaasa arvatud.

Selleks on ette nähtud projektsioonimaatriksi elementide _33, _34 valemid - projitseerida lõigu kaugus lähimast kaugemas tasapinnas . Kontrollige seda, arvutades zn, zf konkreetsete väärtuste jaoks mitme vektori väärtused (jah, paberil!!!).