Last ned demoen og kildekode
TILBAKE TIL TUTORIAL INDEX
I den siste opplæringen vi lagt til en 3D-modell til skjermen. Men fordi det var ingen lys satt opp, vi måtte deaktivere belysningen på modellen helt, ellers ville det ha dukket opp svart. I denne opplæringen vil vi legge til en lys til scenen
ApplicationManager.h /ApplicationManager.cpp
ApplicationManager får to nye variabler:. Lys 1 og tavla. Lyset er et punkt i motivet som er en lyskilde. Det er ikke direkte synlig i seg selv - lyset er kun synlig på overflaten av en 3D-modell.
Så vi kan se hvor lyset er i scenen vil vi skape en oppslagstavle, som er en flat rektangel som alltid vender mot kameraet, og feste lys som et barn av tavla.
Ved å feste lyset som et barn av tavla lyset vil flytte hvor enn de tavla trekk. Denne typen foreldre /barn vedlegget er ganske vanlig i 3D-motorer, som det tillater en gruppe av objekter som skal endres på en gang. Du kan bruke dette til å legge ved et sverd til en spillere hånd for eksempel, og deretter sverdet ville feste med spilleren som den beveget seg rundt.
I oppstartsfunksjonen gjør vi en liten modifikasjon til kallet til addCameraSceneNodeFPS funksjon. Ninja 3D-modellen er ganske liten, og kameraet beveger seg altfor fort i forhold til modellen. Så her har vi overstyrt noen av standardparameterne for å bremse kameraet ned.
Vi legger ninja 3D-modellen til scenen ved hjelp av den samme koden som i forrige tutorial. Den eneste forskjellen er at vi nå ikke lenger deaktivere belysning.
Vi deretter opprette en ny oppslagstavle ved å ringe ISceneManager addBillboardSceneNode funksjon.
Igjen vi overstyre noen av standardparameterne for å gjøre tavla litt mindre, og mer i tråd med størrelsen på ninja 3D-modellen.
Vi kaller setMaterialType funksjon og forsyne EMT_TRANSPARENT_ADD_COLOR flagget for å vise at fargene i teksturen som er tilordnet billboard legges til scenen, som effektivt gjør de sorte deler av teksturen gjennomsiktig.
setMaterialTexture Funksjonen blir så brukt til å tildele en tekstur. Den første parameteren definerer strukturen lag. Vi leverer 0 fordi vi tilordner dette som den første (og eneste) tekstur.
Den andre parameteren er teksturen i seg selv, som i dette tilfellet er lastet fra en bitmap fil.
Det siste vi gjør er disable belysning for tavla, akkurat som vi gjorde med 3D-modellen i den siste opplæringen. Dette sikrer at tavla vil vises på ful