Unity – 3D projekt


Při práci ve 3D prostoru pracuje Unity s kartézskou soustavou souřadnic, kde každá pozice je definována jako struktura Vector3 se třemi osami (X,Y,Z).

  • Osa X (Červená): Horizontální osa (vlevo / vpravo).
  • Osa Y (Zelená): Vertikální osa (nahoru / dolů).
  • Osa Z (Modrá): Osa hloubky (dopředu / dozadu).

Globální vs. Lokální prostor (World vs. Local Space)

V 3D grafice je kritické rozlišovat mezi dvěma orientacemi:

  • World Space: Absolutní souřadný systém celé scény. Počátek (0,0,0) je neměnným středem světa.
  • Local Space: Souřadný systém z pohledu samotného objektu. Pokud se postava otočí o 90∘ doprava, její směr „dopředu“ (lokální osa +Z) nyní směřuje do globální osy +X.

Meshes a Materials

Mesh Filter a Mesh Renderer

  • Do Unity můžete importovat hotové modely z externích programů (Blender, Maya) ve formátech .fbx nebo .obj.
  • Pro rychlé testování (prototypování) nabízí Unity základní primitivy: Cube (kostka), Sphere (koule), Capsule (kapsle), Cylinder (válec) a Plane (rovina).

Materials a Shaders

Samotný model je jednobarevný nebo neviditelný, pro zobrazení v editoru potřebuje Materiál.

Materiál je postavený na Shaderu (program pro grafickou kartu). Unity využívá primárně Standard Shader (v URP/HDRP architektuře známý jako Lit Shader), který je založen na fyzikálně přesném vykreslování (PBR – Physics-Based Rendering). Mezi hlavní vlastnosti materiálu patří:

  • Albedo (Base Color): Základní barva nebo textura objektu.
  • Metallic & Smoothness: Určuje, jak moc se objekt chová jako kov a jak ostré jsou odrazy na jeho povrchu.
  • Normal Map: Speciální textura, která pomocí iluze odrazu světla simuluje drobné detaily a nerovnosti (vrypy, vrásky), aniž by se musel zvyšovat počet polygonů.

Fyzika (PhysX)

3D fyzikální engine v Unity (založený na technologii NVIDIA PhysX) simuluje reálné chování těles, gravitační síly, tření a srážky.

Rigidbody

Komponenta Rigidbody dává objektu fyzikální vlastnosti. Klíčové parametry jsou:

  • Mass: Hmotnost objektu
  • Use Gravity: Pokud je zaškrtnuto, na objekt neustále působí gravitační zrychlení scény.
  • Is Kinematic: Pokud tuto volbu zapnete, objekt přestane reagovat na fyzikální síly a gravitaci, ale stále s ním můžete hýbat pomocí skriptů a ostatní fyzikální objekty od něj budou odrážet.
Collidery

Collidery definují fyzický tvar objektu pro potřeby simulace kolizí. Nemusí přesně odpovídat vizuálnímu modelu (z důvodu úspory výkonu).

  • Primitivní collidery (Box, Sphere, Capsule): Výpočetně extrémně levné. Složité objekty (např. auto) se často skládají z kombinace několika těchto základních tvarů.
  • Mesh Collider: Použije přímo 3D síť daného modelu pro dokonalé kolize (např. členitý terén, jeskyně). Je však velmi náročný na výkon.

Světla a Kamery

V Unity rozlišujeme 4 základní typy komponenty Light:

  1. Directional Light: Simuluje slunce. Svítí nekonečně daleko a paralelně ze všech směrů. Pozice objektu ve scéně nehraje roli, důležitá je pouze jeho rotace, která určuje světelnost (denní dobu, teplo světla).
  2. Point Light: Svítí ze jednoho bodu všemi směry do omezené vzdálenosti (Range).
  3. Spot Light: Kuželové světlo, svítí z bodu v definovaném úhlu a směru.
  4. Area Light: Plošné světlo emitované z obdélníku nebo disku. Používá se výhradně pro statické pečení světla (Lightmapping).

3D Kamera

Hlavní kamera (Main Camera) má ve 3D standardně nastaven režim Projection na Perspective. To znamená, že objekty, které jsou dále od kamery, se zdají být menší, což vytváří přirozený vjem lidského oka. Klíčovým parametrem je Field of View (FOV) – úhel záběru kamery.