Ryškumo gylis yra fotografijos poveikis sukelia diafragmos ir židinio ilgio. Labai įdomus straipsnis apie šią temą buvo paskelbtas istockphoto.com . Ji suteikia patikimą gylio užuomina dvimatis, numatomą medžiagos. Kitaip tariant: Tai daro nuotraukos atrodo 3D, o jie vis dar 2D projekcijas.
Iš dabartinės kartos vaizdo aparatūros, tai įmanoma padaryti išgalvotas po apdorojimo poveikį aikštelė - be minkštų šešėlių ir judesio blur, gylio (DOF), gali būti, kad dažniausiai naudojamas tikslu padidinti vaizdo kokybę. Yra platus aprėpties įvairiais metodais kuriant malonus DOF poveikį - paprastas Google "lauko gylį Shader" davė man apie 74.000 lankytojų. Dėl demo norėjau rašyti, aš nusprendė naudoti paprastą, alfa kanalų grindžiamą požiūrį, nes jis yra paprastas, greitas ir atrodo gražiai.
Idėja yra paprasta: Jei jūs jau turite šešėlius, kad nėra dalykų, pavyzdžiui, per-pixel apšvietimu, tiesiog įdėti išsamią informaciją į gautą spalvą Alpha kanalu. Visa tai turi būti padaryta antroje perdavimą: padaryti nuotrauką iš naujo ir ištrinti su ar tinkamas branduolys įvaizdį. Kaip branduolys, aš pasirinko Puasono diskų filtras su CPU precomputed duomenys - tai mažiau "nelygus", nei naudojant paprastą kvadratinę branduolį, suteikiant geriau vaizdo kokybę mažiau mėginių. Norėdami išvengti nemalonių Halo aplink vietovėse, turinčiose aukštus gylio skirtumai kraštų, rezultatas nėra tiesiog neryškus vaizdas, bet židinio nuotolis taip pat kontroliuoja, kiek miglotas vaizdas duomenys patekti į galutinį rezultatą.
vec4 vColor = texture2D (sceneMap, gl_TexCoord [0] xy.); plaukti fBlurAmount = abs (vColor.a * 2,0-1,0); plaukti fTexel = 16.0/mapSize; vec4 vResult; for (int i = 0; i <16; + + i) { vResult + = texture2D (blurMap, gl_TexCoord [0] xy + fBlurAmount * fTexel * poisson [i] xy * poisson [i] z...); } vResult / = 16,0; gl_FragColor = mišinys (vColor, vResult, fBlurAmount);
Žinau, kad šis metodas yra gana ribotas - kuo greičiau alfa kanalas reikalingas atsižvelgiant į kitus poveikius (kaip įkaitinta perdavimą arba greičio), jis negali būti naudojamas, kaip šis. Bet vistiek, aš laimingas su rezultatais. ![]()
| |

















































