Skip to main content

Hva er en sjablongbuffer?

I datagrafikkprogrammering er en sjablongbuffer et minneområde som kan trekkes til og brukes i forhold til andre grafikkbuffere for å oppnå forskjellige effekter, eller for å maskere områder i en scene slik at de ikke blir behandlet eller gjengitt.En sjablongbuffer er en per-pikselbuffer som ligner på et svart-hvitt bilde, der hvert sted i bufferen kan inneholde en verdi som oftest er 1 byte lenge på det meste, men som kan være så liten som 1 bit.Bufferen ble opprinnelig designet for å fungere som en ekte eller falsk maske, omtrent som en stencil fra den virkelige verden, slik at områder av en scene kunne bli tilslørt eller ignorert ved å sette verdiene til forskjellige regioner i sjablongen Buffer til en annen verdi enn null.Det er en rekke bruksområder for bufferen utover enkel maskering, inkludert å tegne et skyggevolum, implementere glorier rundt objekter eller lokalisere områder der gjenstander overlapper hverandre.I mange tilfeller opprettholdes bufferen i grafikkminnet på et grafikkort, slik at det kan nås raskt under gjengivelse.

Brukes på en tredimensjonal (3D) scene da toppunktene beveget seg gjennom grafikkledningen.Hvis plasseringen av 3D -toppunktet, en gang rastert, relatert til et område av sjablongbufferen som ikke ble satt til null, kunne den toppunktet ignoreres og resten av rørledningsbehandlingen hoppet over.Dette tillot programmerere en måte å gjengi bare små deler av en scene eller å gjengi et bilde til en uregelmessig formet utsiktsport, for eksempel en refleksjon i et lite speil i en større scene, der formen på speilet trekkes som en sjablong iBuffer, og deretter blir refleksjonen trukket gjennom den formen. Memory-bekymringer førte til at den opprinnelige formen for en sjablongbuffer var et rutenett med enkeltbitsverdier der hver piksel i bufferen bare kunne være sant eller usant.Etter hvert som grafikkort utviklet seg, ble de fleste buffere i stand til å holde en full byteverdi på hvert pikselsted, slik at programmerere kunne ha mer komplekse verdier på et sted.Dette kan tillate at bufferen kan brukes til å oppdage områder der objekter overlapper hverandre, noe som kan gjøres ved å øke verdien av bufferen på et sted hvis et objekt okkuperer den pikselen på skjermen når det rasteres.Etter denne operasjonen vil verdien av hver pikselplassering i bufferen være lik antall objekter som krysser piksel på en skjerm. En av de mest populære bruksområdene for en sjablongbuffer skaper volumskygger.Dette kan gjøres ved først å gjengi en scene med veldig svak belysning, slik at alt ser ut til å være skyggelagt.Deretter blir det foretatt beregninger for å bestemme plasseringen av alle polygonoverflatene i scenen som er opplyst av en lyskilde, og disse formene blir overført til sjablongbufferen.Scenen blir gjengitt igjen som om hvert objekt er fullstendig opplyst og blandes gjennom sjablongformene på den skyggelagte scenen, og skaper effektivt et bilde som ser ut til å inneholde objekter med skygger.