Polygonální modelování - Polygonal modeling - Wikipedia

v 3D počítačová grafika, polygonální modelování je přístup k modelování objektů reprezentováním nebo aproximací jejich povrchy použitím mnohoúhelníkové sítě. Polygonální modelování je velmi vhodné Scanline vykreslování a je tedy metodou volby pro počítačová grafika v reálném čase. Mezi alternativní metody reprezentace 3D objektů patří NURBS povrchy, dělící povrchy a reprezentace založené na rovnicích používané v stopové paprsky.

Geometrická teorie a polygony

Základním objektem používaným při modelování sítí je a vrchol, bod v trojrozměrném prostoru. Dva vrcholy spojené přímkou ​​se stanou okraj. Tři vrcholy, spojené navzájem třemi hranami, definují a trojúhelník, což je nejjednodušší polygon v Euklidovský prostor. Složitější mnohoúhelníky 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)[1][2] a trojúhelníky jsou nejběžnější tvary používané v polygonálním modelování. Skupina polygonů, vzájemně propojených sdílenými vrcholy, se obecně označuje jako živel. Každý z polygonů tvořících prvek se nazývá a tvář.

v Euklidovská geometrie, libovolné tři nekolineární body určují a letadlo. 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 jejich určení povrch normální, trojrozměrný vektor kolmý k povrchu trojúhelníku. Normály povrchu jsou užitečné pro určování transportu světla při sledování paprsku a jsou klíčovou součástí populární Phong stínování Modelka. Některé vykreslovací systémy používají vrcholové normály namísto normálních tváří vytvořit lépe vypadající systém osvětlení za cenu většího zpracování. Všimněte si, že každý trojúhelník má dvě normály tváře, které směřují do opačných směrů od sebe. V mnoha systémech je pouze jedna z těchto normálů považována za platnou - druhá strana polygonu se označuje jako a zadní strana, a mohou být viditelné nebo neviditelné v závislosti na přání programátora.

Mnoho modelování programů striktně nevynucovat geometrickou teorii; například je možné, aby dva vrcholy měly dva odlišné okraje, které je spojují a zaujímají přesně stejné prostorové umístění. Je také možné, aby existovaly dva vrcholy na stejných prostorových souřadnicích nebo dvě tváře na stejném místě. Takové situace obvykle nejsou žádoucí a mnoho balíčků podporuje funkci automatického čištění. Pokud 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 a pletivo. Aby síť vypadala atraktivně, když poskytnuté, je žádoucí, aby to bylo ne-protínající se, což znamená, že žádná hrana neprochází mnohoúhelníkem. Jiným způsobem, jak se na to dívat, je to, že se síťka nemůže sama prorazit. Je také žádoucí, aby síť neobsahovala žádné chyby, jako jsou zdvojené vrcholy, hrany nebo plochy. Pro některé účely je důležité, aby síť byla a potrubí - to znamená, že neobsahuje díry ani singularity (místa, kde jsou dva odlišné úseky sítě spojeny jediným vrcholem).

Konstrukce polygonálních sítí

Ačkoli je možné vytvořit síť ručním zadáním vrcholů a ploch, je mnohem běžnější vytvářet sítě pomocí různých nástrojů. Široká škála 3D grafický software balíčky jsou k dispozici pro použití při konstrukci polygonových sítí.

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

  • The dále dělit nástroj rozdělí plochy a hrany na menší kousky přidáním nových vrcholů. Například čtverec by byl rozdělen přidáním jednoho vrcholu do středu a jednoho na každý okraj, čímž by vznikly čtyři menší čtverce.
  • The vytlačit nástroj se aplikuje na plochu nebo skupinu ploch. Vytvoří nový obličej stejné velikosti a tvaru, který je spojen s každým ze stávajících okrajů obličejem. Provádění vytlačit operace na čtvercovém obličeji by vytvořila krychli spojenou s povrchem v místě obličeje.

