Rendereléssel kapcsolatos alapfogalmak

Sok fogalom ugyan már nem szorul magyarázatra a fotórealisztikus vagy művészeti rendereléssel kapcsolatban az építészek számára, de azért nem árt összeszedni néhányat a teljesség igénye nélkül.  Más lesz a fontos egy teljes munkaidőben látványterveket készító múvész és egy kis irodában tervező építészként dolgozónak, aki nem szeretné kiszervezni a látványtervezési feladatot, hanem maga készíti el azt sokkal kevesebb időráfordítással. Én elsősorban a második csoportnak szánom ezt a bejegyzést.

Itt van tehát a lista a legfontosabbakkal:

Offline vs. Real-time rendering

A real-time renderingnél a renderelőmotor néhány ezredmásodperc alatt készíti el a képet, ami lehetővé teszi a valós idejű navigálást a modellben.
Ezzel ellentétben az offline módot a nagyobb számításigényű, de valósághű képek generálásához használjuk, ami egyelőre nem elég gyors, hogy real-timenak hívjuk.

Path tracing vs. Ray tracing

Ray tracing a képet úgy generálja le, hogy a nézőpontból (kamera) a kép összes pixeljére vetít egy sugarat, így leképezve a modellt. Az így vetített sugár eléri a modellelemet, ahol az adott pontban megvizsgálja, hogy a fényforrás által megvilágított vagy árnyékos felületről van-e szó (first bounce). A valósághű árnyékokat (soft shadow), transzparens anyagok fényjátékát (caustic) és visszaverődő fényeket (global illumination) csak mimikálni tudja. Ezeket külön algoritmus “csalja össze”.
Ray tracinget offline rendering esetén alkalmazzák, mivel nagy a számításigénye a megfelelően valósághű eredmény eléréséhez.

Path tracing lényegében a ray tracing egyik alcsoportja. A path tracer a ray tracerrel ellentétben, figyelembe veszi az indirect megvilágítást is, úgy ahogy a valóságban van. A kiinduló sugár visszaverődik a modellben található felületekről mindaddig, amíg el nem éri a fényforrást vagy ki nem lép a modellezett térből, így lesz valósághű az eredmény a global illumination külön számításigénye nélkül. Ez a módszer a modellünk egy pontjában számított fényértéket és a felület fizikai fényvisszaverő tulajdonságát (BRDF) veszi figyelembe ahhoz, hogy meghatározza a nézőpontba visszaérkező sugár fényértékét, ami majd megjelenik a képen.

CPU rendering vs. GPU rendering

CPU renderelés esetén a számítógépünk alaplapjának órajele (GHz) befolyásolja a renderelés gyorsaságát, illetve a magjainak száma is abban az esetben, amikor a művelet több szálon is tud futni. A renderelés gyorsasága rengeteg egyéb faktoron is múlik, de ha jól optimalizált renderelő motor beállításokkal és megfelelő CPU-val dolgozunk, akkor számottevően nem lassítja majd a munkafolyamatot, hanem inkább segíti a tervezést, mivel könnyebben tudunk döntést hozni a valósághűen ábrázolt anyagokat és formákat illetőleg. A megfelelő CPU kiválasztásához a CINEBENCH benchmark adatok nyújtanak segítséget.

GPU renderelés esetén ugyancsak számít a CPU mag órajele viszont itt az egy mag maximális teljesítményét (max-core-clock) kell nézni. Például az Intel i7 7700K-t 4,2GHz órajellel érdemes GPU worstationnel kombinálni (forrás: www.cgdirector.com). A renderelés első fázisaként az adatot (geometria és textúra) előkészíti a motor és ehhez a CPU-t használja.
Használhatunk egynél több GPU-t is a gyorsabb rendereléshez, de csak akkor lesz hatékonyan kihasználva, ha CPU PCIE Lane megfelelő ehhez (például a drágább grafikus kártyák 16x PCIE 3.0 Lane-t igényelnek).
Ezen kívül a grafikus kártya vRAM, azaz videó memóriája befolyásolja még a GPU renderelőmotor teljesítményét. Az az adat, ami nem fér a VRAM-be swappelni fog, vagy a rendszer memóriába, vagy a merevlemezre, ha van a renderelő motornak out-of-core módja. Ez lényegesen lelassíthatja a számítást.

Unbiased vs. biased render engine

Röviden fogalmazva a különbség az, hogy míg a biased renderelőmotor nem használ optimalizálást a számítás során, az biased motorok viszont igen.
Az unbiased rendering rendkívül számításigényes módszer. Amennyiben módot ad rá a szoftver, hogy minden lehetséges beállítást lásson a felhasználó, akkor sem tud feltétlenül szemmel láthatóan jobb eredményt produkálni, mivel az optimalizálás nagyon jól meg van oldva általában.
Valamennyi renderelőmotor így a biased kategóriába tartozik, ahol a beállítások a felhasználó számára vannak optimalizálva, szerencsére 🙂 . Az, hogy mennyi beállítási lehetőséget ad a usernek a szoftver az mindegyiknél eltérő.
A V-Ray engine például lehetőséget ad rá, hogy unbiasedként és biasedként is használjuk.

Physically-Based Rendering (PBR)

Fizikai valóságnak megfelelő renderelés esetén a fényt teljesen a valóságnak megfelelően kezeli a renderelőmotor. Gondoljunk itt az energiamegmaradásra, amikor nem kapsz több fényt egy adott ponton, mint amennyi a fényforrás. Fizikailag korrekt módon szóródik a fény a PBR esetén és az anyagtulajdonságok is a valóságnak megfelelőek. Különböző renderelőmotorok különböző módon nevezik el ezeket az anyagtulajdonságokat. Például: diffuse (azaz albedo), normal map, alpha channel. specular (azaz reflection) map