Pontfény
Használata
A szín (color) és színintenzitás (intensity) mellett további paramétereket is meg kell adnunk.
- A legfontosabb a fényforrás helye a térben (position).
- A fény hatása gyengül a maximális távolsághoz közeledve, a távolabbi objektumokat egyre kevésbé képes megvilágítani. A csökkenés mértékét a decay attribútummal szabályozhatjuk. Alapértéke 1. A dokumentáció szerint a fizikailag korrektebb érték a 2.
- A distance attribútummal megadhatjuk, maximálisan milyen távolságra ér el a fény. Ha a távoli objektumokra már kicsi lenne a hatása, ne számoltassuk feleslegesen a GPU-t. Az alapértelmezett érték 0, ami azt jelenti, hogy nincs távolságkorlát.
- A fényforrást ki/be kapcsolhatjuk a visible logikai attribútummal.
- Az r73 verzió óta képes árnyékot is vetni. Ennek részleteit külön tárgyaljuk.
var pLight = new THREE.PointLight( 0x00ffff, 1 );
pLight.position.set( 0, 0, 15 );
scene.add( pLight );
Ne felejtsük el, hogy itt sem jó a MeshBasicMaterial!
Feladat
Módosítsuk az előző példaprogramot!
- Ambiens helyett pontfényt használjunk!
- Figyeljük meg, hogy az eredmény szebb lesz, a forgó kocka oldalai más színárnyalatot kapnak annak függvényében, milyen szögben érkezik rájuk a fény!
- Következő lépésként adjunk hozzá ambiens fényt is és vizsgáljuk meg a kettő együttes hatását!
- A programhoz vezérlőpanelt is adhatunk, amellyel a fenti paramétereket interaktívan módosíthatjuk.