Polygonální modelování - Polygonal modeling

V 3D počítačové grafice je polygonální modelování přístup k modelování objektů reprezentací nebo sbližováním jejich povrchů pomocí polygonových sítí . Polygonální modelování je vhodné pro vykreslování pomocí skeneru, a je proto metodou volby pro počítačovou grafiku v reálném čase . Alternativní metody reprezentace 3D objektů zahrnují povrchy NURBS , dělící povrchy a reprezentace založené na rovnicích používané v paprskových značkovačích .

Geometrická teorie a mnohoúhelníky

Základní objekt používaný v modelování sítí je vrchol , bod v trojrozměrném prostoru. Dva vrcholy spojené přímkou ​​se stávají hranou . Tři vrcholy, spojené navzájem třemi hranami, definují trojúhelník , což je nejjednodušší polygon v euklidovském prostoru . Složitější polygony lze vytvořit z více trojúhelníků nebo jako jeden objekt s více než 3 vrcholy. Čtyřstranné polygony (obecně označované jako čtyřkolky) a trojúhelníky jsou nejběžnější tvary používané v polygonálním modelování. Skupina polygonů, spojených navzájem sdílenými vrcholy, se obecně označuje jako prvek . Každý z polygonů tvořících prvek se nazývá tvář .

V euklidovské geometrii určují rovinu jakékoli tři nekolineární body . Z tohoto důvodu trojúhelníky vždy obývají jednu rovinu. To však nemusí nutně platit pro složitější polygony. Plochá povaha trojúhelníků usnadňuje určení jejich normálu povrchu , trojrozměrného vektoru kolmého na povrch trojúhelníku. Povrchové normály jsou užitečné pro určení transportu světla při sledování paprsků a jsou klíčovou součástí populárního stínovacího modelu Phong . Některé vykreslovací systémy používají normály vrcholů namísto normálů tváří k vytvoření lépe vypadajícího osvětlovacího systému za cenu většího zpracování. Každý trojúhelník má dvě normály tváří, které od sebe směřují do opačných směrů. V mnoha systémech je za platný považován pouze jeden z těchto normálů - druhá strana polygonu je označována jako zadní plocha a může být viditelná nebo neviditelná v závislosti na přáních programátora.

Mnoho modelovacích programů přísně nevynucuje geometrickou teorii; například je možné, aby dva vrcholy spojovaly dva různé okraje, které zabírají přesně stejné prostorové umístění. Je také možné, aby dva vrcholy existovaly na stejných prostorových souřadnicích nebo dvě tváře existovaly na stejném místě. Takové situace obvykle nejsou žádoucí a mnoho balíčků podporuje funkci automatického čištění. Pokud však automatické čištění není k dispozici, je nutné je odstranit ručně.

Skupina polygonů, které jsou spojeny sdílenými vrcholy, se označuje jako síť . Aby síť vypadala při vykreslování atraktivní , je žádoucí, aby nebyla protínající se , což znamená, že polygonem neprochází žádná hrana. Dalším způsobem, jak se na to dívat, je, že síťovina se nemůže sama probodnout. Je také žádoucí, aby síť neobsahovala žádné chyby, jako jsou zdvojené vrcholy, hrany nebo plochy. Pro některé účely je důležité, aby byla síť různorodá - tj. Aby neobsahovala otvory nebo singularity (místa, kde jsou dvě různé části sítě spojeny jediným vrcholem).

Konstrukce polygonálních sítí

Ačkoli je možné vytvořit síť ručně zadáním vrcholů a ploch, je mnohem běžnější vytvářet sítě pomocí různých nástrojů. Pro konstrukci polygonových sítí je k dispozici široká škála softwarových balíků 3D grafiky .

Jednou z nejpopulárnějších metod konstrukce sítí je modelování boxů , které využívá dva jednoduché nástroje:

  • Rozdělit nástroj se rozdělí plochy a hrany na menší kousky přidáním nových vrcholů. Čtverec by se například rozdělil přidáním jednoho vrcholu do středu a jednoho na každý okraj, čímž by vznikly čtyři menší čtverce.
  • Nástroj pro vysunutí se aplikuje na plochu nebo skupinu ploch. Vytvoří novou plochu stejné velikosti a tvaru, která je s každou ze stávajících hran spojena plochou. Provádění operace vysunutí na čtvercové ploše by tedy vytvořilo krychli spojenou s povrchem v místě plochy.