Druhá běžná metoda modelování se někdy označuje jako modelování inflace nebo modelování vytlačování. V této metodě uživatel vytvoří 2D tvar, který sleduje obrys objektu z fotografie nebo výkresu. Uživatel pak použije druhý obraz subjektu z jiného úhlu a vytlačí 2D tvar do 3D, opět podle obrysu tvaru. Tato metoda je obzvláště běžná pro vytváření obličejů a hlav. Umělec obecně modeluje polovinu hlavy a poté duplikuje vrcholy, převrátí jejich umístění vzhledem k nějaké rovině a spojí tyto dva kusy dohromady. Tím je zajištěno, že model bude symetrický.

Další běžnou metodou vytváření polygonální sítě je spojování 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 primitiva, jako jsou čtverce, trojúhelníky a disky
  • Specializovaní nebo esoteričtí primitivové, jako je Utah čajník nebo Suzanne, Mixér opice maskot.
  • Koule - Koule jsou běžně reprezentovány jedním ze dvou způsobů:
    • Icospheres jsou dvacetistěny které mají dostatečný počet trojúhelníků, aby se podobaly kouli.
    • UV koule jsou složeny ze čtyřúhelníků a připomínají mřížku viditelnou na některých globusech - čtyřkolky jsou větší v blízkosti „rovníku“ koule a menší v blízkosti „pólů“, které nakonec končí jediným vrcholem.

Konečně existují některé specializované metody konstrukce sítí s vysokými nebo nízkými detaily. Modelování založené na skici je uživatelsky přívětivé rozhraní pro rychlou konstrukci modelů s malými detaily 3D skenery lze použít k vytváření velmi podrobných sítí na základě existujících reálných objektů téměř automaticky. Tato zařízení jsou velmi drahá a jsou obecně používána pouze výzkumnými pracovníky a odborníky 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í skutečným manipulacím s 3D objekty, zatímco jiné ne. Mezi operace polygonální sítě patří:

  • Výtvory - Vytvořte novou geometrii z nějakého jiného matematického objektu
    • Loft - vygenerujte síť vytvořením tvaru podél dvou nebo více křivek profilu
    • Vysunutí - vytvoří povrch tažením profilové křivky 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
  • Binární výtvory - Vytvořte novou síť z binární operace dvou dalších sítí
    • Přidat - booleovské přidání dvou nebo více ok
    • Odečíst - booleovské odčítání dvou nebo více ok
    • Průnik - booleovská křižovatka
    • Unie - booleovské spojení dvou nebo více sítí
    • Připojit - připojení jedné sítě k druhé (odstranění vnitřních povrchů)
    • Zkosení - vytvořte zkosený povrch, který hladce spojí dva povrchy
  • Deformace - Přesuňte pouze vrcholy sítě
    • Deformace - systematický pohyb vrcholů (podle určitých funkcí nebo pravidel)
    • Weighted Deform - posune vrcholy na základě lokalizovaných vah na vrchol
    • Morph - plynulý pohyb vrcholů mezi zdrojovou a cílovou sítí
    • Ohyb - posunutím vrcholů objekt „ohnete“
    • Otočit - posunutím vrcholů "otočíte" objekt
  • Manipulace - Upravte geometrii sítě, ale ne nutně topologii
    • Posunout - zavést další geometrii založenou na „mapě posunutí“ od povrchu
    • Zjednodušit - systematicky odstraňovat a průměrovat vrcholy
    • Subdivide - vyhlazení mřížky kurzu rozdělením mřížky (Catmull-Clark atd.)
    • Konvexní trup - vygenerujte další síť, která minimálně obklopuje danou síť (přemýšlejte o smršťování)
    • Vyjmout - vytvořte otvor v síťovém povrchu
    • Steh - uzavření díry v povrchu sítě
  • Měření - Vypočítá určitou hodnotu sítě
    • Objem - vypočítá 3D objem sítě (diskrétní objemový integrál)
    • Povrchová plocha - vypočítá povrchovou plochu sítě (diskrétní povrchový integrál)
    • Detekce kolize - určete, zda se střetly dvě složité síťové sítě v pohybu
    • Přizpůsobení - sestavte parametrický povrch (NURBS, bikubický spline) tak, že jej přizpůsobíte dané síti
    • Point-Surface Distance - vypočítá vzdálenost od bodu k síti
    • Line-Surface Distance - vypočítá vzdálenost od čáry k síti
    • Průsečík čára-povrch - vypočítá průsečík čáry a sítě
    • Průřez - vypočítá křivky vytvořené průřezem roviny sítí
    • Těžiště - vypočítá těžiště, geometrický střed sítě
    • Těžiště - vypočítá těžiště, bod rovnováhy sítě
    • Circumcenter - vypočítá střed kruhu nebo koule obklopující prvek sítě
    • Incenter - vypočítá střed kruhu nebo koule uzavřené prvkem sítě

