From BlenderWiki

Jump to: navigation, search

I modsætning til Diffusion, er Specular reflektion synsvinkel-afhængig. Ifølge Snells Lov, vil lys som rammer en spejlende overflade blive reflekteret i den vinkel som spejler lysets indfaldsvinkel, hvilket altså gør synsvinklen meget vigtig. Specular-reflektion former skarpe, klare lyspunkter, som får overfladen til at se skinnende ud (Specular-reflektion).

Specular-Reflektion.

I virkeligheden er Diffusion og Specular reflektion genereret af nøjagtig den samme proces som lysspredning. Diffusion er dominant på en overflade som har så mange små ujævnheder i overfladen, med hensyn til bølgelængden, at lyset reflekteres i mange forskellige retninger fra hvert enkelt lille stykke af overfladen, med bittesmå ændringer i overfladevinklen. Specular reflektion derimod, dominerer på en overflade som er glat, med hensyn til bølgelængden. Dette indebærer at de spredte stråler fra hvert punkt på overfladen er rettet næsten i den samme retning, i stedet for at blive spredt diffust. Det er bare et spørgsmål om størrelsen af detaljerne. Hvis overfladeujævnheden er meget mindre en bølgelængden af det indkommende lys, vil det se flat ud og opføre sig som et spejl.

Bemærk

Det er vigtigt at betone, at specular reflektionsfænomenet som er diskuteret her, ikker er den reflektion vi ville se i et spejl, men rettere lysets højdepunkter vi ville se på en glinsende overflade. For at opnå den spejlende reflektion, ville man være nødt til at bruge den interne ray-tracer. Se nærmere beskrivelse andetsteds i manualen.


Som diffusion har specular reflektion en masse forskellige implementeringer, eller specular shaders. Igen, hver af disse implementeringer har to fælles parametre: Specular farven og specular-energien, i et område [0-2]. Dette tillader effektivt mere energi at blive spredt som specular reflektion end det indfaldende energi. Som resultat heraf, har man at et materiale har mindst to forskellige farver, en diffuse-, og en specular-farve. Specular-farven er normalt sat til helt hvid, men den kan sættes til alle tænkelige værdier for at obnå interessante effekter. De fire specular shadere er:

  • CookTorr - Denne var Blenders eneste specular shader op til version 2.27. Dog var det ikke muligt, separat at sætte diffuse og specular shaders og der var kun en simpel materialeimplementering. Udover de to standard-parametre, bruger denne shader en tredje, hardness, som regulerer bredden af specular-lyspunkterne. Jo laver hardness, des bredere lyspunkter.
  • Phong - Dette er en anderledes matematisk algoritme, som bruges til at udregne specular lyspunkter. Den er ikke meget forskellig fra CookTorr, og den er styret af de samme tre parametre. Den er dog mere fokuseret på plastik.
  • Blinn - Dette er en mere 'fysisk' specular shader, bestemt til at matche Oren-Nayar diffuse-shaderen. Den er mere fysisk fordi den tilføjer en fjerde parameter, et brydningsindeks (IOR - index of refraction) (Refr), til de tre førnævnte. Denne parameter bliver egentlig ikke brugt til at udregne strålers brydning (hertil behøves en ray-tracer), men til korrekt at udregne specular reflektionsintensitet og udvidelse via Snells Lov. Hårdhed og specular parametre giver en adskillig større grad af frihed.
  • Toon - Denne specular shader passer til Toon diffuse-shaderen. Den er designet til at producere de skarpe, ensformige lyspunkter til tegneserier. Den har ikke hardness, men nærmere Size og Smooth-parametre som bestemmer specular-lyspunkternes udvidelse og skarphed.
  • WardIso - Denne specular shader er hovedsaligt fokuseret på plastikmaterialer. Sammenlignet med Phong-shaderen, er denne shaders specular-lyspunkt mere defineret. Den bruger en supplerende parameter, rms.

Takket være denne fleksible implementering, som fortsat separerer diffuse- og specular-fænomenerne, giver Blender os mulighed for nemt at kontrollere hvor meget indfaldende lys, som rammer et punkt på en overflade, skal diffus-spredes, hvor meget som skal reflekteres via specular, og hvor meget der er absorberet. Dette afgør altså i hvilke retninger (og i hvilke mængder) lyset reflekteres fra en given lyskilde; det er fra hvilke kilder (og i hvilke mængder) lyset bliver reflekteret mod et givent punkt på synsplanet. Det er meget vigtigt at huske at materialefarven kun er ét element i rendering-processen. Farven er det egentlige produkt af lysets farve og materialefarven.







Redirects to fix

  • Manual.dk/PartIII/Diffuse Shaders → Doc:DK/Manual/Materials/Properties/Diffuse Shaders