Darbs:
pietiekoši vienkāršas metodes. Divas tādas arī aplūkosim tuvāk.Šķēlumu kontūru metode
Metodes pamatā ir ideja attēlot nevis visus virsmu punktus, bet gan sistemātiskā ceļā uz virsmām izzīmētu līniju punktus. Šis sistemātiskais ceļš ir virsmu šķelšana ar paralēlu plakņu sistēmu. Un visvienkāršāk to ir darīt pie paralēlajām projekcijām, kad šīs līnijas ar minimālām izmaiņām var tikt tieši izzīmētas attēla plaknē.
Aizklāšanās jautājums tiek risināts, ievedot divus t.s. peldošos horizontus – augšējo un apakšējo, kurus pakāpeniski modificē caurskatot šķēlumu plaknes virzienā no tuvākās uz tālāko. Augšējais horizonts ir tekošajā brīdī visaugstāk attēlā zīmēto pikselu kopa, apakšējais horizonts – viszemāk zīmēto pikselu kopa:
begin
augšējais horizonts := visi pikseli no attēla apakšējās malas;
apakšējais horizonts := visi pikseli no attēla augšējās malas;
for p šķēluma plakņu sistēma
loop for e p šķēluma ar ainas virsmām projekcija
loop if e ir augstāk par attiecīgās kolonas augšējā horizonta punktu t
then izzīmē e; t:=e endif
if e ir zemāk par attiecīgās kolonas apakšējā horizonta punktu u
then izzīmē e; u:=e endif
endloop
endloop
end
Ketmula rekursīvā apakšiedalījuma metode ar attāluma buferi
Metodes pamatā ir ideja zīmējamo virsmu sasmalcināt tik mazos laukumiņos, kas projicējas kā viens attēla piksels, kuru tad arī izzīmē. Attāluma buferī par katru uzzīmēto pikselu glabājas informācija par attālumu no skatpunkta vai attēla plaknes (atkarībā no projekcijas) līdz šajā pikselā attēlotajam virsmas laukumiņam
begin
for e attēla pikseli
loop buff[e] := + endloop
for v attēlojamo virsmu saraksts
loop ZīmēVirsmu(v) endloop
end
procedure ZīmēVirsmu(v:virsma);
if v projekcija nepārsniedz v centrālā punkta projekcijas pikselu e
then d := Dist(v centrālais punkts);
if d<buff[e]
then izzīmē e; buff[e]:=d endif
else v1, v2, v3, v4 := četras v sastādošas apakšvirsmas;
ZīmēVirsmu(v1); ZīmēVirsmu(v2); ZīmēVirsmu(v3); ZīmēVirsmu(v4);
endif
endprocedure
Īpaši svarīga šajā gadījumā ir piksela izzīmēšanas procedūra.
Iepriekšējā metode pieļauj visus pikselus zīmēt vienādus, bet šoreiz jārīkojas smalkāk, saskaņā ar izvēlēto izgaismojuma modeli.
Izgaismojuma modelis ietver divas galvenās daļas:
gaismas avots,
virmas optiskās īpašības
Visvienkāršāk ir ņemt vienu punktveida gaismas avotu un prasīt lai virsmas atstarotu saskaņā ar Lamberta likumu. Pēdējais nozīmē, ka novērotājs no virsmas punkta saņem gaismas daudzumu, kas proporcionāls , kur ir virsmas normāles vektors redzamajā punktā, bet ir virziena vektors no šī punkta uz gaismas avotu.
Der atgādināt, ka, ja zīmējamās virsmas ir uzdotas ar to parametriskajiem vienādojumiem
tad normāles vektors parametriem u,v atbilstošajā punktā izsakāms ar simbolisko determinantu
Un vēl viens būtisks vienkāršojums – ņemot sakrītošus skatpunktu un gaismas avotu, izdodas izvairīties no ēnām.
Pielikums – Programmas veidotie attēli
Kompjūtera ģenerēts attēls, kas demonstrē reālistisku attēlu veidošanu.
Salīdzinot abus attēlus var pārliecināties, ka atkarībā no skatu punkta, mainās programmas ģenerētie attēli.
7. lekcija
Krāsu uztveres matemātiskās teorijas pamati
Vizuālais reālisms prasa arī reālistiski attēlotas krāsas. Lai noskaidrotu tādu iespējamību, noskaidrosim atbildes uz vairākiem svarīgiem jautājumiem:
kas ir krāsa?
Tas ir no redzamas virsmas gabaliņa saņemtās gaismas raksturojums. Vispilnīgāk to raksturo elektromagnētiskās enerģijas blīvuma spektrs:
Objektīvi, spektra funkcija var būt definēta uz visas viļņa garuma ass, taču krāsu uztverē vissvarīgākais ir subjektīvais faktors.
Subjektīvi, vispirms jāievēro, ka cilvēka (un vispār primātu) acs kā vizuālu signālu uztver elektromagnētisko enerģiju no ierobežota viļņu garuma diapazona: min 380nm, max 780nm. Diagrammas parasti ierobežo ar [400,700]. Un otrkārt, krāsu subjektīvo uztveri primātiem nodrošina 3 veidu receptori (t.s. vālītes), kas atrodas acs tīklenē. Šiem receptoriem ir dažādas spektrālās reakcijas (spectral response) – segmentā [min, max] definētas funkcijas S().
Viena receptora summāro reakciju nosaka lielums:
,
bet tīklenes apgabalā saņemtās gaismas subjektīvo krāsu – visu 3 veidu tajā izvietoto receptoru reakciju triplets – punkts -telpā: (1(C), 2(C), 3(C)). Matemātiski krāsa ir tieši šis punkts un nekas cits.
Divas krāsas C1() un C2() ir vizuāli identiskas tad un tikai tad, ja:
i(C1) = i(C2), i = 1,2,3.
Tā kā i savstarpēji netiek salīdzināti, tad spektrālo reakciju grafikus var zīmēt jebkurā mērogā. To aptuvenā forma ir sekojoša:
1 - sarkanās krāsas receptori
2 - zaļās krāsas receptori
3 - zilās krāsas receptori
pie <min un >max Si()0.
Skaidrs, ka eksistē bezgalīgi daudz vizuāli identisku krāsu starojumu ar dažādu elektromagnētiskās enerģijas spektrālo sastāvu. Par to var pārliecināties lietojot spektroskopu. Šo parādību sauc par krāsu metamerismu.
Mūsdienās, zinot šo primātu krāsu redzes mehānismu, nav jābrīnās, ka jau 19. gs. empīriski radās teorija, krāsu sintēzei no 3 pamatkrāsām. Galvenie autori: Jangs, Maksvels, Helmholcs.
Šodien ir pieejama precīza krāsu aprakstīšanas un reproducēšanas teorija. Tā vajadzīga poligrāfijā, fotogrāfijā, kino, televīzijā un, protams, arī datoru grafikā.
Šeit neliela filozofiska atkāpe.
Krāsu teorijas attīstībā vēsturiski vislielāko lomu spēlēja fenomenoloģiskais aspekts, ar krāsu metamerismu kā galveno pētāmo un izmantojamo parādību. Acs uzbūves triju veidu receptoru teorija nepavisam nav acīmredzama. Līdzīgi arī Keplera formulētie planētu kustības likumi bija tīri fenomenoloģiski un atklāti pirms Ņūtona gravitācijas teorijas izstrādāšanas, no kuras viņi tieši izriet un tādējādi kalpo šīs teorijas patiesuma pierādīšanai.
Tāpat es šodien gribētu krāsu teorijas pamatā likt nevis virkni dažādu novērojumu, bet gan postulēt receptoru teoriju un no tās secināt dažādas krāsu pasaules īpašības, kuras patiešām ir novērojamas un pārbaudāmas.
-telpas īpašības
Tātad, redzes sistēma realizē attēlojumu , kur
.
Lemma (krāsu sintēzes pamats)
Ja redzamas ir krāsas C1() un C2(), tad redzama ir arī krāsa
qC1+(1-q)C2, q[0,1].
Secinājums
Redzamajām krāsām atbilstošie -telpas punkti veido izliektu apgabalu.
Secinājums
Redzamo krāsu apgabals -telpā ir konuss.
Pierādījums: Redzama C nozīmē redzamu qC, q>0.
Tālāk izmantosim svarīgu novērojumu: divas krāsas C un qC (q>0) ir hromatiski identiskas, t.i. mūsu redze tās uztver kā vienu un to pašu krāsainības kvalitāti, bet ar atšķirīgu uztveramo gaišumu (spožumu). Mēs sakām, ka tām ir viena un tā pati krāsainība jeb hromatiskums. Baltās (pelēkās) gaismas krāsainības kvalitāti mēs raksturojasm kā krāsainības trūkumu. Baltā krāsa mums parādās tās pelēkuma pakāpēs, kuras sauc par ahromatiskajām krāsām.
Tātad visas hromatiski identiskās krāsas attēlojas uz viena un tā paša -telpas stara, kas no 0-punkta iet caur pozitīvo oktantu.
Līdz ar to visu redzamo krāsu kvalitatīvo raksturojumu var veikt aprobežojoties ar krāsu konusa un kādas piemēroti izvēlētas plaknes šķēluma aplūkošanu. Visi šai plaknei paralēlu plakņu šķēlumi ir krāsoti hromatiski identiski.
Bet, pirms to darām, vēl drusku pakavēsimies pie šī konusa.
Vektorfunkcijas hodogrāfs, ņemts par vaduli, nosaka konisku virsmu -telpā (veidules ir stari no 0-punkta). Uz šīs koniskās virsmas attēlojas visas tīrās (ar impulsveida enerģijas blīvumu) spektra krāsas ar visiem iespējamiem spožumiem (enerģijas līmeni).
Man ārkārtīgi interesants jautājums: Kā šī koniskā virsma ir izvietota attiecībā pret visu redzamo krāsu konusu?
Lemma:
Redzamo krāsu konuss -telpā ir tīro spktra krāsu koniskās virsmas izliektā čaula.
Pierādījums:
Nav grūti pārliecināties, ka jebkura konusa ar virsotni 0-punktā patvaļīgu vadules punktu radiusvektoru katra lineāra kombinācija ar nenegatīviem koeficientiem dod punktu, kas pieder šī konusa izliektajai čaulai. Bet integrālis, kas patvaļīgai krāsai piekārto -punktu ir šādu lineāru kombināciju (integrālsummu) robeža.
Literatūra liek pieņemt, ka tīro spektra krāsu koniskā virsma ir visu redzamo krāsu konusa virsmas daļa. Bet kāpēc?
Tā iznāk, ja šī koniskā virsma ir noteiktā veidā izliekta. Es varu iedomāties pāris izliektības nosacījumus, kurus vajadzētu apmierināt vektorfunkcijai .
Izliektības nosacījumi:
1) Katram 1, 2, 3 (min,max) vektori , , ir nekomplanāri (det(i (Si (k))0).
2) Tīro spektra krāsu koniskās virsmas visi punkti atrodas vienā pusē no katras veidules pieskarplaknes.
Tuvāki faktiskie krāsu pētījumi uzvedina uz tādām domām, ka man rādās augstākā mērā ticami, ka receptoru funkcijas Si (), i=1,2,3 šāda veida nosacījumus apmierina, vai, vismaz, ir ļoti tuvu tam.
Secinājums
Ja funkcijas Si (), i = 1,2,3 pakļaujas izliektības nosacījumam, tad tīro spektra krāsu koniskā virsma ir visu redzamo krāsu konusa virsmas daļa.
Pierādījums ir matemātisks vingrinājums ar nolūku parādīt, ka nevar eksistēt divas dažādas krāsas, kas attēlojas dažādās pusēs no koniskās virsmas.
Teorēma, kas seko no iepriekš teiktā.
Ja tīro spektra krāsu koniskā virsma ir visu redzamo krāsu konusa virsmas daļa, tad šī konusa šķēlums ar patvaļīgu plakni, kas neiet caur 0-punktu, ir sekojoša izskata:
Kā zīmējumā redzams, tad varam redzamo krāsu apgabala punktus arī iekrāsot to atbilstošajās krāsās.
Vispirms zinām, kā jākrāso tīro spektra krāsu līnijas punkti. Tad varam nokrāsot katru spektra krāsu līnijas divus punktus savienojoša nogriežņa iekšējos punktus, kuru krāsa ir galapunktu krāsu lineāra kombinācija, kas iegūstama, piemēram, ar divu lampu palīdzību.
Bet, kamēr mēs nezinām faktiskās funkcijas Si (), šis vingrinājums ir tīri abstrakts. Tomēr, visu redzamo krāsu apgabala izskatu var noteikt arī tīri empīriski, sistemātiski jaucot dažādas krāsas un skatoties.
No visa augšminētā izriet, ka visas redzamās krāsas var sadalīt 4 grupās:
• tīrās hromatiskās (spektra) krāsas
• ahromatiskās krāsas
• purpura krāsas
• pārējās krāsas.
No krāsu konusa (un hromatiskās diagrammas) īpašībām redzams, ka pārējās krāsas var iegūt sajaucot kādu spektra vai purpura krāsu ar ahromatisko krāsu. Skaidrs, ka nepieciešamā neahromatiskā krāsa atrodas uz krāsu apgabala robežas tās krustpunktā ar staru, kas no ahromatiskā punkta iet caur iegūstamās krāsas punktu.
Pielikumi
Labaratorijas darbu saturs
1. Grafiskās vides pieslēgšana programmai, dažādu ģeometriska rakstura grafisku
struktūru veidošana, t.sk. personīgie iniciāļi līniju formā.
2. Attēlu operācijas SetPixel, GetPixel, attēlu fragmentu pārsūtīšana (GetImage,
PutImage), rastra operāciju lietojums.
3. Darbs ar krāsu paleti: paletes uzstādīšanas operācijas, pelēko krāsu toņu
aprēķināšana, paletes nomaiņas efekti.
4. Darbs ar grafiskajiem 2D primitīviem: dažādas formas apgabali, t.sk. perso-
nīgie iniciāļi, aizpildījums ar standarta un savu rakstu, teksta izvadīšana,
"viewport" lietojums.
5. Taisnes nogriežņu izrindošana "antialiasing" tehnikā, parametrizētu līkņu
zīmēšana.
6. Vienkāršu telpisku virsmu plakanu projekciju un to izgaismojuma aprēķins,
attēla izveidošana, ievērojot objektu aizklāšanos.
Teorijas pārbaudes jautājumi
1:
. aprakstīt videoatmiņas saturu un saikni starp to un displeja ekrānu;
. aprakstīt vēlamo piksela formu un spīdēšanas intensitātes sadalījumu;
. paskaidrot, kā tiek sekmēta visu ekrāna virsmas punktu spīdēšana
vajadzīgajā intensitātē;
. paskaidrot, kas ir Maha joslas un kā tās traucē;
. aprakstīt situāciju, kad dažāda platuma līnijas izskatās vienādas;
. pamatot attēlu uztveres komforta nepieciešamību;
. definēt attēlu, nosaukt šo terminu dažādās valodās;
. nosaukt ar attēliem saistītās zinātniski-tehniskās disciplīnas;
2:
. aprakstīt paletes lietošanas priekšrocības un trūkumus;
. aprakstīt procedūru $BitBlt$ un tās lietošanu;
. definēt un ilustrēt rastra operācijas;
. sniegt rastra operācijas lietošanas piemēru;
. sniegt dažādas intensitātes ahromatiska starojuma paletes aprēķina
piemēru;
. sniegt dažādas nokrāsas purpura starojuma paletes aprēķina piemēru;
. aprakstīt paletes lietojumu momentānai attēlu nomaiņai;
3:
. paskaidrot metafaila jēdzienu datoru grafikā;
. sniegt piemēru attēla kodēšanas universālai metodei atmiņas ekonomijai;
. pārskaitīt 2D ģeometrisko primitīvu atribūtus;
. aprakstīt ainas un novērošanas apstākļu jēdzienus;
. nosaukt kopīgo un atšķirīgo 2D primitīvu izrindošanā un 3D objektu
atainošanā;
4:
. aprakstīt Brezenhema metodes ideju taisnes nogriežņa izrindošanai;
. aprakstīt taisnes nogriežņa robojumu nolīdzināšanas metodes ideju;
. aprakstīt krāsu paletes lietojumu taisnes nogriežņa robojumu
nolīdzināšanā;
. aprakstīt Lianga-Barski metodes ideju taisnes nogriežņa apcirpšanai;
. paskaidrot viduspunkta idejas nozīmi Brezenhema metodes realizācijā;
5:
. sniegt centrālās un paralēlās projekciju aprēķinu sakarības;
. aprakstīt kabineta un kavaliera projekcijas;
. sniegt sakarību starp punkta koordinātām pasaules un kameras koordinātu
sistēmās;
. raksturot sfēras izskatu dažādās projekcijās;
6:
. aprakstīt zināmo aizklāšanās noteikšanas metožu idejas;
. aprakstīt šķēlumu kontūru aizklāšanās noteikšanas ideju;
. aprakstīt virsmas rekursīvā apakšiedalījuma metodes ideju aizklāšanās
un izgaismojuma noteikšanā;
. paskaidrot Lamberta apgaismojuma likumu;
. piedāvāt parametriski definētas virsmas projekcijas lieluma
novērtēšanas kritēriju;
7:
. definēt krāsas ziņā identiskus starojumus un izskaidrot krāsu
metamerisma parādību;
. definēt krāsu metamerismu un ilustrēt to ar vismaz diviem dažādiem
piemēriem;
. ilustrēt krāsu metamerismu ar vismaz trim dažādiem piemēriem;
. aprakstīt telpiskā krāsu apgabala formu un krāsojumu;
. paskaidrot, kāpēc tīrās spektra krāsas hromatiskajā diagrammā
veido līniju;
. pierādīt, ka telpiskais krāsu apgabals ir izliekts konuss;
. aprakstīt mūsu acs krāsu receptoru (vālīšu) spektrālā jutīguma
vektorfunkcijas hodogrāfa novietojumu krāsu telpā;
8:
. paskaidrot, vai purpura starojumam pievienojot zaļo starojumu var
iegūt baltu vai dzeltenu gaismu, un, kāda krāsa rodas, to pašu darot ar
krāsvielām;
. definēt krāsas koordinātas primāro gaismas avotu sistēmā;
. paskaidrot polāro koordinātu idejas pievilcību krāsu uzdošanā;
. paskaidrot, kāpēc nekāds galīgs primāro gaismas avotu kopums nevar
nodrošināt visu krāsu sintēzi;



Komentāri