Blender anyagok
A Blender-ben a geometriákhoz anyag objektumokat rendelhetünk, ahol sokféle beállítást meg tudunk adni.
Fontos megérteni, hogy a Blender céljai mások, mint a Three.js modellezésé. A Blender esetében fontos a fotorealisztikus megjelenítés, így más, összetettebb megvilágítási modelleket használ. Emiatt az anyagjellemzők közül csak egy szűk részhalmazt tud a Three.js kezelni. Felesleges tehát összetett, a Blender-ben jól megjelenő anyagösszeállítást készíteni, ha a célunk a Three.js-ben is használható anyag megjelenés előállítása. Még egyszerű beállítások esetén is máshogy jelenik meg az objektum Blender-ben és Three.js-ben.
A Blender-ben az árnyalásra műveletsorokat hozhatunk létre. A Blender főmenüben a Shading menüpontot választva a munkaterület alsó részén láthatjuk annak pillanatnyi felépítést, és dobozokkal reprezenetált programrészek hozzáadásával és paramétereik összekötésével testre szabhatjuk. A tapasztalat az, hogy az OBJ exportálás akkor működik, ha a Use Nodes kapcsolót bekapcsolva hagyjuk (ez az alapértelmezés), és a Surface paraméternél az alapértelmezett Principled BSDF árnyalót használjuk. Itt a Base Color paraméter az anyag diffúz jellemzőjét jelenti. A Specular egy skalár számérték lehet, az OBJ fájlba egy ennek megfelelő szürkeárnyalatos szín kerül kiírásra, vagyis a spekuláris színt itt nem tudjuk tetszőlegesen megadni. Alternatív megoldásként átírhatjuk az értékeket a kiexportált OBJ fájlban, vagy felülbírálhatjuk az érték módosításával a Three.js programunkban. Az Emission paraméterrel az objektum saját fényét állíthatjuk be, az Alpha pedig az átlátszóságot jelenti.
Megjegyzés: Hiába érhetők el többek között Diffuse és Specular árnyalók is a Surface paraméternél, azokat kiválasztva a beállított színek nem kerülnek mentésre az OBJ fájlba a Blender 2.80 verzió esetén. A fejlesztők szerint ez tervezési irányelv, nem hiba.
Hivatkozások:
- Blender 2.8 Beginner Textures and Materials Tutorial (YouTube videó)
- Blender Principled BSDF dokumentáció
- Blender Principled BSDF (Gordon Blander összefoglalója)
- Documentation: explain that Blender 2.80 Exporting a textured OBJ with any shader other than Principled BSDF will result in an MTL without map_Kd pointing to texture file