SE532399C2 - Förfarande, apparat och datorprogramprodukt för s kapande av digitalt representerad grafik - Google Patents

Förfarande, apparat och datorprogramprodukt för s kapande av digitalt representerad grafik

Info

Publication number
SE532399C2
SE532399C2 SE0800165A SE0800165A SE532399C2 SE 532399 C2 SE532399 C2 SE 532399C2 SE 0800165 A SE0800165 A SE 0800165A SE 0800165 A SE0800165 A SE 0800165A SE 532399 C2 SE532399 C2 SE 532399C2
Authority
SE
Sweden
Prior art keywords
thinning
representation
base
boundary
instructions
Prior art date
Application number
SE0800165A
Other languages
English (en)
Other versions
SE0800165L (sv
Inventor
Jon Hasselgren
Jacob Munkberg
Petrik Clarberg
Tomas Akenine-Moeller
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Priority to SE0800165A priority Critical patent/SE532399C2/sv
Priority to CN200980103541.4A priority patent/CN102016928B/zh
Priority to DE112009000180T priority patent/DE112009000180T5/de
Priority to US12/864,113 priority patent/US9947130B2/en
Priority to JP2010543083A priority patent/JP2011510396A/ja
Priority to PCT/SE2009/000022 priority patent/WO2009093956A1/en
Priority to GB1012145.7A priority patent/GB2468994B/en
Publication of SE0800165L publication Critical patent/SE0800165L/sv
Publication of SE532399C2 publication Critical patent/SE532399C2/sv
Priority to HK11110654.3A priority patent/HK1156428A1/xx
Priority to JP2012209479A priority patent/JP5518967B2/ja
Priority to US15/396,569 priority patent/US10373370B2/en
Priority to US16/248,713 priority patent/US11222462B2/en
Priority to US16/248,712 priority patent/US11361498B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Description

20 25 30 532 399 2 Följaktligen finns det fortfarande problem med otillräcklig förmåga att förbättra prestandan i digitalt representerad grafik.
Sammanfattning av uggfinningen Med anledning av det ovanstående är ett ändamål med uppfinningen att lösa eller åtminstone minska problemen som diskuteras ovan.
Allmänt uppnås ovanstående ändamål medelst de bifogade oberoende patentkraven.
I enlighet med en första aspekt, förverkligas föreliggande uppfinning genom ett förfarande för förbättring av prestandan avseende skapande av digitalt representerad grafik. Förfarandet innefattar stegen att: ta emot en första representation av en basprimitiv, tillhandahålla en uppsättning av instruktioner som är associerade med vertexpunktpositionsbestämning, exekvera nämnda uppsättning av instruktioner på nämnda första represen- tation av nämnda basprimitiv med användning av gränsaritmetik för åstadkommande av en andra representation av nämnda basprimitiv och låta nämnda andra representation av nämnda basprimitiv undergå en gallrings- process. Att utföra gallring på basprimitiver är fördelaktigt eftersom basprimi- tiver, och representationer av basprimitiver, kan förkastas i bönen av grafikprocesslödet ("graphics pipeline”) vilket resulterar i prestandavinster.
Vidare, skickas inte ett flertal av de ytor som är osynliga i den fullständigt renderade bilden vidare i processen, vilket också resulterar i prestanda- vinster. Med andra ord, att utföra gallring på hela basprimitiver är fördelaktigt eftersom man undviker tessellering av flertalet osynliga ytor, vilket resulterar i prestandavinster.
Förfarandet kan innefatta stegen att bestämma en inneslutande volym som omsluter nämnda andra representation av nämnda basprimitiv och steget att låta nämnda inneslutande volym undergå en gallringsprocess.
Detta är fördelaktigt eftersom inga förutbestämda gränser måste tillhanda- hållas och eftersom den inneslutande volymen bestäms automatiskt.
Förfarandet kan innefatta steget att exekvera en tesselleringsprocess, varvid nämnda tesselleringsprooess baseras på ett utfall hos nämnda gallringsprocess. Gallring utförs således före tessellering. Att utföra 10 15 20 25 30 533 359 3 tesselleringen efter gallringen resulterar i prestandavinster eftersom färre basprimitiver tesselleras och är således fördelaktigt. Nämnda gallrings- process skulle kunna vara den gallringsprocess som nämnda andra representation undergå och/eller den gallringsprocess som den inneslutande volymen undergâr.
Förfarandet kan innefatta att nämnda gallringsprocess är utbytbar.
Detta är fördelaktigt eftersom gallringsprocessen kan ändras av till exempel en användare. Att gallringsprocessen är utbytbar är tillämpligt på alla utföringsforrner av den första aspekten.
Förfarandet kan innefatta gränsarihnetiken är minst en från gruppen bestående av Tayloraritmetik, intervallaritmetik och affin aritmetik. Detta är fördelaktigt eftersom metoden är flexibel och stöder olika typer av gräns- aritmetik och är inte begränsad till en typ av gränsaritmetik. Det är föredraget att använda Taylorrnodeller eftersom krökta ytor och uppdelníngsscheman, vilka ofta används i tessellering, ofta baseras på polynom. En annan fördel är att polynomberäkningar kan representeras på ett exakt sätt medelst Taylor- modeller (förutsatt att de är av tillräckligt stor storleksordning) vilket leder till väldigt tättslutande gränser.
Förfarandet kan innefatta att nämnda steg att bestämma nämnda inneslutande volym vidare innefattar att beräkna ett minimum och ett maximum hos nämnda andra representation. Detta är fördelaktigt eftersom det är ett prestandaeffektivt sätt att bestämma den inneslutande volymen.
Förfarandet kan innefatta att nämnda andra representation är minst en från gruppen bestående av en positionsgräns och en normalgräns. Positions- och normalgränsema kan användas för bestämning av till exempel positionen eller räckvidden hos nämnda första representation av basprimitiven. En ytterligare fördel är att positions- och normalgränserna bestäms automatiskt.
Förfarandet kan innefatta att steget att exekvera nämnda uppsättning av instruktioner vidare innefattar steget att härleda en andra uppsättning av instruktioner från nämnda uppsättning av instruktioner som är associerade med vertexpunktpositionsbestämning och steget att exekvera nämnda andra uppsättning av instruktioner för åstadkommande av en nonnalgräns. Detta är 10 15 20 25 30 532 3331 4 fördelaktigt eftersom nämnda andra uppsättning av instruktioner härleds automatiskt och dessutom beräknas nonnalgränsen automatiskt.
Förfarandet kan innefatta att steget att låta nämnda inneslutande volym undergå en gallringsprocess vidare innefattar minst ett av stegen att låta nämnda inneslutande volym undergå synfåltsgallring, låta nämnda inneslutande volym undergå backface-gallring och låta nämnda inneslutande volym undergå occlusion-gallring. En fördel med detta är att många olika gallringstekniker är tillämpliga.
Förfarandet kan innefatta att steget att låta nämnda andra representation (som är en positions- eller normalgräns) undergå nämnda gallringsprocess vidare innefattar att utföra minst ett av stegen att låta nämnda positionsgräns undergå synfältsgallring, låta nämnda positionsgräns eller nämnda normalgräns undergå baokface-gallring och låta nämnda positionsgräns undergå occlusion-gallring. En fördel med det här är att många olika gallringstekniker är tillämpliga.
Förfarandet kan innefatta att ett utfall hos nämnda gallringsprocess innefattar en av ett beslut att förkasta nämnda basprimitiv och en à tesselleringsfaktor. Detta är fördelaktigt eftersom att förkasta en basprimitiv innebär en basprimitiv färre att rendera vilket ökar prestandan.
Tesselleringsfaktorn kan indikera att basprimitiven inte ska tesselleras vilket resulterar i prestandavinster.
Förfarandet kan innefatta steget att exekvera en tesselleringsprocess, om utfallet hos nämnda gallringsprocess innefattar en tesselleringsfaktor.
Detta är fördelaktigt eftersom prestandan ökas för varje basprimitiv som inte tesselleras eller som tesselleras mindre. Om utfallet hos nämnda gallrings- process är ett beslut att förkasta nämnda basprimitiv exekveras ingen tesselleringsprocess.
Enligt en andra aspekt förverkligas föreliggande uppfinning medelst en apparat som är anordnad att skapa digitalt representerad grafik innefattande kretssystem för förbättring av prestandan avseende skapande av digitalt representerad grafik. Nämnda kretssystem är anordnat att: ta emot en första representation av en basprimitiv, tillhandahålla en uppsättning av instruktioner som är associerade med vertexpunktpositionsbestämning, 10 15 20 25 30 5322 393 5 exekvera nämnda uppsättning av instruktioner på nämnda första represen- tation av nämnda basprimitiv med användning av gränsaritmetik för åstadkommande av en andra representation av nämnda basprimitiv och låta nämnda andra representation av nämnda basprimitiv undergå en gallringsprocess.
Det bör noteras att nämnda andra aspekt av uppfinningen kan utformas med varje kombination av särdrag som motsvarar något av särdragen hos den första aspekten av uppfinningen.
Fördelama med den första aspekten är lika tillämpliga på den andra aspekten.
Enligt en tredje aspekt förverkligas föreliggande uppfinning medelst en datorprogramprodukt, innefattande datorprogramkod vilken lagras på ett datorläsbart lagringsmedium och vilken, när denna exekveras på en processor, utför förfarandet enligt den första aspekten av uppfinningen.
Fördelarna med den första aspekten är lika tillämpliga på den tredje aspekten av uppfinningen.
Andra syften, särdrag och fördelar med föreliggande uppfinning kommer att framgå av följande detaljerade beskrivning, av de bifogade patentkraven såväl som av ritningama. l allmänhet ska alla termer som används i patentkraven tolkas i enlighet med deras ordinarie betydelse i det tekniska området, såvida de inte är explicit annorlunda definierade häri. Alla referenser till "en/ett/den/det [element, anordning, komponent, organ, steg, etcj” ska tolkas öppet såsom hänvisande till minst en instans av nämnda element, anordning, komponent, organ, steg, etc, såvida det inte är explicit annorlunda angivet. Stagen hos varje metod som är beskriven häri behöver inte utföras i den exakta ordning som de är beskrivna, såvida detta inte är explicit angivet.
Kort be_s__krivning@v ritningama Andra särdrag hos och fördelar med föreliggande uppfinning kommer att framgå av följande detaljerade beskrivning av en för närvarande föredragen utföringsform, med hänvisning till de bifogade ritningama, i vilka 10 15 20 25 30 532 339 6 tig 1 är ett blockschema som illustrerar hur olika enheter i en bild- skärmsadapter enligt känd teknik samverkar.
Fig 2a är ett blockschema som illustrerar hur olika enheter i en apparat kan samverka i en utföringsform av föreliggande uppfinning.
Fig 2b är ett blockschema som illustrerar en utföringsfonn av förelig- gande uppfinning.
F lg 2c är ett blockschema som illustrerar en utförlngsform av förelig- gande uppfinning.
Fig 2d är ett blockschema som illustrerar en utföringsform av förelig- gande uppfinning.
Fig 3a och 3b är flödesscheman som visar processer för gallring av basprimitiver som kan exekveras i apparaten enligt figurema 2a-d.
Fig 4 visar schematiskt processema för gallring av basprimitiver enligt figurema 3a-b.
Fig 5 visar en översiktsarkitektur för en allmängiltig dator som innefattar apparaten enligt figurema 2a-d.
Detalierad beskrivning av en utföringsform Föreliggande uppfinning kommer nu att beskrivas mer utförligt i det följande med hänvisning till de bifogade ritningama i vilka vissa särskilda utförings- former av uppfinningen visas. Denna uppfinning kan dock utformas på många olika sätt och ska inte tolkas såsom begränsad till de utföringsforrner som beskrivs häri, dessa utföringsforrner tillhandahålls snarare som exempel så att denna beskrivning blir noggrann och komplett, och kommer att fullständigt förmedla uppfinningens omfång för fackmän inom området. Lika nummer hänvisar genomgående till lika element.
Fig 1 är ett blockschema som visar hur olika enheter i en konventionell bildskärmsadapter som är känd för fackmannen inom området samverkar. En bildskärmsadapter enligt känd teknik kan innefatta en tesselleringsenhet 120, ett vertexpunktshaderprogram 130, en triangeltraverseringsenhet 140 och ett fragmentshaderprogram 150. Enhetema hos bildskärmsadaptem enligt känd teknik är välkända för fackmannen inom området. 10 15 20 25 30 532 395 7 lndata 110 till tesselleringsenheten 120 är basprimitiv, vilken kan vara en triangel, fyrsiding eller annan geometrisk form. Tessellering innebär att många, mindre, ofta sammanhängande primitiver skapas. Till exempel tesselleras en bastriangel (d v s basprimitiven) i tesselleringsenheten 120 till 100x100 mindre sammanhängande trianglar som täcker bastriangeln.
Positionerna hos vertexpunktema hos dessa mindre trianglar kan sedan beräknas i vertexpunktshaderprogramenheten 130 så att en krökt yta bildas.
Det finns olika typer av tessellering, till exempel likformig tessellering, deltessellering och anpassningsbar tessellering.
Vertexpunktshaderprogramenheten 130 tar emot barycentriska koordinater för varje vertexpunkt från tesselleringsenheten 120 och beräknar till exempel positionen, p(u,v), hos vertexpunkten som funktion av de barycentriska koordinaterna (u,v).
Triangeltraverseringsenheten 140 är ansvarig för upprättande av polygoner enligt vad som beordras av ett anslutet styrorgan. Även om varje polygon kan användas, används vanligtvis trianglar. För varje polygon delar triangeltraverseringsenheten 140 upp polygonerna som ska renderas i ett eller fiera block varvid varje block åtminstone delvis överlappas av polygonema. Generellt är ett block en grupp av fragment. Ett block är en tvådimensionell rektangel som innehåller ett antal fragment. Vart och ett av dessa fragment motsvarar en pixel och innefattar all data som krävs för rendering av pixeln och för testning av huruvida pixeln ska renderas på skärmen. En vanlig storlek hos ett block är 8 gånger 8 fragment, även om varje blockstorlek är inom uppfinningens omfång.
En annan viktig uppgift för triangeltraverseringsenheten 140 är att hitta de fragment som finns inuti den geometriska primitiven (d v s triangeln) som ska renderas. Detta kan göras med användning av enmängd av tekniker varvid teknikema är kända för en fackman inom området.
Fragmentshaderprogrammet 150 exekverar ett fragmentshader- program för varje fragment som skickas till denna enhet. Vart och ett av dessa fragment motsvarar en pixel och innefattar data som krävs för att rendera pixeln och för att testa huruvida pixeln ska renderas på skärmen.
Nämnda fragmentdata innefattar rasterposition, djup, färg, texturkoordinater, 10 15 20 25 30 532 399 8 stencil, alfa (används för blandning) etc. För varje pixel kan det finnas ett flertal fragmentprov.
Vidare behandlas fragmenten för att till exempel kombinera tidigare beräknad färg med texturer, såväl som addera effekter såsom dimma, såväl som, när det är möjligt, identifiera fragment som inte behöver renderas, d v s fragmentgallring.
Fragmentshaderprogrammet 150 kan vidare utföra djuptest, alfatest och blandning innan fragmenten skrivs till målbuffertar.
Nämnda utdata 150 från bildskärmsadaptem enligt känd teknik kan visas på en bildskärm.
Det bör noteras att från och med här kommer föreliggande uppfinning att beskrivas.
Olika utföringsforrner av en apparat som är anordnad att skapa digitalt representerad grafik enligt uppfinningen kommer att beskrivas nedan med hänvisning till fig 2. Apparaten innefattar kretssystem för förbättring av prestandan avseende skapande av digitalt representerad grafik. Nämnda apparat kan utformas som en bildskärmsadapter och kommer i det följande att hänvisas till som en bildskännsadapter.
Fig 2a är ett blockschema som visar en utföringsforrn av en bild- skärmsadapter 205 enligt föreliggande uppfinning. Bildskärmsadaptem 205 innefattar kretssystem för förbättring av prestandan avseende skapande av digitalt representerad grafik, som utgör en basprimitivgallringsenhet 212. lndata 210 till basprimitivgallringsenheten 212 är en första representation av en basprimitiv. En geometrisk primitiv i området datorgrafik tolkas vanligtvis som atomära geometriska objekt som systemet kan hantera, till exempel rita eller lagra. Alla andra grafiska element är uppbyggda av dessa primitiver.
Basprimitiven är en lämplig geometrisk representation vilken kan tesselleras till många mindre geometriska primitiver såsom trianglar. En basprimitiv är icke-tessellerad. Exempel på basprimitiver är tríanglar, fyrsidingar, linjer, kurvor, Bézier-ytor, etc.
Polygoner defieneras med användning av en sammahängande uppsättning av vertexpunkter. En triangel har till exempel tre vertexpunkter 10 15 20 25 30 532 353 9 och en fyrsiding har fyra vertexpunkter. I datorgrafik är vertexpunktema inte bara associerade med tre rymdkoordinater utan också med annan grafisk information som är nödvändig för rendering av objektet på ett korrekt sätt, såsom färger, reflektansegenskaper, texturer och ytnorrnaler.
En första representation av en basprimitiv kan vara en uppsättning av attribut. Uppsättningen av attribut kan till exempel vara en ur gruppen av kontrollpunkt, vertexpunktposition, normal, texturkoordinat, etc. Till exempel kan en triangel även beskrivas med användning av tre vertexpunktpositioner, och en fyrsidig polygon med användning av fyra vertexpunktpositioner. Varje vertexpunktposition kan också associeras med andra attribut, såsom normaler och texturkoordinater. Ett annat exempel är en Bézier-triangel eller en Bézier-yta vilka kan beskrivas med användning av en uppsättning av vertexpunktpositioner och kontrollpunkter.
I basprimitivgallringsenheten 212 utförs gallring på basprimitiver och på representationer av basprimitiver. Utdata 222 från basgallringsenheten kan vara att basprimitiven ska förkastas. I en annan utföringsform kan utdata 222 vara att en tesselleringsfaktor skapas. Denna tesselleringsfaktor kan sättas till ett värde som indikerar att basprimitiven ska förkastas. Alternativt kan tesselleringsfaktom sättas till ett värde som indikerar att basprimitiven inte kunde förkastas. Vidare kan tesselleringsfaktorn sättas till ett värde som indikerar att basprimitiven inte ska tesselleras, ska tesselleras grovt eller ska tesselleras vid en låg frekvens.
Detaljema och effektema hos basprimitivgallring beskrivs vidare i samband med fig 3a och fig 3b nedan.
Utdata 224 från bildskärmsadaptern 205 kan visas på en bildskärm. l en annan utföringsforrn, se tig 2b, innefattar bildskärmsadaptem 230 en basprimitivgallringsenhet 212 och en tesselleringsenhet 214. Tessel- leringsenheten 214 kan vara av liknande typ som tesselleringsenheten 120 som har beskrivits ovan med hänvisning till fig 1.
Basprimitivgallringsenheten 212, indata 210 till basprimitivgallrings- enheten 212 och utdata 224 från bildskärmsadaptern 230 har tidigare beskrivits i samband med fig 2a. 10 15 20 25 30 532 393 10 Tesselleringsenheten tessellerar inte basprimitiven om tessellerings- enheten 214 från basprimitivgallringsenheten 212 tar emot en basprimitiv och en tesselleringsfaktor som indikerar att basprimitiven inte ska tesselleras.
Tesselleringsenheten 214 tessellerar basprimitiven om tessellerings- enheten 214 från basprimitivgallringsenheten 212 tar emot en basprimitiv men inte tar emot en tesselleringsfaktor som indikerar att basprimitiven inte ska tesselleras.
Fig 2c är ett blockschema som visar hur olika enheter i en bildskännsadapter 205 kan samverka i en utföringsforrn av föreliggande uppfinning. Bildskärmsadaptem 205 innefattar en basprimitivgallringsenhet 212, en tesselleringsenhet 214, ett vertexshaderprogram 216, en triangel- traverseringsenhet 218 och ett fragmentshaderprogram 220. Enhetema 214, 216, 218 och 220 kan vara av liknande typ som de som har beskrivits ovan med hänvisning till fig 1.
Basprimitivgallringsenheten 212, indata 210 till basprimitivgallrings- enheten 212 och utdata 224 från bildskârmsadaptem 230 har beskrivits förut i samband med fig 2a.
I ytterligare en annan utföringsforrn, se fig 2d, innefattar bildskärms- adaptem 250 en basprimitivgallringsenhet 212, en tesselleringsenhet 214, ett vertexshaderprogram 216, en triangeltraverseringsenhet 218, en program- merbar gallringsenhet (PCU, ”Programmable Culling Unit”) 226 och ett fragmentshaderprogram 220. Enhetema 214, 216, 218 och 220 kan vara av samma eller liknande typ som de som har beskrivits ovan med hänvisning till fig 1.
Basprimitivgallringsenheten 212, indata 210 till basprimitivgallrings- enheten 212 och utdata 224 från bildskärmsadaptern 230 har beskrivits tidigare i samband med tig 2a.
I den programmerbara gallringsenheten 226 utförs gallring på block enligt ett utbytbart gallringsprogram, även känt som en utbytbar gallringsmodul. Detaljema för det här gallringsprogrammet och effektema förklaras mer i detalj i den icke-publicerade svenska patentansökan SE0700162-1 vars innehåll genom hänvisning därtill härmed införlivas. 10 15 20 25 30 532 339 11 Fig 3a visar ett flödesschema för ett basprimitivgallringsprogram som kan exekveras i basprimitivgallringsenheten 212 enligt figurer 2a, b, c och d.
I steg 310 tas en första representation av en basprimitiv emot.
I steg 320 tillhandahålls en uppsättning av instruktioner. Den tillhandahàllna uppsättningen av instruktioner associeras med bestämning av vertexpunktpositioner. Vertexpunktpositioner beräknas till exempel med användning av barycentriska koordinater för varje vertexpunkt som p(u,v), såsom har beskrivits i samband med vertexshaderprogramenheten 216.
Uppsättningen av instruktioner härleds eller hämtas från ett vertexshader- program som kan exekveras i vertexshaderprogramenheten 216. Uppsätt- ningen av instruktioner analyseras sedan och alla instruktioner som används för beräkning av vertexpunktposition isoleras. lnstruktionema definieras om till att arbeta med gränsaritrnetik, till exempel Taylor-aritmetik, intervallaritmetik, affin aritmetik eller annan lämplig aritmetik som är känd för fackmannen._ I en utföringsform omdefinieras instruktionema till att arbeta med Taylor-modeller (istället för flyttal) och indata till de nya instruktionerna omdefinieras till Taylor- modeller.
En kort beskrivning av Taylor-modeller följer för att underlätta förståelsen av påföljande steg. lntervall används i Taylor-modeller och följande beteckningssätt används för ett intervall: a=|'_,šj={x|gsxsâ} ekvation (1) Givet en n+1 gånger differentierbar funktion, f(u), där u e [u,,,u,], Taylor- modellen av f består av ett Taylor-polynom, Tf, och en intervallresttenn, if.
En Taylor-modell av nzte ordningen, som här betecknas f, över domänen u e [u°,u,]är då: 701) E -u,,)" + ßrfjík Écku* +í,, ekvation (2) - “*' k=o k=0 10 15 20 25 30 35 532 395 12 n m ___ vari ZL-kw-(u-ufl âr Taylor-poiynomet och lrprf] är intervall- k=0 - * restterrnen. Denna representation kallas för en Taylor-modell och är en konservativ inneslutning av funktionen f över the domänen u e [u,,,u,}. Det är också möjligt att definiera aritmetiska operatörer på Taylor-modeller vari resultat också är en konservativ inneslutning (en annan Taylor-modell). Som ett enkelt exempel, låt säga att f + g ska beräknas och att dessa funktioner representeras som Taylor-modeller, f = (Tfif) and š = (Tgjfg). Taylor- modellen av summan är då (Tf +Tgjf +íg). Mer komplexa operatörer såsom multiplikation, sinus, logaritm, exponentialfunktion, reciprokt värde, m m kan också härledas. lmplementationsdetaljer för dessa operatörer beskrivs i BERZ, M., AND HOFFSTÄTFER, G. 1998. Computation och Application of Taylor Polynomials with lnterval Remaínder Bounds. Relíable Computing, 4, 1,83-97.
Barycentriska koordinatema kan omdefinieras som en Taylor-modell såsom följer: bäry(u,v) = (u, v,1 - u ~ v) .
I steg 330, exekveras den tillhandahållna uppsättningen av instruktioner på nämnda första representation av basprimitiven med användning av gränsaritmetik. Ett utfall hos denna exekvering av nämnda uppsättning av instruktioner är en andra representation av basprimitiven.
Nämnda andra representation av basprimitiven kan vara en Taylor- modell och kan vara en polynomapproximation av vertexpunktpositionsattributet. Närmare bestämt kan utdata från steg 330 vara positíonsgränser: Mum =(ñ"51”§='ß") , det vill säga fyra Taylor- modeller. För en enstaka komponent, tillexempel x, kan detta uttryckas i potensforrn såsom följer (restterrnen, êf, har utelämnats för att öka tyd|igheten): p(u,v) = Xaärfvf i+jsn ekvation (3) Gränsaritmetiken som används i steg 330 kan till exempel vara Taylor- aritmetik, intervallaritmetik, affin aritmetik eller någon annan lämplig aritmetik som är känd för en fackman inom området. l en utföringsform kan nämndra andra respresentation av nämnda basprimitiv vara normalgränser. För en parametriserad yta kan den onormaliserade normalen, n, beräknas som: 10 15 20 25 30 35 532 395 13 ekvation (4) nam) z öpgfzv) X öpüav) âv Normalgränsema, det vill säga Taylor-modellen av normalen, beräknas sedan som mot» x falun) öu öv ñ(u,v) = ekvation (5) I en utföringsforrn, steg 330, kan steget att exekvera nämnda uppsättning av instruktioner innefatta steg 331, fig 3b. Steg 331 innefattar steget att härleda en andra uppsättning av instruktioner från nämnda uppsättning av instruktioner som är associerade med vertexpunktpositionsbestämning.
Nämnda andra uppsättning av instruktioner hämtas från ett vertexshader- program som exekveras ivertexshaderprogramenheten 216, instruktionema analyseras och alla instruktioner som används för beräkning av vertexpunkt- positionen, de aritmetiska instruktionerna, isoleras. instruktionema omdefinieras till att arbeta på Taylor-modeller (istället för flyttal) och indata till de nya instruktionema omdefinieras till att var Taylor-modeller. Nämnda andra uppsättning av instruktioner exekveras sedan för åstadkommande av norrnalgränser.
En inneslutande volym för en uppsättning av objekt är en sluten volym som fullständigt innesluter unionen av objekt i uppsättningen. inneslutande volymer kan vara av olika storlek, till exempel boxar såsom kuber eller rektanglar, sfärer, cylindrar, polytoper och konvexa höljen.
I en utföringsfonn bestäms en inneslutande volym som omsluter nämnda andra representation av nämnda basprimitiv, steg 350 i fig 3b, och den inneslutande volymen får undergå en gallringsprocess. Gallrings- processen beskrivs vidare i anslutning till steg 340.
Den uppfinningsenliga inneslutande volymen är tättslutande. Att den uppfinningsenliga inneslutande volymen är tättslutande innebär att arean eller volymen hos den inneslutande volymen är så liten som möjligt men samtidigt fullständigt omsluter nämnda andra representation av nämnda basprimitiv. l en utföringsform bestäms den inneslutande volymen genom beräkning av ett minimum och ett maximum hos nämnda andra representation, steg 351. 10 15 20 25 30 532 393 14 Nämnda andra representation av basprimitiven kan vara Taylor- polynom i potensform.
Ett sätt att bestämma den inneslutande volymen kan vara genom beräkning av derivatoma hos Taylor-polynomen och således hitta minimum och maximum hos nämnda andra representation.
Ett annat sätt att bestämma den inneslutande volymen kan vara enligt det följande. Taylor-polynom omvandlas till Bemstein-form. På grund av det faktum att Bemstein-basens egenskap som konvext hölje garanterar att den faktiska ytan eller kurvan hos polynomen ligger inuti det konvexa höljet hos kontrollpunkterna som erhålls i Bemstein-basen, beräknas den inneslutande volymen genom att man finner minimum- och maximumkontrollpunktvärdet i varje dimension. Omvandling av ekvation 3 till Bernstein-bas ger: PÛQV) = ZPijBr; (uav) msn ekvation (6) där B; (u, v) -_- l-Juäwf (1 - u -v)"“'"f är Bemstein-polynom i det tvådimensionella fallet över en triangulär domän. Denna omvandling utförs med användning av följande formel, varvid formeln beskrivs i HUNGERBÜHLER, R., AND GARLOFF, J. 1998, Bounds for the Range of a Bivariate Polynomial over a Triangle. Reliable Computing, 4, 1, 3-13: pfš šínïn-z) b" l m ekvation (7) För att beräkna en inneslutande box beräknar man helt enkelt minimum- och maximumvärdet över alla pä för varje dimension x, y, z, och w. Detta ger en inneslutande box É= (ÉNÉWILÉW) i klipp-koordinatsystemet. där varje element är ett interval, till exempel å, = [b_,, I steg 340 får nämnda andra representation av basprimitiven undergà en gallringsprocess.
Gallring för att man ska undvika att rita ut objekt, eller delar av objekt, som inte syns. 10 15 20 25 30 35 533 335 15 GPU-enheter enligt känd teknik utför gallring på tessellerade polygon.
Föreliggande uppfinning utför gallring innan ens tessellering sker vilket resulterar i prestandavinster.
Med det här tillvägagångssättet används de ovan härledda positions- gränsema, normalgränsema och den inneslutande volymen för användning av olika gallringstekniker på basprimítiven.
I en utföringsfonn utförs synfältsgallring ("view frustum culling") med användning av nämnda positionsgräns eller nämnda inneslutande volym, steg 341 tig 3b. l en utföringsforrn utförs occlusíon-gallring med användning av nämnda positionsgräns eller nämnda inneslutande volym, steg 343 fig 3b.
I en utföringsforrn utförs minst ett av stegen 341-343.
Gallringsteknikema som beskrivs nedan ska inte ses som begränsande utan de tillhandahålls som exempel. Fackmannen inom omrâdet inser att backface-gallring, occlusion-gallring och synfältsgallring kan utföras med användning av flera andra tekniker än de som beskrivs nedan.
Synfältsgallring är en gallringsteknik som baseras på det faktum att endast objekt som kommer att vara synliga, det vill säga som är belägna inuti i det aktuella synfältet, ska ritas. Synfältet kan definieras som det område i rymden i den modellerade världen som kan blisynligt på skärmen. Att rita objekt utanför synfältet skulle vara en slöseri med tid och resurser eftersom de ändå inte är synliga. Om ett objekt befinner sig fullständigt utanför synfältet kan det inte vara synligt och kan förkastas. l en utföringsforrn testas positionsgränsema hos den inneslutande volymen mot planen hos synfältet. Eftersom den inneslutande volymen, å, är i det homogena klipp-koordinatsystemet, kan testet utföras i klipp- koordinatsystemet. En standardoptimering för plan-boxtest kan användas, vari endast ett enstaka höm hos den inneslutande volymen, varvid den inneslutande volymen är en inneslutande box, används för beräkning av planiekvationen. Varje plantest innebär då en addering och en jämförelse. Till exempel utförs test av huruvida volymen är utanför det vänstra planet med användning av b, +b,, < 0. Testet kan också utföras med användning av positionsgränsema ß(u,v) = (ßflßwßvßw). Eftersom dessa test är tids- och resurseffektiva är det fördelaktigt att låta synfättstestet vara det första testet.
Backfaoe-gallring förkastar objekt som är vända bort från betraktaren, det vill säga objektets normalvektor är riktad bort från betraktaren. Dessa 10 15 20 25 30 532 339 16 objekt kommer inte att vara synliga och således finns det inget behov av att rita dem.
Givet en punkt, p(u, v), på en yta beräknas backface-gallring vanligen som: c = p(u, v) - n(u, v) ekvation (8) Där n(u, v) är normalvektom (u, v). Om c>0, då år p(u, v) bortvând för det specifika värdet av (u, v). Som sådan kan formeln också användas för gallring av en hel triangel vilken bara har en enstaka norrnal. Taylor-modellen av skalärprodukten (se ekvationer 5 och 8) beräknas: Z = ñ(u,v) -ñ(u,v). För att man ska kunna utföra backface-gallring måste följande gälla över hela triangeldomänen: E > 0. Den undre gränsen för 'E uppskattas konservativt igen med användning av Bernstein-formens egenskap av konvext hölje. Detta ger ett intervall, E = (921, och triangeln (vilken inte har tessellerats i det här läget) kan gallras om g > O. l en annan utföringsforrn beräknas intervallgränser för normalerna för kontroll av huruvida backface-villkoret är uppfyllt.
Testet kan också utföras med användning av positionsgränserna ]6(u,v) = (ßvßyjfiz jfiw) eller altemativt, den inneslutande volymen.
Occlusion-gallring innebär att objekt som är blockerade förkastas. I det följande kommer occlusion-gallring att beskrivas för en inneslutande box men fackmannen inom området inser att det är möjligt att utföra occlusion-gallríng även på andra typer av inneslutande volymer.
Occlusion-gallringstekniken är väldigt lik hierarkisk djupbuffring, förutom att endast en enstaka extranivå används (8x8 pixelblock) i djupbufferten. Det maximala djupvärdet Zfjx lagras i varje block. Detta är en standardteknik l GPU-enheter och används vid rastrering av trianglar. Den inneslutande boxen, b, för klipp-koordinatsystemet projiceras och alla block som överlappar denna axelinriktade box besöks. Vid varje block utförs det klassiska occlusion-testet: Zf; z Zfiå, vilket indikerar att boxen är blockerad vid det aktuella blocket om jämförelsen uppfylls. Det minsta djupet hos boxen, Zffi, erhålls från klipp-koordinatsystemets inneslutande box, och det maximala djupet hos blocket, Zfif, , från den hierarkiska djupbufferten (vilken 10 15 20 25 30 532 395 17 redan finns i samtida GPU-enheter). Notera att testandet kan avslutas så snart man finner att ett block inte är blockerat och att det är rättframt att lägga till fler nivåer till den hierarkiska djupbufferten. Occlusion-gallringstestet kan ses som en mycket billig för-rasterisering av den inneslutande boxen hos triangeln som ska tesselleras. Eftersom det arbetar på blockbasis är det mindre dyrt än en occlusion-fråga. i en annan utföringsform kan testet också utföras med användning av positionsgränserna, ';3(u,v) = (ßvíy, ßzjfiw) . l en utföringsforrn är gallringsprocessen utbytbar. Detta innebär att basprimitivgallringsenheten 212 kan förses med en användardefinierad gallringsprocess.
Steget 340 (och 350), att exekvera en gallringsprocess, kan ha olika utfall. l en utföringsform kan ett utfall hos gallringsprocessen vara att basprimitiven ska förkastas. I en annan utföringsfonn kan ett utfall hos gallringsprocessen vara att en tesselleringsfaktor skapas. Denna tesselleringsfaktor kan sättas till ett värde som indikerar att basprimitiven ska förkastas. Alternativt kan tesselleringsfaktom sättas till ett värde som indikerar att basprimitiven inte kunde förkastas. Vidare kan tesselleringsfaktom sättas till ett värde som indikerar att basprimitiven inte ska tesselleras.
I en utföringsforrn, efter steget 340 (och steget 350) att exekvera en gallringsprocess skickas utfallet hos exekveringen av en gallringsprocess till tessellerlngsenheten 214. En tesselleringsprocess exekveras, steg 360, fig 3b. Om tesselleringsenheten 214 tar emot en basprimitiv och en tesselleringsfaktor indikerar att basprimitiven inte ska tesselleras, tessellerar inte tesselleringsenheten basprimitiven.
Om tesselleringsenheten 214 tar emot en basprimitiv som inte förkastades i gallringsprocessen men tar inte emot en tesselleringsfaktor som indikerar att basprimitiven inte ska tesselleras, tessellerar tessellerings- enheten 214 basprimitiven.
Stegen som beskrivs i samband med fig 3a och b kan utföras i apparaten 205, 230, 240, 250 enligt uppfinningen.
Fig 4 visar resultaten i stegen enligt fig 3a och b. Fig 4a visar en basprimitiv i form av en bastriangel 405. Fig 4b visar den resulterade skapade 10 15 20 25 30 532 399 18 ytan 410 över bastriangeln 405. Fig 4b visar den resulterande skapade ytan 410 över bastriangeln 405 vilken bestäms av vertexshaderprogramenheten 218 (och tesselleringsfrekvensen). I fig 4c är bastriangeln uttryckt i Taylor- form (polynom 415 och intervallrestterm 420, 425) och således uppnås en konservativ uppskattning av ytan 410. I fig 4d expanderas Taylor-polynomet i Bemstein-forrn 430 för effektiv räckviddsgrånssättning (med användning av egenskapen konvext hölje). I fig 4e adderas intervallrestterrnen 420, 425 från Taylor-modellen till Bemstein-gränsema 430 och sålunda erhålls konservativa ytgränser 445, 450.
Fig 5 visar en översiktsarkitektur av en typisk allmängiltig dator 583 som innefattar bildskärmsadaptern 205, 230, 240, 250 enligt fig 2. Datorn 583 har en styrenhet 570, såsom en CPU, som kan exekvera programvaru- instruktioner. Styrenheten 570 är kopplad till ett icke permanent minne 571, såsom ett RAM-minne ("Random Access Memory”) och en bildskärrnsadapter 500, varvid bildskärmsadaptem motsvarar bildskärmsadaptrarna 205, 230, 240 och 250 enligt fig 2. Bildskärmsadaptern 500 är i sin tur kopplad till en bildskärm 576, såsom en CRT-bildskärm, en LCD-bildskärm, etc. Styrenheten 570 är också kopplad till beständig lagring 573, såsom en hårddisk eller flash- minne och optisk lagring 574, såsom läsare och/eller skrivare av optisk media såsom CD, DVD, HD-DVD eller Blue-ray. Ett nätverksgränssnitt 581 är också kopplat till styrenheten 570 för åstadkommande av åtkomst till ett nätverk 582, såsom ett lokalt nätverk, ett globalt nätverk (såsom t ex Internet), ett trådlöst lokalt nätverk eller trådlöst stadsområdesnätverk. Genom ett perifert gränssnitt 577, till exempel ett gränssnitt av typen USB (”Universal Serial Bus”), trådlöst USB, firewire, periodisk RS232, parallell Centronics, PS/2, kan styrenheten 570 kommunicera med en datormus 578, ett tangentbord 579 eller någon annan periferisk 580, inklusive en joystick, en skrivare, en skanner, etc.
Det bör noteras att även om en allmängiltig dator beskrivits ovan för att realisera uppfinningen kan uppfinningen i lika grad realiseras i någon miljö där digital grafik, och i synnerhet SD-grafik, används t ex spelkonsoler, mobiltelefoner, MP3-spelare, etc. 10 532 399 19 Uppfinningen kan vidare realiseras i en mycket mer allmängíltig arkitektur. Arkitekturen kan till exempel bestå av många små processorkämor som kan exekvera varje typ av program. Detta innebär en sorts programvaru- GPU-enhet, i motsatts till mer hårdvarucentriska GPU-enheter.
Uppfinningen har huvudsakligen beskrivits ovan med hänvisning till några utföringsfonner. Dock, såsom inses av fackmannen inom området, är andra utföringsfonner än de ovan beskrivna i lika grad möjliga inom uppfinningens omfång, såsom definierats av de bifogade kraven.

Claims (14)

10 15 20 25 30 532 355 20 PATENTKRAV
1. Förfarande för skapande av digitalt representerad grafik, varvid förfarandet innefattar stegen att ta emot en första representation av en basprimitiv vilken är en geometrisk form såsom en polygon, en triangel. en fyrsiding, en linje, en kurva eller en Bézier-yta, varvid nämnda basprimitiv definieras av en sammanhängande uppsättning av vertexpunkter, tillhandahålla en uppsättning av instruktioner som är associerade med vertexpunktposítionsbestämning, exekvera nämnda uppsättning av instruktioner på nämnda första representation av nämnda basprimitiv med användning av gränsaritmetik så att en and ra representation av nämnda basprimitiv âstadkomrnes och låta nämnda andra representation av nämnda basprimitiv undergå en gallringsprocess.
2. Förfarande enligt krav 1, vidare innefattande stegen att bestämma en inneslutande volym som omsluter nämnda andra representation av nämnda basprimitiv och låta nämnda inneslutande volym undergå en gallringsprocess.
3. Förfarande enligt något av kraven 1-2, vidare innefattande steget att exekvera en tesselleringsprocess, varvid nämnda tesselleringsprocess baseras på ett utfall hos nämnda gallringsprocess.
4. Förfarande enligt något av kraven 1-3, varvid nämnda gallringsprocess är utbytbar.
5. Förfarande enligt något av kraven 1-4, varvid gränsaritmetiken är minst en från gruppen bestående av Tayloraritmetik, intervallaritrnetik och affin aritmetik. 10 15 20 25 30 532 355 21
6. Förfarande enligt krav 2, varvid nämnda steg att bestämma nämnda inneslutande volym vidare innefattar att beräkna ett minimum och ett maximum hos nämnda andra representation.
7. Förfarande enligt något av kraven 1-6, varvid nämnda andra representation är minst en från gruppen positionsgräns och normaigräns.
8. Förfarande enligt krav 1, varvid steget att exekvera nämnda uppsättning av instruktioner vidare innefattar stegen att: härleda en andra uppsättning av instruktioner från nämnda uppsättning av instruktioner som är associerade med vertexpunktpositionsbestämning och exekvera nämnda andra uppsättning av instruktioner för åstadkommande av en normaigräns.
9. Förfarande enligt krav 2, varvid nämnda steg att låta nämnda inneslutande volym undergå en gallringsprocess vidare innefattar minst ett av stegen att låta nämnda inneslutande volym undergå synfältsgallring, låta nämnda inneslutande volym undergå backface-gallring och låta nämnda inneslutande volym undergå occlusiomgallring.
10. Förfarande enligt krav 7, varvid nämnda steg att låta nämnda andra representation undergå nämnda gallringsprocess vidare innefattar att utföra minst ett av stegen att låta nämnda positionsgräns undergå synfältsgallring, låta nämnda positionsgräns eller nämnda normalgräns undergå backface-gallring och låta nämnda positionsgräns undergå occlusion-gallring.
11. Förfarande enligt krav 1-10, varvid ett utfall hos nämnda gallringsprocess innefattar en av ett beslut att förkasta nämnda basprimitiv och en tesselleringsfaktor. 10 15 20 25 532 399 22
12. Förfarande enligt krav 11, vidare innefattande steget att exekvera en tesselleringsprocess, om utfallet hos nämnda gallringsprocess innefattar en tesselleringsfaktor.
13. Apparat anordnad att skapa digitalt representerad grafik innefattande kretssystem för skapande av digitalt representerad grafik, varvid nämnda kretssystem är anordnat att: ta emot en första representation av en basprimitiv vilken är en geometrisk form såsom en polygon. en triangel, en fyrsiding, en linje, en kurva eller en Bézier-yta, varvid nämnda basprimitiv definieras av en sammanhängande uppsättning av vertexpunkter, tillhandahålla en uppsättning av instruktioner som är associerade med vertexpunktpositionsbestämning, exekvera nämnda uppsättning av instruktioner på nämnda första representation av nämnda basprimitiv med användning av gränsaritmetik så att en andra representation av nämnda basprimitiv åstadkommas och låta nämnda andra representation av nämnda basprimitiv undergå en gallringsprocess.
14. Datorprogramprodukt, innefattande datorprogramkod vilken lagras på ett datorläsbart lagringsmedium och vilken, när denna exekveras på en processor, utför förfarandet enligt något av kraven 1~12.
SE0800165A 2008-01-23 2008-01-23 Förfarande, apparat och datorprogramprodukt för s kapande av digitalt representerad grafik SE532399C2 (sv)

Priority Applications (12)

Application Number Priority Date Filing Date Title
SE0800165A SE532399C2 (sv) 2008-01-23 2008-01-23 Förfarande, apparat och datorprogramprodukt för s kapande av digitalt representerad grafik
PCT/SE2009/000022 WO2009093956A1 (en) 2008-01-23 2009-01-23 Method, apparatus, and computer program product for improved graphics performance
DE112009000180T DE112009000180T5 (de) 2008-01-23 2009-01-23 Verfahren, Vorrichtung und Computerprogrammprodukt für eine verbesserte Grafikperformance
US12/864,113 US9947130B2 (en) 2008-01-23 2009-01-23 Method, apparatus, and computer program product for improved graphics performance
JP2010543083A JP2011510396A (ja) 2008-01-23 2009-01-23 グラフィック・パフォーマンス改善のための方法、装置およびコンピュータ・プログラム・プロダクト
CN200980103541.4A CN102016928B (zh) 2008-01-23 2009-01-23 用于提高的图形性能的方法、设备
GB1012145.7A GB2468994B (en) 2008-01-23 2009-01-23 Method, apparatus and computer program product for improved graphics performance
HK11110654.3A HK1156428A1 (en) 2008-01-23 2011-10-07 Method, apparatus for improved graphics performance
JP2012209479A JP5518967B2 (ja) 2008-01-23 2012-09-24 グラフィック・パフォーマンス改善のための方法、装置およびコンピュータ・プログラム・プロダクト
US15/396,569 US10373370B2 (en) 2008-01-23 2016-12-31 Method, apparatus, and computer program product for improved graphics performance
US16/248,713 US11222462B2 (en) 2008-01-23 2019-01-15 Method, apparatus, and computer program product for improved graphics performance
US16/248,712 US11361498B2 (en) 2008-01-23 2019-01-15 Method, apparatus, and computer program product for improved graphics performance

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE0800165A SE532399C2 (sv) 2008-01-23 2008-01-23 Förfarande, apparat och datorprogramprodukt för s kapande av digitalt representerad grafik

Publications (2)

Publication Number Publication Date
SE0800165L SE0800165L (sv) 2009-07-24
SE532399C2 true SE532399C2 (sv) 2010-01-12

Family

ID=40973964

Family Applications (1)

Application Number Title Priority Date Filing Date
SE0800165A SE532399C2 (sv) 2008-01-23 2008-01-23 Förfarande, apparat och datorprogramprodukt för s kapande av digitalt representerad grafik

Country Status (1)

Country Link
SE (1) SE532399C2 (sv)

Also Published As

Publication number Publication date
SE0800165L (sv) 2009-07-24

Similar Documents

Publication Publication Date Title
US11222462B2 (en) Method, apparatus, and computer program product for improved graphics performance
US10032308B2 (en) Culling objects from a 3-D graphics pipeline using hierarchical Z buffers
US20230088494A1 (en) Tessellating patches of surface data in tile based computer graphics rendering
JP5111638B2 (ja) パラメトリック曲線をより小さなサブパッチに分割する装置およびその方法
EP1659539A1 (en) Method for efficient anti-aliasing of 3D graphics
US8654122B2 (en) Method, apparatus, and computer program product for improved graphics performance
CN104933749B (zh) 图形图元的裁剪
US20100097377A1 (en) Graphics Processing Using Culling on Groups of Vertices
TWI769138B (zh) 圖形處理之方法、流水線電路以及計算機程序
TWI633519B (zh) 基於線性化五維(5d)邊緣方程式之樣本揀選技術(二)
SE532399C2 (sv) Förfarande, apparat och datorprogramprodukt för s kapande av digitalt representerad grafik
CN114581596A (zh) 基于图形处理单元gpu驱动的几何形体快速渲染的方法
JP2011514583A (ja) 階層化深さ画像を使用する接触シミュレーション方法及び装置
US11468633B1 (en) Methods and systems for tile-based graphics processing
Michelucci et al. Interval-based tracing of strange attractors
Ashikhmin Image-space silhouettes for unprocessed models
Xiong et al. ETER: Elastic Tessellation for Real-Time Pixel-Accurate Rendering of Large-Scale NURBS Models
Lysykh et al. The realistic rendering of scenes defined by the cloud of points
CN117745923A (zh) 物体绘制方法、装置、图形处理器及存储介质
Ghali et al. Shadow Computation: A Unified Perspective.
Hsiao et al. A Hierarchical Triangle-Level Culling Technique for Tile-Based Rendering