Druhá běžná metoda modelování je někdy označována jako modelování inflace nebo extruzní modelování . Při této metodě uživatel vytvoří 2D tvar, který sleduje obrys objektu z fotografie nebo kresby. Uživatel pak použije druhý obrázek předmětu z jiného úhlu a vysune 2D tvar do 3D, opět podle obrysu obrazce. Tato metoda je obzvláště běžná pro vytváření tváří a hlav. Obecně platí, že umělec vymodeluje polovinu hlavy a poté duplikuje vrcholy, převrátí jejich polohu vzhledem k nějaké rovině a spojí dva kusy dohromady. Tím je zajištěno, že model bude symetrický.

Další běžnou metodou vytváření polygonální sítě je vzájemné propojení různých primitiv , což jsou předdefinované polygonální sítě vytvořené modelovacím prostředím. Mezi běžné primitivy patří:

  • Kostky
  • Pyramidy
  • Válce
  • 2D primitivy, jako jsou čtverce, trojúhelníky a disky
  • Specializovaní nebo esoteričtí primitivové, jako je Utah Teapot nebo Suzanne, maskot opice Blender .
  • Sféry - Sféry jsou běžně zastoupeny jedním ze dvou způsobů:
    • Icospheres jsou icosahedrony, které mají dostatečný počet trojúhelníků, aby se podobaly kouli.
    • UV koule se skládají ze čtyřúhelníků a připomínají mřížku viděnou na některých koulích - čtyřúhelníky jsou větší v blízkosti „rovníku“ koule a menší v blízkosti „pólů“, nakonec končí v jednom vrcholu.

Nakonec existují některé specializované metody konstrukce sítí s vysokým nebo nízkým detailem. Modelování založené na skicách je uživatelsky přívětivé rozhraní pro rychlou konstrukci modelů s nízkými detaily, zatímco 3D skenery lze použít k vytváření sítí s vysokými detaily téměř na základě stávajících objektů reálného světa téměř automaticky. Tato zařízení jsou velmi drahá a obecně je používají pouze výzkumní pracovníci a profesionálové z oboru, ale mohou generovat vysoce přesné submilimetrické digitální reprezentace.

Operace

Existuje mnoho operací, které lze provádět na polygonálních sítích. Některé z nich zhruba odpovídají manipulacím s 3D objekty v reálném světě, zatímco jiné ne. Mezi operace polygonální sítě patří:

  • Vytvoření - Vytvořte novou geometrii z jiného matematického objektu
    • Loft - Generujte síť vytvořením tvaru podél dvou nebo více profilových křivek
    • Extrude - Vytvoří povrch zametáním křivky profilu nebo plochy mnohoúhelníku podél přímé nebo lineární čáry
    • Otočit - vygeneruje síť otáčením (otáčením) tvaru kolem osy
    • Pochodové kostky - algoritmus pro konstrukci sítě z implicitní funkce
  • Binary Creations - Vytvořte novou síť z binární operace dvou dalších sítí
    • Přidat - booleovské přidání dvou nebo více sítí
    • Odečíst - Booleovské odečtení dvou nebo více sítí
    • Intersect - Booleovská křižovatka
    • Union - Booleovská unie dvou nebo více sítí
    • Připojit - Připojte jednu síťku k druhé (odstranění vnitřních povrchů)
    • Zkosení - Vytvořte zkosený povrch, který hladce spojuje dva povrchy
  • Deformace - přesouvejte pouze vrcholy sítě
    • Deformovat - Systematicky přesouvat vrcholy (podle určitých funkcí nebo pravidel)
    • Weighted Deform - Přesouvání vrcholů na základě lokalizovaných vah na vrchol
    • Morph - pohybujte vrcholy hladce mezi zdrojovou a cílovou sítí
    • Ohyb - Pohybem vrcholů objekt „ohnete“
    • Twist - Pohybem vrcholů objekt „otočíte“
  • Manipulace - Upravte geometrii sítě, ale ne nutně topologii
    • Přemístit - Představte další geometrii na základě „výtlakové mapy“ z povrchu
    • Zjednodušit - Systematicky odstraňovat a průměrovat vrcholy
    • Rozdělit - Představte nové vrcholy do sítě rozdělením každé plochy. Například v případě Catmull-Clark může mít dělení také vyhlazující účinek na sítě, na které je aplikován.
    • Konvexní trup - generuje konvexní síť, která minimálně uzavírá danou síť
    • Vyjmout - Vytvořte otvor na povrchu sítě
    • Steh - Zavřete otvor na povrchu sítě
  • Measurements - Vypočítejte nějakou hodnotu sítě
    • Objem - výpočet 3D objemu sítě (diskrétní volumetrický integrál)
    • Povrchová plocha - Vypočtěte povrchovou plochu sítě (integrál diskrétního povrchu)
    • Detekce kolizí - Zjistěte, zda došlo ke srážce dvou složitých sítí v pohybu
    • Fitting - Sestavte parametrický povrch (NURBS, bicubic spline) jeho přizpůsobením k dané síti
    • Vzdálenost bodu a povrchu - vypočítá vzdálenost od bodu k síti
    • Vzdálenost čáry a povrchu - vypočítá vzdálenost od čáry k síti
    • Intersection Line -Surface - Vypočítejte průsečík čáry a sítě
    • Průřez - vypočítá křivky vytvořené průřezem roviny sítí
    • Těžiště - Vypočítejte těžiště, geometrický střed sítě
    • Těžiště-vypočítá těžiště, bod vyvážení sítě
    • Circumcenter - Vypočítejte střed kruhu nebo koule obklopující prvek sítě
    • Incenter - Vypočítá střed kruhu nebo koule ohraničené prvkem sítě

