Skip navigation

Anyagok

Előismeret

Mint már említettük, a tárgyak színe a fény és az anyag kölcsönhatásából áll elő. A fényekkel megismerkedtünk az előző részben, ahol érintőlegesen már találkoztunk az anyagokkal. Most részletesebben tárgyaljuk ezek közül az alábbiakat.

  • Material ősosztály és alap anyagjellemzők (MeshBasicMaterial).
  • Lambert (diffúz) megvilágítás Gouraud árnyalással (MeshLambertMaterial).
  • Phong (csillogó, vagy spekuláris) megvilágítás Phong árnyalással (MeshPhongMaterial).

A megértést segíti, ha tisztában vagyunk a megvilágítási modell és árnyalás fogalmakkal. Ezeket az oldal végén, a kiegészítő anyagrészben mutatjuk be.

További anyagtípusok

A Three.js további anyagtípusokat is definiál, amikkel itt részletesen nem foglalkozunk. A dokumentációban utána lehet nézni az alábbiaknak.

  • MeshDepthMaterial: A tárgy felszínpontjait a kamerától való távolság függvényében színezi.
  • MeshNormalMaterial: A tárgy felszínpontjait a felszín normálvektor irányának megfelelően színezi.
  • MultiMaterial: Ennek segítségével egy tárgy lapjainak külön anyagjellemzőket adhatunk.
  • MeshStandardMaterial: Próbáljuk ki! :-)
  • ShaderMaterial: Saját shader kódot írhatunk az anyagjellemzőre.

Megvilágítási modell és árnyalás (kiegészítő anyag)

A fényhatások jobb megértéséhez célszerű tisztázni az alapfogalmakat.

A megvilágítási modell definiálja a számításokat, amelyekkel kialakul egy objektumpont képernyőn megjelenő színe. Gyors megjelenítést igénylő esetekben jellemzően az alábbi két klasszikus modellt valósítják meg:

  • A Lambert megvilágítás esetén az egyenletben megjelenik a fény színe, az anyag színe és a fény felszínre esési szöge. Több fényforrás esetén minden fényre kiértékelődik az egyenlet, és az így kapott színeket elegyíti a rendszer. Ezt hívják diffúz megvilágításnak is.
  • A Phong megvilágítás a Lambertnél leírtak mellett figyelembe veszi azt is, hogy a megfigyelő (a kamera) hol található a felszínről visszaverődő fényirányhoz képest. Amennyiben a visszaverődő fény a kamerába jut, a fény színét látjuk, eltérő irányok esetén egyre inkább a Lambert szín érvényesül. Spekuláris, vagy csillogó megvilágításként is hivatkoznak rá.

A megvilágítási modellek azt mondják meg, hogy egy adott pontban milyen lesz a szín. Kérdés még, hogy ezeket az egyenleteket milyen pontokban, és ott milyen paraméterekkel értékeljük ki? Az az árnyalás témaköre. Itt háromféle megoldás jelenik meg.

  • Egyszínű árnyalás esetén minden háromszöghöz 1 darab színt határozunk meg a megvilágítási modell alkalmazásával, például a háromszöget definiáló csúcspontok közül az elsőhöz tartozót, és ezt a színt használjuk a teljes háromszög kiszínezéséhez. Kevés számítást igénylő, nagyon gyors módszer, de az eredmény csak akkor elfogadható, ha eleve egyszínű háromszögeket szeretnénk modellezni.
  • Gouraud árnyaláskor a megvilágítási modell a háromszög mindhárom csúcspontjára kiértékelődik, a háromszög belső pontjai pedig ezen színértékek interpoláltjaként számítódnak. Vagyis a csúcspontoktól való távolság függvényében a három szín elegye adja a kitöltési színt. Nagy méretű háromszögek esetén a lokális fényhatások (például reflektorfény) torzulhatnak.
  • A Phong árnyalás adja a legszebb eredményt, ott ugyanis a háromszög belső pontjaiban is történik megvilágítás számítás. Ebben az esetben a fény felszínre esési szögének számítása történik a csúcspontokban definiált normálvektorok interpoláltjaival számolva. Normálvektorokkal a következő témakörben foglalkozunk majd.