Kas, bangos, sustabdė tave,
Kas apribojo tavo galingą bėgimą,
Kas yra tyliame ir tankiame tvenkinyje
Ar maištaujantis srautas apsisuko?
A. S. Puškinas
Pavadinime keliamas klausimas gali sukelti nuostabą: ar ne dėl to vandens paviršius vadinamas lygiu, nes jis linkęs užimti griežtą horizontali padėtis; kalbėdami apie lygį, jie turi omenyje kažkokią plokštumą, o kas gali būti lygesnis už vandens paviršių? Nenuostabu, kad jie taip sako!
Nenuginčysime tradicinių idėjų, bet patikslinkime: frazė „vandens paviršius“ tinka tuo atveju, kai vanduo nejuda. Tačiau tai praktiškai niekada neįvyksta. Vanduo turi kitokį charakterį...
Atsigręžiant į natūralius vandens telkinius
projektų, retai randame patvirtinimą
vyraujančios idėjos apie idealą
horizontalus vandens lygis, o štai pavyzdžiai
jos nehorizontalumai yra visur – nuo
vandens lašai į vandenyną. Nehorizontalus
matomas net mikro lygiu. Pavyzdžiui,
lygiu stiklinėje arba ploname vamzdelyje
vanduo visada turi aiškią įgaubtą formą,
atitinkantis didžiausią koeficientą
pas padavėją paviršiaus įtempimas tarp
skysčiai (išskyrus gyvsidabrį). Pagal tai
dėl tos pačios priežasties vandens lašas neišsiskleidžia
ant vaško popieriaus ir apskritai esant nulinei gravitacijai
lieka rutulio formos.
Horizontalaus vandens lygio pažeidimas
paviršius pastebimas ir makro lygmeniu. Tolumoje
iš vandenynų ir jūrų, jų paviršius yra
mums atrodo griežtai horizontalus. Bet jei
jūra plečiasi prieš tavo akis,
vaikščiok žvilgsniu horizontu – tu
pamatysi ne tiesią liniją, o lanką... Ir plane-
konteinerių mastelis vandenynų ir jūrų jų vandens
paviršius tikrai sferinis, tai
pakartoja kontūrą gaublys ir jos verksmas -
vertę lemia fizikos dėsniai.
Žinoma, planetų kreivumas yra kitas dalykas
ne vandenyno vandens „paviršius“, tai periodiškai
sutrikdyta ilgų bangų perėjimo
atoslūgiai ir srautai, susiję su padėtimi
Mėnulis ir Saulė. Potvynių metu nuolydis yra
nukreipta į sausumą, atoslūgių metu – į
išvirkščia pusė.
Potvynio bangos aukštis skiriasi
vietų Žemėje ir priklauso nuo krantų formos.
Didžiausi potvyniai Žemėje (15,6–18 m)
įrašytas Fundy įlankoje (Atlanto vandenyne
Kanados pakrantė). Europos konferencijoje
Tinente didžiausias potvynis (iki 13,5 m)
pastebėta toliau vakarinis krantas Prancūzija, in
Bretanė. Rusijoje tokių potvynių pasitaiko
randami Okhotsko jūros Penžinskajos įlankoje - iki
12,9 m. Tai didžiausia atoslūgių vieta
visame Ramiajame vandenyne.
Be potvynių pusiausvyros lygio
nya vandenyno jo horizontalumas yra pastovus
iškreiptas vėjo bangų
srovės, audros bangos ir netoli pakrantės
gov – banglenčių pliūpsniai. Pats galingiausias
Žemė šilta srovė Golfo srovė atrodo
„išgaubta“ upė, iškilusi virš paviršiaus
ness Atlanto vandenynas 1-2 m.
Taigi „vandenyno paviršius“ yra tik romanas -
vaizdinė išraiška, apie ką turėjau omenyje
dėmesio puikus geografijos ekspertas
Vandenynų rašytojas Žiulis Vernas. Jo baneris
Kapitonas Nemo ne kartą neigė
„vandenyno paviršiaus“ idealizavimas: „Lengva
vandens paviršiumi nubėgo raibulis... Šviesa
vėjelis šiek tiek barškino vandens paviršių... Nieko
vandens paviršiuje iškilusios bangos...“ Ir štai
pagrindinė išvada: „Užšalęs vandens paviršius, į
jo nuostabai, visai priešingai nei tikėjosi
Jis nepasirodė toks lygus kaip veidrodis.
Taigi vandens "paviršius" yra retenybė.
Puškinas netgi matė „švelnią“ Juodąją jūrą
briedis kitokios nuotaikos:
Triukšmauti, triukšmauti, paklusni burė.
Nerimas po manimi, paniuręs vandenynas.
O kokios emocijos mus užvaldo pamačius
grėsmingas vandenyno paviršius paveiksluose
I.K. Aivazovskis! Vandenynas yra šalia mūsų didybės
Jūrų tapytojas niekada nėra ramus.
Bet gal ieškant „veidrodžio“
vandens verta pasukti į mažesnius plotus
vandens telkiniai? Ar negalime ten rasti idėjų pavyzdžių?
Ar tai tikrai plokščio vandens lėktuvas?
Ne, priešingai populiariam įsitikinimui,
vandens lygis didelių ežerų paviršiuje
taip pat negali būti griežtai horizontalus. Jis
turi „iškraipymų“ ilgų, akį traukiančių formų
nepastebimos bangos – vadinamosios seiches.
Jie atsiranda veikiami išorės
jėgos: atmosferos slėgio pokyčiai,
vėjo kryptis ir greitis, seisminis
drebėjimai, bankų griūtys.
Seičams būdingas didelis laikotarpis
namuose (nuo kelių minučių iki dešimčių valandų)
ir pastebima amplitudė (nuo milimetrų iki
kelis metrus). Taip, Ženevos ežere
(Šveicarija) seiche amplitudė siekia 2 m s
ilgesniam nei vienos valandos laikotarpiui. Ir pakankamai
izoliuotas ir seklus Azovas
jūra, seichai buvo stebimi iki 23 val
valandų ir 10-25 cm amplitudė.
Kažkas panašaus vyksta suomių kalboje
įlanka, kur gilus ciklonas su stipriu
mi vakarų vėjai sukuria "kreipimą"
lygiai ir ilga banga, išsiskleidžia,
rieda į Nevos žiotis, sukeldamas garsiąją
potvyniai Sankt Peterburge. Puškinas, ne
neturėdamas sistemingų stebėjimų,
trumpai ir tiksliai apibūdino priešingą priežastį
Nevos tėkmė, tai yra, keičiasi jos nuolydis:
Bet vėjų stiprumas iš įlankos
Užblokuota Neva
Ji grįžo atgal, pikta, šniokščianti,
Ir užtvindė salas...
Paprasčiausią seiche modelį lengva pagaminti
stebėti vandens dubenyje. Sūpuoja jį vieną
kartų, jūs galite pamatyti, kaip kyla bangos,
pakartotinai atsispindi iš šonų, perduodamas
patrinkite paviršių. Jie stumia -
xya, chaotiškai sutampa vienas su kitu,
sukurti sudėtingą bangų sistemą.
Tačiau reikšmingiausi horizontalės iškraipymai
vandens lygio zoniškumas atsiranda ties
mobiliausias vandens kūnai- iš naujo
Akivaizdu, kad bet koks vandens srautas negali
būti griežtai horizontaliai būtent todėl
kad jis teka, vadinasi, turi nuolydį, nes
Kaip sakoma, be nuolydžio vanduo nenutekės. IR,
žvelgdami į išilginį upės profilį, mes
šlaito kryptį visada matome kaip dugną
upė ir jos paviršius.
Bet jei upės vaga pakankamai stabili,
vandens lygis jame nuolat kinta.
Neatsitiktinai jis matuojamas vandens skaitikliais
pranešimai skelbiami bent du kartus per
dieną, per didelį vandenį ir potvynius – kiekvieną
Jau laikas. Būtent šiais laikotarpiais upės ypač paveikiamos
agresyvūs, ypač kai jie kelia grėsmę
„šokti aukštai“ (vėl tik vaizdas)
išraiška, reiškianti aukščiausią
Didesnis lygio kilimas ir išėjimas upės vanduo už nugaros
savo kanalo ribas).
Aišku, kad reikia žinoti kaip
upė gali pakilti aukštai. Dauguma
miestai atsirado tuo metu, kai dar nebuvo
informacijos apie galimus svyravimus nėra
vandens lygis upėse, o dabar jų daug
žiauriai kenčia nuo periodinio kartojimo
besitęsiantys katastrofiški potvyniai. Generolas
žinomi potvyniai Kinijos, Indijos upėse,
JAV, kai kurios Europos šalys. Potvynis
susitikimai vyksta Sankt Peterburge, Archangelske,
Krasnojarskas, Blagoveščenskas, Krymskas ir
kituose miestuose ir apgyvendintose vietovėse Rusija.
Atsižvelgiant į liūdną potvynių patirtį
miestai, projektavimas ir statyba
naujos atliekamos privalomai įvertinus
aukščiausias vandens lygis. Bet kaip nustatyti
tokio pakilimo mastas? Tam jums reikia
žinoti upės vandens režimo dėsningumus ir
ežerų, turi ilgą stebėjimų seriją
juos. Pagal chronologinį dienos tvarkaraštį
reikšmingi vandens lygio pokyčiai (tai vadinama
hidrografas) galima spręsti apie vandens prigimtį
mityba, laikas ir dydis
ekstremalios situacijos.
Vandens lygio kilimo aukštis upėse
didelio vandens ar potvynių laikas priklauso nuo
daug priežasčių: kai kuriose upėse tai puiku
apie sniego atsargas ir jų tirpimo intensyvumą,
ant kitų – kritulių kiekis ir trukmė
lietaus atsiradimas, trečia - sąlygos
sušalimas ir lūžimas nuo ledo, draugystė
ledo dreifas, ketvirtoje - vėjo kryptis-
griovys ir potvyniai. Bet stipresnis
turi įtakos baseino dydis ir
upės vagos prigimtis. Aišku, tuo stipresnis
kanalą riboja krantai, tuo didesnė upė
Noriu išsiveržti už jos ribų ir dar aukščiau
ji turi keltis. Ir atvirkščiai: į
plačios pelkėtos salpos, kur nieko
neleidžia upei plisti plačiau, kylančiam vandeniui
nepilnametis. Ypatingai raminantis
paveikti upes... ežerus ir pelkes. Nei jų
daugiau upės baseine, tuo mažiau
vandens lygio svyravimai.
Koks yra tikrasis vandens lygio kilimas?
ant upių ir ežerų? Ir ar jie nėra vaisiai
meninės vaizduotės pasakojimai apie
multimetro šuoliai upės lygyje, apie vandenį
ny šachtos, apie kaimus, paslėptus po vandeniu,
apie didžiulių erdvių užliejimą, proporcingai
ratlankis su kai kurių valstybių plotu?
Kaip parodė ilgamečiai hidrologai,
stebėjimų stebėjimai, tokie įvykiai yra ne tik
įvyko ir vyksta, tačiau jie gali būti
ribota klasifikacija.
Didžiausias vandens lygio pakilimas užfiksuotas
tikėtinos žemumose, tekančiose giedromis upėmis
ryškūs krantai, nesant salpos. IN
tokiomis sąlygomis net mažose upėse svyravimai
lygis siekia 2-4 m, o vidutinis ir didelis
aukštas – vanduo gali pakilti į aukštį
kelių aukštų pastatai. Apie "gražią mėlyną"
Dunojus“ girdėjo visi, bet ne visi žino, kas tai yra
du tūkstančiai kilometrų nuo jos žiočių, Austrijoje,
Dunojaus vandens lygio svyravimų amplitudė
siekia beveik 15 m, pažymėta Budapešte
peršoka per 10 m Tačiau Europoje
Šuolio į aukštį rekordas priklauso... Gerai.
Kalugos srityje lygio svyravimų amplitudė
daugiau nei 120 metų laikotarpį
deniya pasiekė 19 m! Šiame fone pakyla
vandenys prie Dono atrodys nuosaikūs – „visi
„eiti“ 12–14 m, o Volgos aukštupyje (prieš sukūrimą
reguliuojantys rezervuarai) vandens virš 10 m
nepasikėlė.
Įveikta gana aukšta kartelė -
teka mūsų šiaurinės upės. Galingas vanduo
upeliai apriboti statūs ir stiprūs
krantų, galinčių pakilti į aukštumas
10-12 m Virpesių amplitudės ypač didelės
pirties lygiai Pechora. Beveik ant visko
per visą skirtumą tarp minimumo
o maksimalus lygis siekia 12 m.
Lygiai taip pat „šokantis“ Pečoros intakas yra upė
JAV. Kitas šiaurinis milžinas – Severnaja
Dvina yra beveik tokia pat gera, kaip ir jos kaimynė. IN
Ust-Pinegos regione, ilgalaikiai svyravimai
lygis viršijo 12 m gana „šokantis“.
ir Sukhonos upė, ypač jos žemupyje.
Dešimt metrų jo vandens lygio pakilimo nėra
kartą patyręs Veliky Ustyug.
Tačiau, nepaisant garsaus rusų-
"Jos upių potvyniai yra kaip jūros"
reikėtų ieškoti čempionų „šokime aukštyn“.
Azijoje. Didžiausias vandens lygio pakilimas
mūsų šalyje – iki 32 m – stebėta upėje
Tunguska. Laimei, ne ekonominis
Šioje srityje objektų nėra. Ir tarp pasaulio
milžiniškas upes padarė aukščiausią „šuolį“.
Kinijoje teka Jangdzė. Siauroje vietoje netoli miesto
Ichan jis pasiekia 50 m Kokios galios reikia?
bet turėti tokį aukštį!
Upės su potvyniais net negali
priartėti prie panašių rezultatų. Paprastai
vandens lygio svyravimų juose amplitudė
aukštupyje neviršija 1,5–2 m, in
vidutiniškai – 15-20 m. Dėl šios priežasties Volga
žemupyje, o Uralas per visą ilgį nėra žemiau
yra aukštesni nei 10 m.
Įtekančių upių rezultatai dar mažesni
lygumų pelkių ribose
riy - in Vakarų Sibiras, Polesėje. Čia toliau
didelės upės - Ob, Pripyat - amplitudė
lygio svyravimai vos siekia 8-10 m, at
mažos upės - 1-1,5 m.
Žemiausi rezultatai rodo
ežeras ir kalnų upės. Ilgalaikiai svyravimai
vandens lygio žeminimas net giliose upėse
neviršija 4-6 m Tai apima
Angara, Volchovas, Neva. Taip, per visą istoriją
stebėjimai prie Novaja Ladoga, virpesių amplitudė
Vandens lygis Volchove buvo 3,3 m.
Dar mažiau – Nevai, kurios tėkmė beveik
visiškai reguliuojama Ladoga.
Šiuo atžvilgiu kyla klausimas: kaip?
Ar mums reikia pakelti ežerus? Skirtingai nuo upių,
didelė ežerų talpa neleidžia jiems to padaryti
greitai ir lengvai pasiduoda orų užgaidoms
taip – draugiškai tirpsta sniegas, intensyvus
lietus, pučiantys vėjai ir kt. Todėl am-
jų lygių amplitudė yra daug mažesnė, ypač
prie kietų ežerų. Ladogos ežero lygis,
pavyzdžiui, per stebėjimo laikotarpį daugiau nei
140 metų svyravo per 1,5-2,5 m, at
Baikalo, pasaulietiniai lygio svyravimai ne iš anksto
aukštis 2,2 m.
Rusijos teritorijoje labiausiai „kyla
bet" Ilmeno ežeras, jo lygių amplitudė
per visą stebėjimo laikotarpį viršija 7 m.
(Kaip neprisiminti legendos apie Kitežo miestą,
pateko po vandeniu?) Tai paaiškinama tuo
koks yra Ilmeno vandens paviršiaus plotas
apie 90 kartų mažiau ploto maitinti -
savo baseino. Štai kodėl ežeras toks audringas
reaguoja į menkiausius vandens kiekio pokyčius
jo didžiulis turtas. Apie tą patį
šiaurinis kaimynas Vologdoje elgiasi
rangas - Kubenskoje ežeras, aukščiausi pakilimai
lygis ten siekia 5-6 m
ežerai Rusijos šiaurėje ir šiaurės vakaruose
diapazonas 2-3 m.
Ir vis dėlto pasaulyje yra unikalus
beveik absoliučios horizontalės pavyzdys
tality vandens - tai be nutekėjimo Big
Druskos ežeras JAV šiaurės vakaruose. Tu-
iki plutos išdžiūvęs druskos sluoksnis pakartoja lygį
vandens ir užtikrina tokį lygų paviršių
paviršių, kuriame atliekami bandymai
ir itin greitų automobilių lenktynėse.
Bet jei lygių „iškraipymai“ būdingi
net ežerams, tai upėse jų dar daugiau
pastebimas. Dėl išilginio nuolydžio jokių abejonių
vandens srautas. Bet ar akivaizdu, kad yra a
pipirai? Sveikas protas raginimai:
jei toks būtų, vanduo judėtų skersai
upės – tarp krantų. Ši prielaida
gali atrodyti absurdiška – juk taip nėra
turi atsitikti!
Tačiau skersinis vandens nuolydis
upės vaga egzistuoja. Tai lengva patikrinti,
stebėdamas didelės žemumos upės gyvenimą.
Atkreipkite dėmesį į vandens elgseną
srautas skirtingais metų laikais. Prizmė -
eiti prie upės pavasarį, per didelį vandenį, per
Aš esu ledo dreifas. Nemokamai plaukiojančios ledo lytys
prieiti, kartais net prisiglausti
į krantus, o užstrigus ledui – dažnai
„ropoti“ ant jų. Tai rodo, kad
yra nuolydis, nukreiptas iš vidurio
upės į krantus. Jei sekate upę
potvynio pabaigoje, esant žemam vandeniui, lengva
bet pastebės, kad visi laisvai plaukioja
daiktai (rąstai, šakos, įvairios šiukšlės)
laikykitės upės vidurio, aiškiai identifikuodami
lojimas vandens srauto šerdį. Tas pats ant
kuriuo „plaukė piešti aštriaplaukiai plaukikai
kanojos“. Todėl yra šališkumas
nukreiptas iš krantų į upės vidurį.
Patyrę vandens turistai gali patvirtinti
ne tik išilginės, bet ir skersinės
ny srovės upės vagoje, ypač kur
pasikeičia strypo kryptis.
Kas paaiškina atsiradimą
sezoniniai kryptiniai skersiniai kampai
gimdos? Hidrologai mano, kad jų priežastis
yra reikšmingi srauto greičio pokyčiai
vanduo upės vagoje. Daugumos upių tūris
vanduo potvynio metu arba potvynio metu gali
ištirpsta dešimteriopai. Todėl kai upės vaga
persilieja vandeniu, didžiausias srautas-
žinių gebėjimas patenka į vidurį
upės dalis, kurioje trinties įtaka krantams ir
dugnas palyginti mažas ir nereikšmingas
turi įtakos srauto greičiui. Kaip rezultatas
didesnis slėgis, vandens lygis čia tampa
svyruoja aukščiau nei prie kranto. Ir tada jie sako:
— Upė užpustė. Kartais tai netgi pastebima
akis; didelėse ir giliose upėse viršija
vidutinio lygio pasiskirstymas pakrantėje
siekia 1 m Šiais atvejais su upės pločiu
1,5-2 km, skersinis nuolydis viršija 0,001,
o tai yra daug net ir išilginiam ES nuolydžiui.
natūralūs vandens telkiniai. Dėl šio skirtumo
lygių upėje juda vanduo iš
kanalo vidurio į krantus, kuris nuneša
ledo lytys už tavęs.
Pasibaigus potvyniui – upės vandens kiekis ir gylis
sumažėja, o slopinamasis poveikis didėja
dugno ir krantų grimzdimas. Tai veda prie
vandens lygis prie kranto yra aukštesnis,
nei upės viduryje, kanale atsiranda judėjimas
vandens srautas kryptimi nuo krantų į centrą.
Akivaizdu, kad upėje plūduriuoja objektai
bus linkęs į jos vidurį, todėl anot jų
galima nustatyti vietą upelyje
ir vandens režimo fazės – kilimas arba kritimas.
Apibrėžimas, žinoma, bus paviršutiniškas,
nes nematome, kas vyksta gelmėse
lovos. Upė meistriškai slepia galus vandenyje,
ir galima tik spėti, kad be to
išilginis greitis upėse yra
pipirų cirkuliacijos srovės.
Priežastis šis reiškinys buvo atidarytas
tik praėjusio amžiaus viduryje. Eksperimentinis
M. A. Velikanovo pasakos (1958),
N.I. Makkaveev ir kiti (1961) nustatė, kad
kad upės paviršius gali pakeisti savo
formos, formuoja įvairius šlaitus
įtakoja padidėjimas arba sumažėjimas
jo suvartojimas, išcentrinės jėgos buvimas
posūkių, Žemės sukimosi jėgų, vėjo ir
Dauguma sudėtingų atvejų oro judėjimas
išnykti upės vagos vingiuose, kur kartu su jėga
gravitacija, srauto greitį veikia centro-
bėgimo jėga, kuri „spaudžia“ srautą vandens link
išlenktas (pakirstas) krantas ir keli
pakelia vandens lygį. Kaip rezultatas
perteklius hidrostatinis slėgis in
apatinius sluoksnius, vanduo „išspaudžiamas“ ir nukreipiamas
juda link išgaubto kranto.
Taigi du skersiniai
srovės: vienas - „paviršius“, smūgiuojantis
į įgaubtą krantą, kitas - "apačioje", ant-
pataisyta priešinga pusė. IN
kiekvienas lenkiamas cirkuliacijos kryptimi
tavo. Posūkiuose į dešinę yra vandens čiurkšlės
judėkite pagal laikrodžio rodyklę, kairėje - kryptimi
karine kryptimi. Taip sukuriamas ratas
cirkuliacija upelyje.
Maišymas su pagrindine išilgine
srautas, įjungtos skirtingos krypties srovės
paviršių, o apačioje sukuria spiralę
(„spiralinis“) vandens judėjimas. Kai kurios upės
taip jos teka – „spirale“ nuo vingio iki
vingiuoja pasroviui.
Daugiau sunkesnis judėjimas upės įtekėjimas
„kritiniais“ sezoniniais laikotarpiais. Su svoriu
rudens potvynis išgaubta vandens forma
paviršius sukuria du besiskiriančius link
šlaitų krantai ir juos atitinkantys te-
skaitymai. Tuo pačiu metu, pasiekę dugną, jie keičiasi
kryptimi ir, susidūręs viduryje,
skubėti į paviršių. Vasaros mėnesiais
vandens judėjimas vyksta skirtingai:
paviršiniai srautai nukreipti į vidurį
upės susiduria ir eina į gelmes, kur
nukrypti link krantų. Taigi,
šiais laikotarpiais upės tėkmė susideda iš dviejų
juda lygiagrečiai, bet priešingai
susukti spiralės srautai.
Stebėjimai rodo, kad labiausiai
stabilus lygis upėse ir ežeruose vasarą ir
žiemos žemas vanduo. Tai laikotarpiai, kai antplūdis
vanduo yra ribotas ir gali net sustoti,
o patys lygiai minimalūs. Ir dažnai
vandens paviršius praranda natūralų atvirumą
tai yra, vasarą padengtas šilumą mėgstančiu vandeniu,
augmenija (antžolė, dumbliai),
o žiemą – ledas. Abu susilaiko
bangų vandens lygio svyravimai.
Tokie rezervuarai yra labai poetiški ir mylimi.
menininkai. Prisiminkite užaugusį tvenkinį
V. M. Vasnecovo paveiksle „Alionuška“ arba
peizažuose vandens lelijomis apaugę tvenkiniai
Claude'as Monetas...
Kalbant apie išlyginimo įtaką
ledo danga, tada ir čia tik įmanoma
žavisi Puškino stebėjimo galiomis,
kuris rado tikslų ir elegantišką palyginimą:
Tvarkingesnis nei madingas parketas
Upė šviečia, padengta ledu.
Be jokios abejonės, „užšalusios“ upės ir tvenkiniai
Kartais jie sukuria vandens veidrodžio įspūdį.
Ir, tiesą sakant, tikras horizontalumas
egzistuoja, bet tik labai nedaugelyje vandenų
daiktai, dažniausiai maži, uždari-
izoliuotas nuo išorinių poveikių,
ir net tada trumpam ir tam tikram laikui
ilgio gabalas. Taigi į klausimą,
pavadinime, tai nutinka dažniau
atsakyti neigiamai. Ir jei tai pusė -
gyventi, tada su didelėmis išlygomis...
Labai dažnai trimatėse programose, tiksliau žaidimuose, yra vandens erdvės. Jei kažkada buvo galima apsieiti su mėlynu stačiakampiu, rodančiu skystį, tai dabar toks vandens vaizdas atrodo juokingas ir niekaip nepatenkina neišsakytų reikalavimų realistinei grafikai. Kūrėjai susiduria su klausimu: kaip pavaizduoti vandens paviršių?
Kas tai apima? Išsiaiškinkime.
1. Atspindys – virš jo esančios erdvės atvaizdavimas vandens paviršiuje. Šis punktas bene svarbiausias vaizduojant daugiau ar mažiau tikrovišką vandenį.
2. Refrakcija – erdvės, esančios po vandens paviršiumi, atvaizdavimas.
3. Ūkas/vandens tankis – lūžio spalvos pokytis priklausomai nuo gylio (kuo giliau erdvė vandens paviršiaus atžvilgiu, tuo tamsesnė/drumstesnė ji atrodo).
4. Apšvietimas.
5. Bangos taip pat yra svarbus taškas kuriant tikrovišką vandens paviršių.
Dabar išsiaiškinkime, kas ir kaip įgyvendinama taikymo požiūriu.
1. Pirma, apibrėžkime, kas yra vanduo. Yra keletas atvejų:
- keturkampis
- Mažo polio modelis
- daugiakampis modelis.
Atsižvelgiant į atliekamą užduotį, pasirenkamas vienas iš įgyvendinimo būdų. Paprasčiausias yra tai, kad vandens paviršius yra kvadratas (du daugiakampiai). Fizinis judėjimas nėra. Efektas bangos paviršius galima pasiekti tik padedant specialios kortelės poslinkiai.
Žemo daugiakampio modelis – niekuo nesiskiria nuo ankstesnio, išskyrus tai, kad paviršius susideda iš kelių daugiakampių, kurie svyruoja pagal tam tikrą dėsnį (paprasčiausiu atveju sinusoidė). Tai sukuria „dinamiškesnio“ bangos judėjimo vaizdą.
Kelių daugiakampių modelis yra visiškai kitoks būdas. Bangos yra dinamiškai besikeičiančių primityvų matricos. Sąžiningiausias bangų vaizdas, bet kartu ir daugiausiai išteklių reikalaujantis pasirinkimas. Turėtų būti naudojamas tik tada, kai reikia aukščiausio lygio kokybės.
Dažniausiai naudojamas pirmasis arba antrasis variantas.
2. Refleksija. Atspindys vandens paviršiuje yra ne kas kita, kaip tekstūra. Vienintelis sunkumas yra tas, kad jis nuolat keičiasi ir vienos pastovios tekstūros nepakanka (išskyrus netikrą atspindį - dangaus tekstūrą; metodas yra nerealus ir turėtų būti naudojamas tik paspartinti atvaizdavimą, jei reikia). Išsiaiškinkime, iš kur gauti šį vaizdą. Atspindys vandens paviršiuje yra erdvės virš vandens vaizdas, bet atspindėtas horizontaliai.
Norėdami jį gauti, tiesiog reikia „atspindėti“ fotoaparatą vandens paviršiaus atžvilgiu.
3. Refrakcija. Viskas panašiai, išskyrus tai, kad refrakcijos vaizdas yra būtent toks vaizdas, kokį mato kamera, neatsižvelgiant į patį vandenį.
4. Apšvietimas. Nieko neįprasto, paprastas apšvietimas, toks pat kaip ir kitiems objektams (kad vanduo nebūtų vienspalvis).
5. Bangos. Kaip jau minėjome, bangos gali būti vaizduojamos dviem būdais (netikros bangos naudojant tekstūras ir teisingos bangos naudojant geometriją).
Jei viskas aišku su geometrija (kiekvienos viršūnės padėtis keičiasi priklausomai nuo fizinis įstatymas arba triukšmo žemėlapiai), tada klastotė tampa šiek tiek painesnė, bet tuo pačiu ir paprastesnė.
Netikras bangas galima atvaizduoti naudojant du dalykus: šviesą ir atspindžio / lūžio iškraipymą. Dauguma kokybiškus rezultatus pasiekta per dalijimasisšiais dviem būdais.
Naudodami įprastus žemėlapius apšviečiame vandenį taip, lyg jis būtų
Tikrai yra reljefo bangos.
Iškraipymo pagalba „ištepame“ atspindį/lūžį išilgai bangų struktūros.
Kaip jau minėta, apšviesime pagal bangų struktūrą naudodami įprastus žemėlapius.
Normalus žemėlapis
Įprastas žemėlapis yra grafinis failas, kurio r/g/b kanaluose yra įprasto vektoriaus koordinatės, o ne spalvos. Paprastai jis atrodo taip (žemėlapis, kuriame nesunku pamatyti objekto struktūrą, apšviestas mėlynai violetine spalva).
Iškraipysime vaizdą vandens paviršiuje (ar tai būtų lūžis, ar atspindys, ar abiejų derinys), naudodami tekstūros koordinačių poslinkio žemėlapį.
Tekstūros koordinačių poslinkio žemėlapis (du/dv žemėlapis)
Tekstūros koordinačių poslinkio žemėlapis (arba du/dv žemėlapis) taip pat yra žemėlapis su objekto struktūra, tačiau jo spalvos gali būti labai skirtingos (nuo pilkai rudos iki geltonai raudonos). Tokie žemėlapiai spalvų kanaluose saugo atstumus, kuriais keičiasi tekstūros koordinatės. Remiantis tuo, jie gali būti skirtingų formatų – tiek vieno kanalo (žemėlapiai su nespalvotu gradientu), tiek daugiakanaliai (pavyzdžiui, dviejų kanalų, skirti poslinkiams išilgai x ašies ir y). -ašį atskirai).
Taigi, panaudokime įgytas žinias kurdami nedidelį vandens traukimo planą mūsų programoje. Mums reikia:
1. keturratis;
2. dvi pagalbinės tekstūros (įprastas žemėlapis ir du/dv žemėlapis);
3. keli normalaus atspindžio atvaizdavimo būdai;
4. Shader, kuris perteiks visa tai.
Na, pereikime prie įgyvendinimo.
2. Įgyvendinimas
#define FVF_XYZ_TEX1 (D3DFVF_XYZ|D3DFVF_TEX1) struct VERTEX_XYZ_TEX1 ( VERTEX_XYZ_TEX1() ( ); VERTEX_XYZ_TEX1(D3DXVECTOR3 _pos, D3DXVECTOR) (tes_texpost); XVECTOR3 poz.; D3DXVECTOR2 tex);Sukurkite viršūnių formato struktūrą ir apibrėžimą. Išsaugosime tik viršūnių koordinates ir tekstūros koordinates, nieko daugiau mums nereikia.
klasė CWATER ( privatus : LPDIRECT3DSURFACE9 psBackBuffer; LPDIRECT3DSURFACE9 psTextureReflect; D3DXMATRIX oldMatView; LPDIRECT3DVERTEXBUFFER9 vb_Water; LPDIRECT3DSURFACE9 pSurfaceZDSURFACE9 pSurfaceZDSURFACE9 pSurfaceZDBDSuffer; // Atspindžio tekstūros skiriamoji geba ir papildomas gylio buferis int iTextureResolution; float fWidthWater; plūduriuoti fDepthWater; // Vandens paviršiaus ilgis ir plotis viešas : LPDIRECT3DTEXTURE9 tex_Reflect; // Atspindžio tekstūra void PreRenderForReflection (Kamera *Kamera);void PostRenderForReflection(Kamera *Kamera);
VANDUO ();
~VANDUO(); void Init(float _fWidthWater, float _fDepthWater, float fTexScale); // Inicijavimas void Draw(); );Čia yra pagrindinė vandens klasė. Čia matome keletą kintamųjų, apie kuriuos anksčiau net nebuvo užsiminta. Išsiaiškinkime, kodėl jie yra?
Į tekstūrą įtrauksime atspindį (ir lūžį, jei pageidaujama). Tai reiškia, kad pirmiausia turime sukurti šios tekstūros paviršių. Mes išsaugosime jį psTextureReflect. Prieš įtraukdami į jį vietos, turite nurodyti įrenginiui, kad atvaizduojama tekstūra, o ne galinis buferis. Tačiau norėdami vėliau teisingai įtraukti į galinį buferį, turite tai atsiminti ir grąžinti. Mes tai atsiminsime psBackBuffer.
Taip keičiame aktyvųjį Render Target, tačiau norint išvengti problemų piešiant į tekstūrą (braižoma taip, lyg būtų išjungtas gylio buferis arba neteisingai nustatytas kirpimas), reikia daryti ką nors kita. Faktas yra tas, kad galinio buferio dydis yra lygus tam tikrai reikšmei (dažniausiai 1024x768), o kai įtraukiame į tekstūrą, greičiausiai jis turi skirtingą skiriamąją gebą, o tai reiškia, kad šis gylio buferis jam netinka. Jį galite naudoti tik tuo atveju, jei buferio dydis yra didesnis arba
lygus dydžiui
tekstūra, į kurią piešiame.
Pasirodo, kad turėsime sukurti dar du paviršius (praeities prisiminimui ir esamo buferio saugojimui). Tai yra pSurfaceZBuffer ir pLastSurfaceZBuffer.
iTextureResolution – tekstūros skiriamoji geba atspindėjimui (kuo didesnė, tuo geresnis atspindys, bet ir daug resursų reikalaujantis metodas).
void CWATER::Init(plūduriuoti _fWidthWater=10.0f, plūduriuoti _fDepthWater=10.0f, plūduriuoti fTexScale=1.0f) ( fWidthWater=_fWidthWater; fDepthWater=_fDepthWater,Treikimo DT3 tureResolution, 1, D3DUSAGE_RENDERTARGET, D3DFMT_A8R8G8B8, D3DPOOL_DEFAULT, &tex_Reflect idthWater, 0, fDepthWater; .pos = D3DXVECTOR3(0.0f, 0.0f, 0.0f); 0,0f,0,0f); p[k].pos = D3DXVECTOR3(0,0f, 0, fDepthWater) , 0, fDepthWater); p[k].tex = D3DXVECTOR2(fTexScale, fTexScale);++k;
negaliojantis * pBuf;vb_Vanduo->Užraktas(0, 6 * dydis(VERTEX_XYZ_TEX1), &pBuf, 0); memcpy(pBuf, p, 6 * dydis(VERTEX_XYZ_TEX1)); vb_Vanduo->Atrakinti();
void CWATER::PreRenderForReflection(Camera *Cam) ( D3DXVECTOR3 CamPos = Cam->GetCamPos(); D3DXVECTOR3 ViewPos = Cam->GetViewPos(); Cam->GetViewMat(&oldMatView); D3DXVECTOR3 float = CamPot. -ObjPos.y; h.y = CamPos.y - 2*tmp tmpv = &h,&hv,&D3DXVECTOR3(0.0f, 1.0f, 0.0f) -> D3DTrans. &MatrixView; „GetRenderTarget“ 245), 1.0f, 0L)Tačiau ši funkcija atlieka maždaug pusę viso atspindžio atvaizdavimo darbo. Čia paimame fotoaparato padėtį ir padėtį, į kurią jis žiūri (žvilgsnio padėtis, o ne kryptis), prisimename dabartinę vaizdo matricą. Toliau vyksta nedidelės machinacijos norint perkelti kamerą į reikiamą vietą (kad atspindys būtų teisingas, fotoaparatą perkeliame vandens paviršiaus atžvilgiu, tai galima padaryti kitu būdu, pvz., per atspindį funkcijos iš vandens plokštumos (iš D3DX bibliotekos) ir pan., bet esmė lieka viena). Formuojame ir montuojame nauja matrica malonus. Tada išsaugokite ir nustatykite naujas įrenginio (paviršiaus) atvaizdavimo vertes. Ir, žinoma, išvalome tekstūrą.
void CWATER::PostRenderForReflection(Camera *Cam) ( Cam->SetViewMat(&oldMatView); D3DDevice->SetRenderTarget(0, psBackBuffer); D3DDevice->SetDepthStencilSurface(pLastSurfaceZBuffer);)Įtraukus atspindį į tekstūrą, viskas turi būti grąžinta į savo vietas, kaip buvo prieš kameros transformaciją.
Dabar pažiūrėkime į antrąją viso vandens paviršiaus atvaizdo pusę – piešimo šešėlį.
statinis plūduras4x4 Mr= ( 0,5, 0, 0, 0, 0, 0,5, 0, 0, 0, 0, 0,5, 0, 0,5, 0,5, 0,5, 1);Tai leidžia teisingai nubrėžti atspindį – „atspindėjimo matricą“. Ji yra tokia, kokia yra ir nieko čia keisti nereikia. Pastovus, taip sakant.
float f_height_wave; //bangos aukštis float4x4 WVP; //pasaulis * vaizdas * projekcijos matrica vienodas plūdimo laikas; //delta laikas – laikas, praėjęs vienam kadrui tekstūra tex_tex; //atspindėjimo tekstūra tekstūros tex_bumpMap; //tekstūra su nelygumu tekstūra tex_bumpdudv1; //tekstūra su koordinačių poslinkio koeficientais float3 vec_light_dir; //šviesos krypties vektorius float4 EyePosition; //kameros padėtis float4 LightColor; //šviesios spalvos float4 MatColor; //vandens spalva float4x4 Pasaulis; //pasaulio matrica float Ambient; //fono šviesaČia viskas aišku, išskyrus f_height_wave. Tai tekstūros koordinačių poslinkio koeficientas.
Bangos „aukštis“ = 12
Bangos „aukštis“ = 2
Čia taip pat nėra nieko neįprasto, standartinės procedūros.
VS_OUTPUT vs_main(VS_INPUT IN) ( VS_OUTPUT OUT; //apskaičiuokite vandens padėtį ekrano koordinačių sistemoje OUT.pos = mul(IN.pos,WVP); //žiūros kryptis OUT.ViewDir = EyePosition - mul(IN.pos,World); OUT.pspos = OUT.pos;//apskaičiuokite naujas tekstūros koordinates OUT.tex2.x = IN.texc.x + sin (laikas)*0,4;//tie. perkelti šias tekstūros koordinates OUT.tex2.y = IN.texc.y - cos (laikas)*0,3;// abiem kortelėms aukštyn ir žemyn OUT.tex3.x = IN.texc.x - sin (laikas)*0,4;//atitinkamai pagal laikrodžio rodyklę aplink apskritimą
OUT.tex3.y = IN.texc.y + cos (laikas)*0,3;
float4 ps_main (float2 texcoord2: texcoord0, float2 texcoord3: texcoord1, float4 pspos = 2,0f * tex2D (bumpMap, texCoord3.xy*0,5) - 1,0f float3 normalizuoti (colorOne+colorTwo + float3 (0,0,0,5,0,0)) ) ); xyz + = normaloffset inTexProj = mul(pspos,Mr result = tex2Dproj(tex, inTexProj), 1.0f); // float3 Reflect = reflektuoti(-LightDir, WorldNormal); float3 Reflect = reflektuoti (-LightDir, 1.14*I *WorldNormal);float4 Specular = pow (0.5*(1.0+(taškas (Reflect, ViewDir))) ,256); rezultatas = LightColor * MatColor * rezultatas * I + Specular*LightColor; rezultatas.a = 1,0; grąžinti rezultatą; ) Fragmentų šešėliuotoje apskaičiuojame vidutinį normalų (ir tai galite padaryti kaip norite, yra daugybė variantų). Prieš normalizavimą (tai vis dar yra normalu), mes pakoreguojame normalų, šiek tiek pakreipdami jį link vektoriaus (0,1,0), nes vandens paviršius yra horizontalus. Jūs neprivalote to daryti, bet tokiu būdu rezultatas atrodo geriau (žinoma, galite redaguoti įprastą žemėlapį, bet
šis metodasdaug lengviau). Tada mes išverčiame įprastą pasaulio koordinates (tik apšvietimo tikslais). Mes darome tą patį, ką darėme su normaliu, kad pakeistume tekstūros koordinates (texturecoordoffset(2)). Tada padauginkite iš „bangos aukščio“ koeficiento. Ir tada ateina įdomiausia dalis: pridedame poslinkį prie vandens paviršiaus padėties
ekrano koordinates
Dabar pažvelkime į mūsų klasės naudojimą. Pridėkite failą su vandens klase:
Pastaba. Prie šaltinio kodo buvo pridėta maža klasė (EffectClass.h), kad būtų įkeltas efektas.
Klasė straipsnyje neaptariama, nes ji su ja susijusi tik netiesiogiai.
Sukurkite vandenį ir dvi tekstūras (įprastą žemėlapį ir tekstūros koordinačių poslinkio žemėlapį).
Vandens traukimo funkcija:
void DrawWater() ( tt +=DeltaTime*0.3f; D3DXMATRIX world,matView,matProj; D3DXMatrixTranslation (&world, Water.ObjPos.x, Water.ObjPos.y, Water.ObjPos.z); ActiveCamera->GetViewMat(>GetView) ; D3DDevice->GetTransform(D3DTS_PROJECTION,&matProj); pActiveEffect.AddToConstWVP("WVP",&world); .7f,0.7 f)); pActiveEffect.AddToConstVec3("MatColor",&D3DXVECTOR3(0.7f,0.7f,0.7f)); TT); ,2.0f);pActiveEffect.End(); )
tt yra pasaulinis kintamasis, kuris „auga“ su kiekvienu kadru. Nuo to priklauso kameros judėjimo greitis, bangų greitis ir kt. (ji simbolizuoja laiką). Viskas, kas vyksta prieš pActiveEffect.Begin(), yra tik šešėlių duomenų pildymas, todėl čia sustoti nereikia.
PActiveEffect.Begin(); pActiveEffect.Start(0); pActiveEffect.Finish();
pActiveEffect.End();
Šis derinys tik nurodo
aktyvi technika
ir praėjimas.
Vanduo.Draw() traukia vandenį.
Tex1->Paleidimas();
tex2->Paleisti ();
Na, piešimo funkcijoje:
DRAW_ALL_SCENE_OBJECTS_EXCEPT_WATER_ Water.PreRenderForReflection(ActiveCamera);
_DRAW_ALL_SCENE_OBJECTS_EXCEPT_WATER_ Water.PostRenderForReflection(ActiveCamera);
DrawWater();
Toliau nupiešiame visus objektus, kviečiame pasiruošimą piešti atspindį, vėl nupiešime visus objektus (jei jų yra keli, nepamirškite pakeisti pasaulio matricų), bet į tekstūrą ir grąžiname tas vertes, kurios buvo prieš įtraukiant į tekstūrą skambinant PostRenderForReflection . Galiausiai nupiešiame patį vandenį su atspindžiu ant jo (vadinkite funkciją DrawWater).
Tai viskas!
4. Šaltinio kodas
Čia galite atsisiųsti straipsnio pavyzdį su šaltinio kodu.
Tikiuosi, kad viskas jums pavyks! Žemės plutoje vandens vaidmuo yra išskirtinis. V. I. Vernadskis
Taip pat pažymima, kad Šiaurės pusrutulis Planeta iš esmės yra „žemyninė“ (39,4 proc. sausumos), o pietinė „okeaninė“ (19 proc.). Didžioji dalis žemyno paviršiaus matoma, jei esate virš upės žiočių. Luara: Aplink „žemyno ašigalį“ sausuma sudaro 47 procentus matomo ploto. „Okeaninis ašigalis“ bus netoli Naujosios Zelandijos (vanduo dengia 89 procentus paviršiaus). Taikymo sritisžemės reljefas reikšmingas: nuo 8848 metrų – Chomolungmos viršūnė iki 11020 metrų – Marianos įdubos dugnas. Tačiau, palyginti su geoido spinduliu, tai bus nereikšminga reikšmė: teigiami paviršiaus aukščiai yra tik 11/10 000, o neigiami 17/10 000. Vidutinis gylis vandenynas 6/10 000, Vidutinis aukštis Žemė yra apie 1/10 000, todėl Žemės reljefo skirtumai 10 metrų spinduliu bus nuo 1 iki 17 milimetrų vandenyno paviršiaus atžvilgiu. Iš čia ir daroma išvada: Žemėje vandens labai mažai, nors įvairiais vertinimais paviršinio vandens tūris siekia 1380-1450 milijonų kubinių kilometrų. Galbūt tiek pat vandensžemės viduriai
. S. M. Grigorjevo teigimu, paviršutiniškas ir Požeminis vanduo yra dinaminėje pusiausvyroje iki pat Mohorovičico paviršiaus dugno, o vanduo veikia kaip aktyvus aušinimo skystis, tirpiklį pernešanti medžiaga. silpnai išskaidyti žemyniniai masyvai su siauromis kalnų grandinių grandinėmis šiek tiek išsikiša. Prieš kelias dešimtis tūkstančių metų (pleistocene) Pasaulio vandenyno lygis buvo 100 metrų žemesnis. Ir nors didžiuliai šelfų jūrų plotai buvo sausa žemė, žemynų kontūrai nedaug skyrėsi nuo dabartinių. Žemynų kontūrai mažai pasikeistų, net jei Pasaulio vandenyno lygis nukristų 2-3 tūkstančiais metrų. M.V. Muratovas (1975) mano, kad tai yra vandenyno įdubimų dugno ypatybė – tikrasis Žemės paviršius, nepriklausomas nuo kiekio. paviršiaus vanduo. Pagrindinis skirtumas yra skirtinga struktūražemyninės ir vandenyninės erdvės kaip geologiniai antipodai, o tai paaiškinama planetų veiksniais, veikiančiais daugiau nei 4 milijardus metų.
Okeanologas H. Wrightas 1961 m. rašė: „... didžiuliai vandens plotai, kuriuos matome šiandien, augo lašas po lašo per visą mūsų planetos gyvenimą, nes vanduo smelkėsi iš Žemės gelmių. Labiausiai tikėtina, kad išorinis atsiradimas vandens apvalkalas reiškia eros, nutolusias nuo mūsų laikų 3 ar net 3,5 milijardo metų. Ir, ko gero, per tą laiką žemynų kontūrai taip ir nepasikeitė. Žinoma, giluminiai vandenynai atsirado palyginti neseniai. Pasaulio vandenyno druskėjimo procesas buvo galingas geologinis veiksnys, nes vanduo tirpo intensyviau akmenys pagrindinis aktorius. E. A. Dolginovas (1978) pažymėjo, kad dauguma jūros įlankos išsidėsčiusios zonose ir teritorijose, sudarytose iš juodųjų banginių, gneisų ir pagrindinės sudėties magminių uolienų, o žemynų kyšuliai ir pusiasaliai – iš stabilesnių granitoidų ir granitinių gneisų. Tai ypač aiškiai pastebima fiordų zonose, kurios, kaip taisyklė, susidaro pagrindinės sudėties pylimų vietoje.