Principy 3D modelování

Editovat
Note

Modelování mnohoúhelníkových sítí (dělení povrchu, retopologie, high-poly vs. low-poly model). Grafický materiál (BSDF, albedo, metallic, roughness mapy). Texturování povrchů (mapování, unwrap, kontrola kvality mapování). Animace 3D modelu (dopředná a inverzní kinematika, rigging, skinning).

VV035, VV036

Model

Model je komplikované slovo s mnoha významy:

model, noun

  1. a usually miniature representation of something
    also: a pattern of something to be made

  2. a: a type or design of product (such as a car)
    b: a type or design of clothing

  3. a system of postulates, data, and inferences presented as a mathematical description of an entity or state of affairs
    also: a computer simulation based on such a system

  4. archetype

  5. an example for imitation or emulation

  6. one who is employed to display clothes or other merchandise

  7. a person or thing that serves as a pattern for an artist
    especially: one who poses for an artist

  8. version

  9. a description or analogy used to help visualize something (such as an atom) that cannot be directly observed

  10. structural design

  11. an organism whose appearance a mimic imitates

  12. animal model

  13. (dialectal british): copy, image

  14. (obsolete): a set of plans for a building

— Mirriam-Webster

Nicméně v kontextu modelování 3D postav je model soubor (např. ve formátu .fbx, .obj či .blend) obsahující mesh. Nejblíže má tím pádem významu č. 1.

Mnohoúhelníkové sítě

Polygon

Mnohoúhelník.

(Polygon) mesh

Mnohoúhelníková síť.

High-poly mesh

Model s velkým množstvím polygonů. Typicky se jedná o model, který je určen např. pro pre-renderované cutscény a nikoliv pro hraní.

Bývájí výsledkem sculptingu v programech jako je ZBrush či Mudbox.

vph08 high poly mesh
Obrázek 1. Arachnid humanoid bust by Alexander Tobler
Low-poly mesh

Model s malým množstvím polygonů. Typicky se jedná o model, který je vložen do hry a je tedy výhodné, aby bylo co možná nejjednodušší jen vykreslit.

vph08 low poly mesh
Obrázek 2. Triceratops by Base Mesh Store
Low-poly stylizace

Stylizace, kdy je model záměrně vytvořen s nízkým množstvím polygonů, protože to vypadá cool. Je to taková skoro 3D analogie pixelartu.

vph08 low poly
Obrázek 3. Low Poly Worlds by Pavel Novák

Topologie a modifikace

Tip
Pro základní topologické pojmy viz 3D modelování a datové struktury.
Meshflow

Logické uspořádání hran a polygonů v mnohoúhelníkové síti.

Note
Nepovedlo se mi tenhle termín najít jinde než ve slidech pro VV035/VV036. Zdá se mi, že je to v zásadě synononymum pro topologii.
Quad topologie

Při modelování (nejen postav) se snažíme, aby všechny polygony byly quady (čtyřúhelníky). Je to zejména proto, že subdivision na nich funguje lépe, a 3D artisti dokáží lépe odhadnout, co se s nimi při takových operacích stane.

Organic modeling

Při modelování postav většinou vycházíme z nějaké anatomie z reálného světa. Snažíme se vyjít z toho, jak jsou v reálném světě kosti, svaly, apod. umístěny. V důsledku toho je například důležité mít edge loops okolo ramen, úst, a boků. [1]

Nejde jen o to vyrobit anatomicky věrný model, ale i o to, aby se model dobře rigoval a animoval. Správná topologie přispívá k tomu, aby se model plynule deformoval při animaci, aniž by se některé části modelu pohybovaly nerealisticky a rozbily imerzi.

vph08 organic modeling
Obrázek 4. Flowing edge loops and good topology are crucial for rigging and animation [3]
Retopologie

Postup, kdy začneme s high-poly modelem, který jsme nejspíš vysculptovali bez ohledu na topologii, a ručně / automaticky na něm postavíme nový low-poly model se správnou topologií. Tohle nám umožňuje se nejprve soustředit na to, co za model chceme, a pak teprve na jeho technické provedení. [1]

Retopologie se používá hlavně proto, aby byl výsledný model použitelný pro animaci, UV unwrap a real-time rendering. Nová síť by měla mít smysluplné edge loops, přiměřený počet polygonů a hustotu geometrie tam, kde je potřeba deformace nebo detail. Detaily původního high-poly modelu se pak typicky přenesou pomocí texture bakingu do normal, height nebo ambient occlusion map.

Dělení povrchu / subdivision surface

Postup, kdy se mnohoúhelníková síť opakovaně zjemňuje a vyhlazuje podle daného pravidla. V modelování se často používá jako nedestruktivní modifikátor: autor pracuje s jednodušší kontrolní sítí a software z ní dopočítá hladší povrch.

U quad topologie je typický Catmull-Clark subdivision, který po dělení zachovává pravidelnou čtyřúhelníkovou strukturu lépe než trojúhelníkové sítě. Dělení povrchu se hodí pro organické tvary, ale může ztrácet ostré hrany; ty se kontrolují podpůrnými edge loopy, crease vahami nebo bevely.

Box modeling

Proces, kdy začneme od default cube, subdividneme ji a pokračujeme odtamtaď. [1]

