Språk :
SWEWE Medlem :Inloggning |Registrering
Sök
Encyclopedia gemenskap |Encyclopedia Svar |Submit fråga |Ordförråd Kunskap |Överför kunskap
Föregående 1 Nästa Välj Sidor

Skugg kartor

Översikt

Skuggkartor (Shadow kartläggning) läggs till i skuggan av den tredimensionella datorgrafik process. Konceptet utvecklades ursprungligen av skuggkartan Lance Williams 1978 i "kasta skuggor på ytan," som presenteras i detta dokument. Sedan dess har denna metod använts i förväg utförda scener i realtid och även en hel del spel enheter samt avancerade dataspel. I Pixars RenderMan om användning av skuggkartteknik, även i Toy Story detta spel använder också tekniken.Buffert eller djupet hos bildpixel belysning i jämförelse med djupet av texturen finns lagrad i form, om pixeln är beräknad på detta sätt är inom området av den utstrålade ljuss därigenom alstra en skugga.

Även kallad ljuskartor (Ljus Mapping) - Det här är ett sätt att uppnå realistisk belysning och skuggeffekter utan att situationen bildhastigheten. Shadow map editor kan du placera valfritt antal statiska ljuskällor i scenen kommer det förberäknas optiskt flöde (ljusflöde) och statiska skuggor för varje yta. De flesta moderna kommersiella 3D-spel kommer att använda skuggkartan.

Princip skugga och skugga karta

Tittar ut från ljuskällan läget, att kunna se alla föremålen är i ljuset bland föremålen men dessa saker kommer att vara i skuggorna bakom detta. Detta är den grundläggande principen i skuggkartan generationen. Belysning scen rendering, kan ytan bevarande se djupet av objektet, är det, skuggkartan. Därefter, den normala vid varje punkt i scenen och djupet kartan jämförs att bedöma om varje punkt i scenen för att kunna se ljuset och därigenom gör det normala scenen.

För realtids skuggor, är noggrannheten hos denna teknik värre än skuggan av kroppen, men beroende på den teknik som krävs för varje specifik tillämpning av fyllningstiden i vissa fall skuggkartan är en snabbare val. Dessutom, ingen extra skugga karta mall cache, och kan ändras för att skapa mjuka skugg gränser. Emellertid med skuggan av kroppen är olika, är noggrannheten begränsad av skuggkartan upplösning.

Algoritmer Sammanfattning

För rendering skugga scen kräver två steg för att slutföra. Det första steget är att skapa skuggkartan sig själv, är det andra steget att applicera skuggkartan till platsen. Beroende på tillämpning och antalet olika ljuskällor, kan skugga scen rendering process kräver två eller flera ritningsprocess.

Shadow map generation

Det första steget är att göra den scen ur ljuskällan. För en punktkälla, är synfältet ett perspektiv tillräckligt bred perspektivprojektion. För riktat ljus som solen, behovet av att använda ortogonala projektion.

Enligt denna konverteringsresultat utvinning, bevarande djupbufferten. Eftersom endast relaterad till djupet av information, är det ofta att undvika att ändra färgen buffert och beräknar inte belysning och textur samt för att spara tid. Denna djupkarta är ofta sparas som en textur på grafikkortets minne.

När ljus i scenen eller objektet ändras, är det nödvändigt att på nytt uppdatera djupkartan, men i andra situationer kan även upprepas med användning av en djupkarta, t ex endast fråga om en kamera rörelse. Om det finns flera ljuskällor i scenen, måste du skapa en djupkarta för respektive ljuskälla.

I många implementeringar av djupkartan i syfte att spara tid spend omritning kan scenen endast göras i en del av föremålet för att alstra en skuggkarta. För att lösa konflikten djupet (Z-fighting) det aktuella djupet med djupet på ytan dras för nära till nästa generation, och kan också vara i skuggan kartan rendering objekt läggs till ett djup av belysning offset. En annan förverkligandet av denna effekt är klippt alternativa föremål framför, bakom endast genererar skugga rendering objekt FIG.

