Har Du Problem Med DirectX Spotlight-exemplet?

Reparera din dator nu.

  • Steg 1: Ladda ner och installera ASR Pro
  • Steg 2: Öppna programmet och klicka på "Skanna PC"
  • Steg 3: Klicka på "Reparera nu" för att starta reparationsprocessen
  • Få fart på din dator idag med denna enkla och gratis nedladdning.

    Jag hoppas att detta fantastiska blogginlägg hjälper dig om du har sett DirectX Spotlight-exemplet.

    ##Introduktion##I den här handledningen kommer vi att veta hur man skapar en höjdpunkt som. Vi använder denna projektor för den viktigaste kameran. Denna handledning är baserad på egos webbkamerahandledning.##Spotlight-faktorer##Spotlights visar helt enkelt enheter, men med en riktning. Av denna anledning, låt oss direkt skapa den speciella minimipunktsimplementeringen genom att helt ärligt lägga till en riktning och en enda utvärdering som representerar storleken på projektorns kon.##Riktning##Detta representeras av en peel off-vektor, även kallad dir i denna användbara kod, där det första värdet kan vara bakåtknappens axel, tidsvärdet är ymca-axeln, tillsammans med det tredje värdet är z . axel. Vilja##Kon##Konen representeras placerad i vår strategi av en vandrande betydelse som kallas konen. Detta värde är vanligtvis ett specifikt mått på vår förklarade ekvation. Genom att uppdatera detta ändrar vi utan tvekan området för spolen på vår strålkastare. En lägre tid motsvarar en större kon, och även ett högre värde motsvarar varje mindre kon.##SpotLight Equation##Kom ihåg att spotlights kan skapas av punktljuskällor, för att vi bara behöver lägga till en kraftfull ytterligare ekvation som avger ljus som finns i en specifik riktning genom spolen, hellre än i riktningar som en nivåljuskälla.##Definiera ljuskonen##Här är bara en ny situation som vi kommer att lägga till i vår markörfil. Detta utvecklar en spole genom vilken vår lätta och bärbara kommer att lysa.Först måste vi hitta positionen för vår riktning kring ljuskällorna och den önskade ljusriktningen i pixeln. Vi använder produktindelningen för att hitta den.Sedan vill jag påpeka att vi använder max execute för att säkerställa att våra anställda inte har en skalär produkt som är mindre än 0,0f. Bakom denna position av frontljusen kommer det att finnas en punkt som är en hel del än 0,0f, därav de starka strålarna inte bara i de första frontljusen, utan även i strålkastaren.Slutligen använder vi alla lugg med en lätt spolvärdefunktion samt en stor exponent. Detta fullbordar varje ekvation varför definierar vår ljuskon.finalColor *= pow(max(dot(-lightToPixelVec, light.dir), 0.0f), light.cone);##Lätt struktur##Som du lätt kan se har vårt företag ändrat den speciella förenklade strukturen och faktiskt lagt till två moderna medlemmar. En för styret och så en för denna justerbara kon. strukturerande ljus Glansig() ZeroMemory (detta, storleken på (Ljus)); XMFLOAT3pos; flytande zon; XMFLOAT3 katalog; konisk flottör; XMFLOAT3at; flottör 2; XMFLOAT4 miljö; XMFLOAT4 översättningar; ;##Beskrivning med avseende på huvudljuskällan##Här brukar vi beskriva vår sötma. Vi satte företagets position till 0,1,0 (ingen stor rabatt eftersom vi brukar uppdatera tanken senare), dess intervall till 1000.0f (så att vi nu inte har "klippt" kontrollvarningsskylten på något sätt), dess att0 förfall till 0. 4f (så att det här ljuset inte blir ganska starkt när det är nära kameran skulle jag säga) och att1 med 0.02f avsevärt kan vi hitta en konstant bred variation av dämpning, då ställer vi in ​​hela konen till det bästa värdet här vid 20.0f.Tänk på att allt om dem potentiellt kan redigeras för att få dig att passa dina behov. Du kommer snabbt att se hur flexibel den egna belysningen kan vara av dessa typer av skäl. Lek med dem hur de fungerar.light.pos = XMFLOAT3(0.0f, 1.0f, 0.0f);light.dir = XMFLOAT3(0.0f, 0.0f, 1.0f);ljus zoom = 1000.0f;light.cone 20.0f;light.att = XMFLOAT3(0,4f, 0,02f, 0,0f);omgivande ljus = XMFLOAT4(0,2f, 0,2f, 0,2f, 1,0f);light.diffused = XMFLOAT4(1,0f, 1,0f, 1,0f, 1,0f);##Uppdatera alla positioner för lamporna##Eftersom människor runt om i världen är Vi kommer att använda dessa frontljus som vår nya ficklampa, så skulle vi vilja peka riktningskonen när den riktning som den bästa kameran anses peka, med andra ord, i dessa riktningar av vår punkt- och skjuta kameran gör en ansträngning vektor. Vi vill också att facklan ska inta denna position utanför vår kamera, för detta bör vi verkligen använda positionsvektorn som är associerad med att arbeta med vår kamera. Detta kommer att uppdateras på varje scen, så vi kommer att infoga den här koden i updateScene-funktionen.light.pos.x-kompatibel XMVectorGetX(campPosition);light.pos.y = XMVectorGetY(campPosition);light.pos.z = XMVectorGetZ(campposition);light.dir.x betyder XMVectorGetX(camTarget) - light.pos.x;light.dir.y = XMVectorGetY(camTarget) - light.pos.y;light.dir.z = XMVectorGetZ(camTarget) : light.pos.z;##Effektfil##Vi introducerar vår nya HLSL ekerkroppsstruktur, nu med en formningskurs för att inte tala om ett flytvärde för din redan befintliga avsmalning. bygga ljus float3pos; svävande zon; float3 katalog; konisk flottör; float3att; Float4 miljö; skingra float4; ;Här är din nya PS-scen som är i centrum för uppmärksamheten. Vi har listat texten som den gör ovan, så om ditt företag tror att du inte har fattat det kan du läsa vidare. Kolla in den som lanserades ovan och kolla in den väl i kommentarerna. Den enda senaste fördelen med pixelskuggningen dyker upp från den nya riktningsekvationen tillsammans med botten. float4 PS (ingång VS_OUTPUT): SV_TARGET { input.normal är lika med normalize(input.normal); float4 dispel = ObjTexture.Sample(ObjSamplerState, input.TexCoord); slutfärg float3 är lika med float3(0.0f, 0.0f, 0.0f); // Skapa en viss position mellan den lilla vektorns arrangemang och pixelns position float3 lightToPixelVec = light.pos - input.worldPos; // Hitta avstånd med hjälp av ljusposition och pixelposition float d är lika med mått (lightToPixelVec); // Lägg till omgivande ljus float3 finalAmbient innebär diffus * light.ambient; // Om pixeln är för långt, returnera pixeln med färgat omgivande ljus if (def > light.range) Return Float4(finalAmbient, diffuse.a); // Konvertera lightToPixelVec till en beskrivande enhetshemvektor //riktning p tagen från position lampa

    Få fart på din dator idag med denna enkla och gratis nedladdning.