Jellemzői és használata
A spekuláris megvilágítási komponenssel csillogó, fényt visszatükröző felületű objektumok modellezésére van lehetőség. Az ambiens, diffúz és spekuláris komponensek együttesen adják a Phong megvilágítási modellt, amit a MeshPhongMaterial objektummal reprezentálhatunk Three.js-ben.
A spekuláris megvilágítási komponens esetén az számít, hogy a pont-kamera irány hogyan helyezkedik el a fény felszínről való visszatükröződésének irányához képest. Ha a tárgy jó fényvisszaverő képességgel rendelkezik (pl. fémes tárgyak, tükör, stb.), akkor ha ez a kettő egymás közelében van, akkor a fényforrás visszatükrözött színét látjuk, nem a tárgyét. Ahogy ez a szög növekszik, egyre inkább a tárgy diffúz megvilágított színe jelenik meg. Matt objektumok esetén a visszaverődés irányában lévő kamera sem fogja a fény színét látni, mert a fény a felszínen több irányban szóródik.
A specular attribútummal a csillogás színét, a shininess attribútummal pedig a csillogás mértékét adhatjuk meg [0, 100] tartományban (matt-fényes). A shininess 0 értéke megszünteti a csillogó hatást. A specular alapértéke 0x111111 (erősen sötétszürke), a shininess 30. Ez matt-szerű hatást kelt. Erősebb csillogást magasabb intenzitásúra állított spekuláris színnel (pl. 0xffffff fehér) érhetünk el.
Ha a metal attribútumot igazra állítjuk, akkor kicsit másként számolódik a szín, hogy fémszerűbb hatást kapjunk. Nagy különbséget nem igen fogunk észrevenni.
A Phong árnyalás azt jelenti, hogy a megvilágítási egyenleteket a síkidom minden belső képpontjában is kiértékeli, nem csak a csúcspontokban. A beesési szög számításához szükséges normálvektor irányt a csúcspontok normálvektorainak interpolációjával számítja ki. Számításigényesebb, mint a diffúz-Lambert modell, de látványosabb is.
Használatai példa
let material = new THREE.MeshPhongMaterial( {
color: 0xa0adaf,
shininess: 80,
specular: 0x111111,
side: THREE.FrontSide,
wireframe: false
} );
Dokumentáció interaktív példával