Rozšíření

Jakmile je polygonální síť zkonstruována, je třeba provést další kroky, než bude užitečná pro hry, animace atd. Model musí být namapován na texturu, aby na povrch přidal barvy a texturu, a musí mu být přidělena kostra pro animaci. Síťům lze také přiřadit váhy a těžiště pro použití ve fyzické simulaci .

Chcete -li zobrazit model na obrazovce počítače mimo prostředí modelování, je nutné tento model uložit do jednoho z níže uvedených formátů souborů a poté použít nebo napsat program schopný načítání z tohoto formátu. Dvě hlavní metody zobrazení 3D polygonových modelů jsou OpenGL a Direct3D . Obě tyto metody lze použít s 3D akcelerovanou grafickou kartou nebo bez ní .

Výhody a nevýhody

Představování objektu pomocí polygonů má mnoho nevýhod. Polygony nejsou schopny přesně reprezentovat zakřivené povrchy, takže k aproximaci křivek vizuálně přitažlivým způsobem je třeba použít velké množství z nich. Použití složitých modelů má náklady ve snížené rychlosti. Při převodu skeneru musí být každý polygon převeden a zobrazen bez ohledu na velikost a na obrazovce je v daném okamžiku často velký počet modelů. Aby programátoři omezili počet vykreslovaných polygonů, často musí k reprezentaci stejného objektu použít více modelů na různých úrovních podrobností .

Hlavní výhodou polygonů je, že jsou rychlejší než ostatní reprezentace. Zatímco moderní grafická karta může zobrazovat vysoce detailní scénu se snímkovou frekvencí 60 snímků za sekundu nebo vyšší, povrchoví modeláři , hlavní způsob zobrazování nepolygonálních modelů, nejsou schopni dosáhnout interaktivní snímkové frekvence (10 snímků/s nebo vyšší) s podobným množstvím detailů. U skřítků , další alternativy k polygonům, musí být každá požadovaná póza vytvořena jednotlivě, zatímco jeden polygonální model může provádět libovolný pohyb, pokud jsou použita příslušná data o pohybu, a lze jej zobrazit z libovolného úhlu.

Formáty souborů

Pro ukládání 3D polygonových dat je k dispozici celá řada formátů. Nejoblíbenější jsou:

Viz také

Reference

  1. OpenGL SuperBible (3. vyd.), Richard S Wright a Benjamin Lipchak ISBN  0-672-32601-9
  2. OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 1.4, Fourth Edition by OpenGL Architecture Review Board ISBN  0-321-17348-1
  3. OpenGL (R) Reference Manual: The Official Reference Document to OpenGL, Version 1.4 (4th Edition) by OpenGL Architecture Review Board ISBN  0-321-17383-X
  4. Dokumentace mixéru: https://web.archive.org/web/20051212074804/http://blender.org/cms/Documentation.628.0.html
  5. Dokumentace Maya: zabaleno s Alias ​​Maya, http://www.alias.com/eng/index.shtml