Skuggning scener

Det andra steget är att använda skuggkartor i enlighet med det ordinarie scener perspektivprojektion. Denna process är uppdelad i tre huvuddelar, den första är att identifiera koordinaterna för objektet i scenen belysning, är den andra att samordna med motsvarande värden för den djupkarta för jämförelse, är den sista positionen baserad i skuggorna eller under belysning Ändamålen dras.

Belysning rumsliga koordinater

Den objektpunkt som skall jämföras med djupet karta måste positionskoordinater för objekten i scenen att omvandlas till den motsvarande positionen i ljuset utrymme kan omvandlingen åstadkommas genom matrismultiplikation. Positionen för ett objekt på skärmen koordinattransformation kan bestämmas genom konventionell, men måste genereras för att lokalisera det andra läget av föremålet i koordinatsystemet av ljuset.

Världens koordinatsystem omvandling till ljus utrymme koordinatsystem transformationsmatris med det första steget i transformationsmatrisen för rendering skuggkartan är densamma, det är produkten i OpenGL model-view-och projektions matriser. Detta genererar en uppsättning av homogena koordinater, om synlig genom perspektiv division (perspektiv division) till en normaliserade enhets koordinater, varvid varje komponent (x, y, z) hamnar mellan -1 till 1. Det finns många sätt att skalas och offset till den andra matrismultiplikation mellan värdet -1 för att omvandla ett värde från 0 till 1 mellan djupkarta av en textur karta eller mer vanligt förekommande. Denna skalning processen kan slutföras innan perspektiv division

Om du använder en skuggning eller andra tillägg grafikhårdvara för att slutföra arbetet, då detta utförs vanligen vid spetsen nivå av omvandling, är det resulterande värdet interpoleras mellan den andra punkten, och sedan till den del av fragment bearbetning.

Djup karta testet

Efter att hitta koordinaterna för belysning utrymme, x och y i allmänhet motsvarar läget av djupet karta konsistens, z motsvarar den respektive djup, så att djupet kan jämföras med FIG.

Om z är större än djupet karta värde som lagras i det motsvarande läget, så att objekt skyms av andra objekt, är den punkt markerad som misslyckats, kommer den att visas i ritningen processen skuggan tillståndet, annars kommer den att dras in i den belysta tillstånd.

Om positionen faller utanför djupkarta, då programmet kommer att behöva bestämma ytan eller använd standard belysa Skuggan är, som vanligtvis dras in upplyst tillstånd.

I genomförandet shader är denna process sker i fragment nivåer. Dessutom, när man väljer den hårdvara som används i typ uren kartan lagring vid behov OBS: Om du inte kan interpoleras, då skuggan visas taggiga gränser genom att använda en högre skugg karta upplösning för att minska detta fenomen.

Enligt graden av närhet med skugga gräns ett intervall av värden snarare än att använda ett enkelt pass eller misslyckas med sådana ändringar kan göras smidigare skugga gräns.

Shadow mapping teknik kan också modifieras för att skapa textur upplyst område, så att du kan simulera effekten av projektorn. Den ovan med titeln "projicerade synlighet scen djup karta" av bilden är ett sådant exempel.

Draw scen

Motiv med skuggor kan dras på flera olika sätt. Om det finns tillgängliga programmerbara shader, kan djupet kartprov göras i skräp shader. Efter den första generationen av skuggkartan, vilket kan göras en gång eller lyser utifrån skuggan rendering objektet.

Om det inte finns någon skugga av verktyg som kan användas, oftast måste använda en del hårdvarutillägg såsom GL_ARB_shadow etc. skuggkartan testet, de är oftast inte tillåtet att välja mellan två belysningsmodell, och kräver mer rendering process:


Föregående 1 Nästa Välj Sidor
Användare Omdöme
Inga kommentarer
Jag vill kommentera [Besökare (18.218.*.*) | Inloggning ]

Språk :
| Kontrollera kod :


Sök

版权申明 | 隐私权政策 | Copyright @2018 World uppslagsverk kunskap