Point to point modeling

Začneme od jediného bodu / polygonu. Tahle metoda je užitečná, když očekáváme, že retopologie modelu bude náročná, jelikož nám dává větší kontrolu nad meshflow. [1]

Materiály a textury

Typický 3D model se skládá nejen z meshe, ale i z materiálů, které jsou v herních enginech typicky reprezentovány texturami (mapami).

Note
Typy map souvisí s physically based rendering (PBR), kterému se částečně věnuje otázka Pokročilá počítačová grafika.
Grafický materiál

Popisuje, jak povrch interaguje se světlem. V real-time grafice materiál obvykle není jeden obrázek, ale sada parametrů a textur, které shader používá při výpočtu osvětlení.

BSDF (bidirectional scattering distribution function) obecně popisuje, kolik světla se z povrchu rozptýlí nebo odrazí z příchozího směru do odchozího směru. V praxi se v herních enginech často používá PBR materiál s jednoduššími parametry: albedo/base color, metallic, roughness, normal, případně ambient occlusion, emission a opacity.

UV unwrapping

Tvorba 2D reprezentace 3D modelu — projekce jeho polygonů na 2D plochu. Toto mapování se posléze využívá při texturování. Proces zahrnuje označování seams — hran, podél kterých se bude model "rozřezávat". Nevhodná volba seams vede k deformaci textur.

vph08 uv unwrapping
Obrázek 5. Result of unwrapping Suzanne [7]
Kontrola kvality mapování

Po unwrapu se používají kontrolní textury, typicky checkerboard nebo barevná UV grid textura. Pomáhají odhalit natažení, smrštění, otočení nebo špatnou hustotu texelů. Důležitá je i texel density — aby části modelu se stejnou vizuální důležitostí měly podobné rozlišení textury.

Diffuse / albedo map

Základní barva povrchu bez zapečeného osvětlení a stínů. V PBR workflow se častěji říká albedo nebo base color, protože textura má popisovat vlastnost materiálu, ne výsledek konkrétního nasvícení.

Detail map

Detaily, které mají být na modelu vidět zblízka.

Emissive / glow / incandescence / self-illumination map

Jak moc model "svítí" ve tmě. Používané pro modely, na které není aplikováno osvětlení scény.

Bump / displacement / height map

Detaily na povrchu. Typicky se používá dohromady s teselací.

Normal map

Normála na povrchu každého pixelu. Má podobný vizuální efekt jako displacement mapa, ale nemění geometrii, jen směr normály používaný při výpočtu osvětlení. Díky tomu lze na low-poly modelu zobrazit detaily z high-poly sculptu.

vph08 normal map
Obrázek 6. A normal mapped model, the mesh without the map, and the normal map alone (by Eric Chadwick)
Metallic / roughness map

Metallic mapa určuje, které části povrchu se chovají jako kov. Roughness mapa určuje mikroskopickou drsnost povrchu: nízká roughness dává ostré zrcadlové odlesky, vysoká roughness odlesky rozmazává. V PBR materiálech se často ukládají do kanálů jedné ORM/RMA textury společně s ambient occlusion.

Ambient occlusion map

Zapečený odhad toho, jak moc je dané místo povrchu zakryté okolní geometrií. Používá se pro jemné kontaktní ztmavení, hlavně ve štěrbinách, záhybech a pod převisy.

Light map

Zapečené statické osvětlení. Typicky se týká spíš celých scén než postav.

Texture baking

Proces přenosu detailů z (typicky high-poly) modelu na jiný (typicky low-poly) model. High-poly detaily jsou "zapečeny" do textur. Modelovací software typicky vrhá po modelu velké množství paprsků a výsledek ukládá do textur. [4]

Kostra modelu

Kostra / skeleton / rig

Hierarchická struktura kostí (bones), jenž popisují, kde je možné model ohnout a animovat.

vph08 rigging
Obrázek 7. Rig of Atlas from Portal 2 by Oliver Simmonet

Kostra je obvykle strom transformací. Pohyb rodičovské kosti se přenáší na potomky, takže například transformace ramene ovlivní předloktí i ruku. U 3D animace tak oddělujeme povrch modelu od animační struktury, která ho ovládá.

(Skeletal) rigging

Proces tvorby kostry.

Rigging is making our characters able to move. The process of rigging is we take that digital sculpture, and we start building the skeleton, the muscles, and we attach the skin to the character, and we also create a set of animation controls, which our animators use to push and pull the body around.

— Josh Petty
Forward kinematics (FK)

Animace se řetězí od parent kosti k child kosti. Pohneme-li rodičovskou kostí, pohnou se i její děcka. Klouby se hýbou po křivkách. [5]

Inverse kinematics (IK)

Animujeme jen koncové kosti. Pohyb rodičovských kostí je dopočítán. Klouby se hýbou po přímkách. [5]

T-pose / reference pose

Defaultní póza pro charakter při riggování.

vph08 tpose
Obrázek 8. T-pose by vkstudio
Skinning

Úprava kostry tak, aby se povrch modelu správně deformoval při animaci. [1] Například v Blenderu se skinning dá provést automaticky nebo nastavením envelopes — objemů obsahujících ovlivněné vertexy — a jejich vah.

Zdroje

Další zdroje