PN-trianglar

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 23 april 2020; kontroller kräver 2 redigeringar .

PN-trianglar ( eng.  curved point-normal triangles, PN-trianglar ) är ett sätt att geometrisk representation av tredimensionella objekt för deras visualisering.

Designad för att förbättra den visuella kvaliteten hos triangulerade geometriska (vanligtvis 3D) former. Gör ytan på det renderade objektet jämnare.

Varje PN-triangel är en kubisk Bezier-triangel baserad på tre hörn (b 300 , b 030 , b 003 ) och tre normaler (n 200 , n 020 , n 002 ) av dessa hörn i den ursprungliga platta ("bas") triangeln. Huvudidén med metoden är att använda information om hörn och normaler i bastriangeln för att skapa en kubisk Bezier-triangel för varje sådan bastriangel, såväl som förmågan att generera valfritt antal trianglar från Bezier-triangeln.

Matematiska modeller

För en platt triangel härleddes en matematisk modell av ytan på en krökt triangel byggd på dess bas, samt en matematisk modell av normalfördelningen inom hela den krökta triangeln. Dessa modeller, eller funktioner, är polynom av tredje respektive andra graden. För varje triangel existerar de oberoende av varandra.

Notera: Den här artikeln behandlar en kvadratisk normalfördelningsfunktion, men det är också möjligt att använda en linjär funktion, vilket också ger bra resultat.

Ytmodell av en krökt triangel

Här är u, v och w  barycentriska koordinater . u, v, w > 0; w = 1 - u - v .

Koefficienterna b ijk beräknas enligt följande:

Här är P k  vektorn för koordinaterna för den initiala vertexen k, k= 1,3 .
N k  är vektorn av koordinater för normalen för den ursprungliga vertexen k, k= 1,3 .

Curvilinear Triangle Normal Distribution Model

Här är u, v och w  barycentriska koordinater . u, v, w > 0; w = 1 - u - v .

Koefficienterna n ijk beräknas enligt följande:

Här är P k  vektorn för koordinaterna för den initiala vertexen k, k= 1,3 .
N k  är vektorn av koordinater för normalen för den ursprungliga vertexen k, k= 1,3 .

Funktioner med specifika koefficienter

Genom att ersätta koordinaterna för hörn av den ursprungliga platta triangeln, såväl som värdena för normalerna vid dessa hörn, erhålls funktioner med specifika koefficienter i modellerna 1.1 och 1.2. Varje par av sådana funktioner beskriver en enda krökt triangel av det renderade objektet.

Detaljering

För att förbättra den visuella kvaliteten på originalobjektet, som består av platta trianglar, får trianglarna som ingår i det en krökt form, vilket gör objektet jämnare. För de ursprungliga trianglarna är också en viss detaljnivå inställd. Ju högre detaljnivå, desto jämnare ser det renderade objektet ut. Det är tack vare detaljerna som mekanismen för PN-trianglar "lanseras".

Här är detaljering uppdelningen av en triangel längs varje kant i samma antal segment, och längs en kant är alla segment lika med varandra. Inom ramen för den mekanism som betraktas här är det nödvändigt att detaljera kurvlinjära trianglar. Men i processen att skapa reglerna för uppdelning av en godtycklig triangel, arbetar de med en abstrakt platt triangel, eftersom endast proportionella relationer inom triangeln är viktiga. Efter delning består en sådan triangel av många mindre trianglar, som är ett vanligt rutnät.

Uppdelningen av triangeln utförs i barycentriska koordinater . Som ett resultat får varje "liten" triangel sina egna barycentriska koordinater u, v och w , som är unika inom den ursprungliga triangeln som avgränsar den.

I en verklig objektmodell som består av initiala platta trianglar kommer var och en av deras "små" trianglar därefter att motsvara exakt en "ny liten" triangel ("upphöjd" över ytan av den ursprungliga platta triangeln), som har sina tre hörn (och deras absoluta koordinater) och dess egna tre normaler. De beräknas genom funktioner med specifika koefficienter härledda från modellerna 1.1 och 1.2 separat för varje initial "stor" triangel. De barycentriska koordinaterna u, v och w ( w = 1 - u - v ) för hörnen för alla "små" trianglar, erhållna i förhållande till den initiala triangeln utanför dem, ersätts växelvis i dessa funktioner. Som nämnts ovan måste dessa funktioner definieras för varje ursprungliga platt triangel. Dessa funktioner i sig är formler och förblir oförändrade. Detaljeringen av den krökta triangeln realiseras exakt genom att koordinaterna u och v ersätts i dessa formler , eftersom de barycentriska koordinaterna för varje enskild punkt på den krökta triangeln är identiska med de barycentriska koordinaterna för motsvarande punkt på den ursprungliga "stora" triangel. Som ett resultat av substitution för varje vertex i en "ny liten" triangel, erhålls dess absoluta koordinater och dess normala, vilket sedan kommer att tillåta sådana trianglar att "sändas" för visualisering.

Detaljvärdet definieras enligt följande. Om kanten är uppdelad i två segment är den valda detaljnivån lika med ett. Om kanten är uppdelad i tre segment är detaljnivån två, och så vidare.

Jämförelse med andra metoder

I figuren erhölls bilden till vänster genom att skugga originalobjektet, bestående av platta trianglar, enligt Gouraud-modellen . Bilden i mitten erhölls med hjälp av PN-triangelmekanismen, men här används INTE en separat funktion för att beräkna normalerna. Och bilden till höger erhölls med hjälp av PN-trianglarnas mekanism som presenteras i denna artikel, där normaler beräknas kvadratiskt och oberoende av koordinatberäkningsfunktionen.

Prestanda

På grund av det faktum att funktionerna för hörn och normaler beräknas för varje specifik ursprungliga platt triangel en gång, oavsett detaljnivå, finns det en betydande besparing i minnet.

Länkar