Rozšíření

Jakmile je polygonální síť vytvořena, je třeba podniknout další kroky, než bude užitečná pro hry, animace atd. Model musí být textura mapována pro přidání barev a textury na povrch a musí mít kostru pro animaci. K sítím lze také přiřadit hmotnosti a těžiště pro použití v fyzikální simulace.

Chcete-li model zobrazit na obrazovce počítače mimo prostředí modelování, je nutné tento model uložit do jednoho z formáty souborů uvedené níže a poté použijte nebo napište program schopný načíst z tohoto formátu. Dvě hlavní metody zobrazení 3D modelů polygonů jsou OpenGL a Direct3D. Obě tyto metody lze použít s 3D akcelerací nebo bez ní grafická karta.

Výhody a nevýhody

Reprezentace objektu pomocí polygonů má mnoho nevýhod. Polygony nejsou schopny přesně reprezentovat zakřivené povrchy, takže k přiblížení křivek vizuálně přitažlivým způsobem je nutné použít velké množství z nich. Použití složitých modelů má cenu snížené rychlosti. v Scanline převod, každý polygon musí být převeden a zobrazen bez ohledu na velikost a na obrazovce je v daném okamžiku často velké množství modelů. Programátoři často musí používat různé modely s různými variantami úrovně podrobností představovat stejný objekt, aby se snížil počet vykreslených polygonů.

Hlavní výhodou polygonů je, že jsou rychlejší než ostatní reprezentace. Zatímco moderní grafická karta dokáže zobrazit velmi detailní scénu v a snímková frekvence 60 snímků za sekundu nebo vyšší, modeláři povrchu, hlavní způsob zobrazení nepolygonálních modelů, není schopen dosáhnout interaktivní snímkové frekvence (10 snímků / s nebo vyšší) s podobným množstvím detailů. S skřítci, další alternativa k polygonům, musí být každá požadovaná póza vytvořena jednotlivě, zatímco jediný polygonální model může provádět jakýkoli pohyb, pokud jsou použita příslušná data o pohybu, a lze jej prohlížet z libovolného úhlu.[3]

Formáty souborů

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

Viz také

Reference

  1. ^ "Primitive - OpenGL Wiki". www.opengl.org.
  2. ^ „Použití základního efektu s texturováním“. msdn.microsoft.com.
  3. ^ Rybicki, Joe (prosinec 1996). "The Making of NBA Live 97". Elektronické hraní měsíčně. Č. 89. Ziff Davis. p. 301.
  1. OpenGL SuperBible (3. vydání), Richard S Wright a Benjamin Lipchak ISBN  0-672-32601-9
  2. Průvodce programováním OpenGL: Oficiální průvodce výukou OpenGL, verze 1.4, čtvrté vydání OpenGL Architecture Review Board ISBN  0-321-17348-1
  3. Referenční příručka OpenGL (R): Oficiální referenční dokument k OpenGL, verze 1.4 (4. vydání), autorská revizní komise OpenGL ISBN  0-321-17383-X
  4. Dokumentace mixéru: https://web.archive.org/web/20051212074804/http://blender.org/cms/Documentation.628.0.html
  5. Maya dokumentace: zabaleno s Alias ​​Maya, http://www.alias.com/eng/index.shtml