hogyan adhatunk vizet egységesen


Válasz 1:

A vízkészítés elég nehéz, ha a semmiből akarja megtenni. Elmagyarázom, hogyan, de először hadd javasoljam, hogy használjam a Unity szokásos eszközeiben található víz előregyártott elemeket, vagy töltsek le egy eszközt az Asset boltból. Oké, a jó dolog. Figyelem: sok technikai szakzsargon lesz.

A víz előállításához mindössze 4 dologra van szükség: háló, árnyékoló, normál térkép és szkript.

(1) Háló A háló maga a víz, de árnyékoló és írás nélkül nem fog víznek látszani, alapvetően lapnak. Ezt meglehetősen könnyű elkészíteni, a négy közül mindenképpen a legkönnyebb. Egyszerű modellezési program segítségével készíthet egy hálót a választott formának.

(2) (3) Árnyékoló és normál térkép Az árnyékoló az, ahol a varázslat nagy része megtörténik. Az árnyékolóban meg kell határoznia több tulajdonságot, hogy a háló vízszerű legyen.

A normál térképek óriási szerepet játszanak az árnyékolókban, különösen a vízárnyékolókban. A vízárnyékoló normál térképe határozza meg a hullámok alakját.

Példa a víz normál térképére. A FilterForge jóvoltából.

Sok esetben olyan tárgyak esetében, amelyek nem víz, megúszhat egy normál térképet. A vízhez kettő kell. A két normál térkép (szkript segítségével) különböző irányokban mozog. (Három kanonikus irányminta létezik). A két térképnek különböző skálája is van, és lehet azonos vagy különböző sebességű. A hullámskála meghatározza az egyes hullámok skáláját a normál térképen. A hullámskála és a hullámsebesség az árnyékolóban van beállítva.

A vizet is reagálnia kell a fényre, amelyre az árnyékolóban vigyáz. A valódi víz képes visszaverni vagy megtörni a fényt, így ennek utánzásához ki kell számolnia a fényvisszaverő és a törésmutatókat arra vonatkozóan, hogy a fény hol esik a felületi normálokhoz képest. Ezeket néha Fresnel-feltételeknek nevezik (ejtsd: "frennel").

Példa arra, hogy a fény visszaverődik-e egy normál térképről (ez a bejegyzés kedvéért a bump térképezés megvalósítása). OGLDev bírósági ítélete.

Bonyolultabbá válik, ne aggódjon. Amikor a fény áthalad a vízen, és így megtörik, a víz mélyebben színeződik. Tehát érdemes ezt figyelembe venni a legjobb eredmények elérése érdekében.

Emellett attól függően, hogy honnan nézi, a reflexió és a törésmutatók változhatnak. Egy jó árnyékolónak lehetnek funkciói a világ és a kamera közötti tér mátrix transzformációinak kiszámítására a fresnel viszonyok szögeinek megtekintéséhez

(4) Script A szkript a kulcs, amely elindítja az autót. Átvitt értelemben mozgásba hozza az árnyékolót, és szó szerint mozgásba hozza a normál térképeket. A szkriptben szükség esetén néhány árnyékoló értéket menet közben is módosíthat.

A forgatókönyv sok kamerával is foglalkozik. Egyrészt kezelnie kell azt az esetet, amikor a kamera belemegy a vízbe. De ami még ennél is fontosabb, meghívhatja a mátrix transzformációs függvényeket a szögek megtekintéséhez.

Példa a késztermékre. A Unity blog jóvoltából.


Importálja a szokásos eszközöket, a víz előregyártott elemeket, és nézze át az árnyékoló kódot és a C # kódot.

PS Ha igazán technikává akar válni, akkor be kell építenie a felhajtóerőt.