SE532399C2 - Procedure, apparatus and computer software product for cutting digitally represented graphics - Google Patents

Procedure, apparatus and computer software product for cutting digitally represented graphics

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
Swedish (sv)
Other versions
SE0800165L (en
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/en
Priority to GB1012145.7A priority patent/GB2468994B/en
Priority to JP2010543083A priority patent/JP2011510396A/en
Priority to US12/864,113 priority patent/US9947130B2/en
Priority to PCT/SE2009/000022 priority patent/WO2009093956A1/en
Priority to DE112009000180T priority patent/DE112009000180T5/en
Priority to CN200980103541.4A priority patent/CN102016928B/en
Publication of SE0800165L publication Critical patent/SE0800165L/en
Publication of SE532399C2 publication Critical patent/SE532399C2/en
Priority to HK11110654.3A priority patent/HK1156428A1/en
Priority to JP2012209479A priority patent/JP5518967B2/en
Priority to US15/396,569 priority patent/US10373370B2/en
Priority to US16/248,712 priority patent/US11361498B2/en
Priority to US16/248,713 priority patent/US11222462B2/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. 20 25 30 532 399 2 Consequently, there are still problems with insufficient ability to improve the performance of digitally represented Greek.

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.Summary of the issue Due to the above, one purpose of the invention is to solve or at least reduce the problems discussed above.

Allmänt uppnås ovanstående ändamål medelst de bifogade oberoende patentkraven.In general, the above objects are achieved by the appended independent claims.

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.In accordance with a first aspect, the present invention is realized through a method for improving the performance of creating digitally represented graphs. The method includes the steps of: receiving a first representation of a base primitive, providing a set of instructions associated with vertex point position determination, executing said set of instructions on said first representation of said base primitive using boundary arithmetic to provide a second representation of said base primitive and allowing said second representation of said base primitive to undergo a thinning process. Performing thinning on base primitives is advantageous because base primitives, and representations of base primitives, can be rejected in prayer by the graphics pipeline, which results in performance gains.

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.Furthermore, a number of the surfaces that are invisible in the fully rendered image are not passed on in the process, which also results in performance gains. In other words, performing thinning on whole base primitives is advantageous because tessellation of the majority of invisible surfaces is avoided, resulting in performance gains.

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.The method may include the steps of determining an enclosing volume enclosing said second representation of said base primitive and the step of subjecting said enclosing volume to a thinning process.

Detta är fördelaktigt eftersom inga förutbestämda gränser måste tillhanda- hållas och eftersom den inneslutande volymen bestäms automatiskt.This is advantageous because no predetermined limits have to be provided and because the enclosing volume is determined automatically.

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.The method may comprise the step of executing a tessellation process, said tessellation process being based on an outcome of said thinning process. Thinning is thus performed before tessellation. Performing the tessellation after thinning results in performance gains because fewer base primitives are tessellated and are thus advantageous. Said thinning process could be the thinning process that said second representation undergoes and / or the thinning process that the enclosing volume undergoes.

Förfarandet kan innefatta att nämnda gallringsprocess är utbytbar.The method may comprise that said thinning process is interchangeable.

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.This is advantageous because the thinning process can be changed by, for example, a user. The fact that the thinning process is interchangeable applies to all embodiments of the first aspect.

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.The method may include boundary arithmetic is at least one of the group consisting of Taylor arithmetic, interval arithmetic and of arithmetic. This is advantageous because the method is flexible and supports different types of boundary arithmetic and is not limited to one type of boundary arithmetic. It is preferred to use Taylor nodes because curved surfaces and division schemes, which are often used in tessellation, are often based on polynomials. Another advantage is that polynomial calculations can be represented in an accurate way by means of Taylor models (provided that they are of a sufficiently large order of magnitude), which leads to very tight boundaries.

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.The method may comprise that said step of determining said containment volume further comprises calculating a minimum and a maximum of said second representation. This is advantageous because it is a performance-efficient way to determine the volume contained.

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.The method may comprise that said second representation is at least one from the group consisting of a position boundary and a normal boundary. The position and normal limits can be used to determine, for example, the position or range of said first representation of the base primitives. An additional advantage is that the position and normal limits are determined automatically.

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.The method may include the step of executing said set of instructions further comprising the step of deriving a second set of instructions from said set of instructions associated with vertex point position determination and the step of executing said second set of instructions to provide a nonnal boundary. This is advantageous since said second set of instructions is derived automatically and in addition the nominal limit is calculated automatically.

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.The method may comprise that the step of allowing said containment volume to undergo a thinning process further comprises at least one of the steps of undergoing said containment volume undergoing visual field thinning, allowing said containment volume to undergo backface thinning and allowing said containment volume to undergo occlusion thinning. An advantage of this is that many different thinning techniques are applicable.

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.The method may comprise comprising the step of subjecting said second representation (which is a position or normal boundary) said thinning process further comprising performing at least one of the steps of subjecting said position boundary to field of view thinning, allowing said position boundary or said normal boundary to undergo baokface thinning and allowing said position limit undergo occlusion thinning. An advantage of this is that many different thinning techniques are applicable.

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.The method may comprise that an outcome of said thinning process comprises one of a decision to reject said basic primitive and a tessellation factor. This is advantageous because rejecting a base primitive means a base primitive has less to render, which increases performance.

Tesselleringsfaktorn kan indikera att basprimitiven inte ska tesselleras vilket resulterar i prestandavinster.The tessellation factor may indicate that the basic primitives should not be tessellated, resulting in performance gains.

Förfarandet kan innefatta steget att exekvera en tesselleringsprocess, om utfallet hos nämnda gallringsprocess innefattar en tesselleringsfaktor.The method may comprise the step of executing a tessellation process, if the outcome of said thinning process comprises a tessellation factor.

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.This is advantageous because the performance is increased for each base primitive that is not tessellated or that is tessellated less. If the outcome of said thinning process is a decision to reject said basic primitive, no tessellation process is executed.

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.According to a second aspect, the present invention is realized by means of an apparatus arranged to create digitally represented graphics comprising circuit systems for improving the performance regarding the creation of digitally represented graphics. Said circuit system is arranged to: receive a first representation of a base primitive, provide a set of instructions associated with vertex point position determination, execute said set of instructions on said first representation of said base primitive using of boundary arithmetic to provide a second representation of said base primitive and subject said second representation of said base primitive to a thinning process.

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.It should be noted that said second aspect of the invention may be embodied with any combination of features corresponding to any of the features of the first aspect of the invention.

Fördelama med den första aspekten är lika tillämpliga på den andra aspekten.The benefits of the first aspect are equally applicable to the second aspect.

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.According to a third aspect, the present invention is realized by means of a computer program product, comprising computer program code which is stored on a computer readable storage medium and which, when executed on a processor, performs the method according to the first aspect of the invention.

Fördelarna med den första aspekten är lika tillämpliga på den tredje aspekten av uppfinningen.The advantages of the first aspect are equally applicable to the third aspect of the invention.

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.Other objects, features and advantages of the present invention will become apparent from the following detailed description, from the appended claims as well as from the drawings. In general, all terms used in the claims are to be construed in accordance with their ordinary meaning in the technical field, unless they are explicitly defined differently herein. All references to "an element, device, component, organ, step, etc." shall be construed as referring to at least one instance of said element, device, component, organ, step, etc., unless The struts of each method described herein need not be performed in the exact order in which they are described, unless this is explicitly stated.

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.BRIEF DESCRIPTION OF THE DRAWINGS Other features and advantages of the present invention will become apparent from the following detailed description of a presently preferred embodiment, taken in conjunction with the accompanying drawings, in which: FIG. illustrates how different devices in a display adapter according to prior art interact.

Fig 2a är ett blockschema som illustrerar hur olika enheter i en apparat kan samverka i en utföringsform av föreliggande uppfinning.Fig. 2a is a block diagram illustrating how different units in an apparatus may cooperate in an embodiment of the present invention.

Fig 2b är ett blockschema som illustrerar en utföringsfonn av förelig- gande uppfinning.Fig. 2b is a block diagram illustrating an embodiment of the present invention.

F lg 2c är ett blockschema som illustrerar en utförlngsform av förelig- gande uppfinning.Fig. 2c is a block diagram illustrating an embodiment of the present invention.

Fig 2d är ett blockschema som illustrerar en utföringsform av förelig- gande uppfinning.Fig. 2d is a block diagram illustrating an embodiment of the present invention.

Fig 3a och 3b är flödesscheman som visar processer för gallring av basprimitiver som kan exekveras i apparaten enligt figurema 2a-d.Figures 3a and 3b are flow diagrams showing processes for thinning base primitives that can be executed in the apparatus according to Figures 2a-d.

Fig 4 visar schematiskt processema för gallring av basprimitiver enligt figurema 3a-b.Fig. 4 schematically shows the processes for thinning of base primitives according to ur gures 3a-b.

Fig 5 visar en översiktsarkitektur för en allmängiltig dator som innefattar apparaten enligt figurema 2a-d.Fig. 5 shows an overview architecture for a universal computer which comprises the apparatus according to Figures 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.Detailed Description of an Embodiment The present invention will now be described in more detail in the following with reference to the accompanying drawings, in which certain particular embodiments of the invention are shown. However, this invention may be embodied in many different ways and should not be construed as limited to the embodiments described herein; Equal numbers consistently refer to equal elements.

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.Fig. 1 is a block diagram showing how different devices in a conventional display adapter known to those skilled in the art interact. A prior art display adapter may include a tessellation unit 120, a vertex point shader program 130, a triangle traversing unit 140 and a fragment shader program 150. The units of the prior art display adapter are well known to those skilled in the art. The input 110 to the tessellation unit 120 is base primitive, which may be a triangle, quadrilateral or other geometric shape. Tessellation means that many, smaller, often coherent primitives are created. For example, a base triangle (i.e. the base primitive) is tessellated in the tessellation unit 120 to 100x100 smaller contiguous triangles covering the base triangle.

Positionerna hos vertexpunktema hos dessa mindre trianglar kan sedan beräknas i vertexpunktshaderprogramenheten 130 så att en krökt yta bildas.The positions of the vertex points of these smaller triangles can then be calculated in the vertex point hader program unit 130 to form a curved surface.

Det finns olika typer av tessellering, till exempel likformig tessellering, deltessellering och anpassningsbar tessellering.There are different types of tessellation, such as uniform tessellation, partial tessellation and adaptable tessellation.

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).The vertex point shader program unit 130 receives barycentric coordinates for each vertex point from the tessellation unit 120 and calculates, for example, the position, p (u, v), of the vertex point as a function of the barycentric coordinates (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.The triangle traversing unit 140 is responsible for establishing polygons as ordered by a connected controller. Although each polygon can be used, triangles are usually used. For each polygon, the triangle traversing unit 140 divides the polygons to be rendered into one or more blocks, each block being at least partially overlapped by the polygons. Generally, a block is a group of fragments. A block is a two-dimensional rectangle that contains a number of fragments. Each of these fragments corresponds to one pixel and includes all the data required for rendering the pixel and for testing whether the pixel should be rendered on the screen. A typical size of a block is 8 times 8 fragments, even if each block size is within the scope of the invention.

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.Another important task for the triangle traversing unit 140 is to find the fragments contained within the geometric primitive (i.e. the triangle) to be rendered. This can be done using a variety of techniques, the techniques being known to one skilled in the art.

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.The fragment shader program 150 executes a fragment shader program for each fragment sent to this unit. Each of these fragments corresponds to a pixel and includes data required to render the pixel and to test whether the pixel should be rendered on the screen.

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.Said fragment data includes raster position, depth, color, texture coordinates, stencil, alpha (used for mixing), etc. For each pixel, a number of fragment samples can be found.

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.Furthermore, the fragments are processed to, for example, combine previously calculated color with textures, as well as add effects such as fog, as well as, when possible, identify fragments that do not need to be rendered, i.e. fragment thinning.

Fragmentshaderprogrammet 150 kan vidare utföra djuptest, alfatest och blandning innan fragmenten skrivs till målbuffertar.The fragment shader program 150 may further perform depth testing, alpha testing and mixing before writing the fragments to target buffers.

Nämnda utdata 150 från bildskärmsadaptem enligt känd teknik kan visas på en bildskärm.Said output 150 from the prior art display adapter can be displayed on a monitor.

Det bör noteras att från och med här kommer föreliggande uppfinning att beskrivas.It should be noted that from here, the present invention will be described.

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.Various embodiments of an apparatus arranged to create digitally represented graphics according to the invention will be described below with reference to fi g 2. The apparatus comprises circuit systems for improving the performance regarding the creation of digitally represented graphics. Said apparatus can be designed as a display adapter and will hereinafter be referred to as a display adapter.

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.Fig. 2a is a block diagram showing an embodiment of a display adapter 205 according to the present invention. The display adapter 205 includes circuitry for improving the performance of creating digitally represented graph, which constitutes a base primitive thinning unit 212. The input 210 to the base primitive thinning unit 212 is a first representation of a base primitive. A geometric primitive in the field of computer graphics is usually interpreted as atomic geometric objects that the system can handle, such as drawing or storing. All other Greek elements are made up of these primitives.

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.The base primitives are a suitable geometric representation which can be tessellated to many smaller geometric primitives such as triangles. A base primitive is non-tessellated. Examples of basic primitives are triangles, quadrilaterals, lines, curves, Bézier surfaces, 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.Polygons they fi are aligned using a coherent set of vertex points. For example, a triangle has three vertices 10 15 20 25 30 532 353 9 and a quadrilateral has four vertices. In computer graphics, the vertex points are not only associated with three spatial coordinates but also with other Greek information that is necessary for rendering the object correctly, such as colors, reflectance properties, textures, and surface normals.

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.A first representation of a base primitive can be a set of attributes. The set of attributes can be, for example, one from the group of control point, vertex point position, normal, texture coordinate, etc. For example, a triangle can also be described using three vertex point positions, and a quadrilateral polygon using four vertex point positions. Each vertex point position can also be associated with other attributes, such as normals and texture coordinates. Another example is a Bézier triangle or a Bézier surface which can be described using a set of vertex point positions and control points.

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.In the base primitive thinning unit 212, thinning is performed on base primitives and on representations of base primitives. Output 222 from the base thinning unit may be that the base primitives should be rejected. In another embodiment, the output 222 may be that a tessellation factor is created. This tessellation factor can be set to a value that indicates that the base primitives should be rejected. Alternatively, the tessellation factor can be set to a value indicating that the base primitives could not be rejected. Furthermore, the tessellation factor can be set to a value that indicates that the base primitives should not be tessellated, should be tessellated roughly or should be tessellated at a low frequency.

Detaljema och effektema hos basprimitivgallring beskrivs vidare i samband med fig 3a och fig 3b nedan.The details and effects of basic primitive thinning are further described in connection with fi g 3a and fi g 3b below.

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.Output 224 from the display adapter 205 can be displayed on a monitor. In another embodiment, see Fig. 2b, the display adapter 230 includes a base primitive thinning unit 212 and a tessellation unit 214. The tessellation unit 214 may be of a similar type to the tessellation unit 120 described above with reference to fi g 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.The basic primitive thinning unit 212, the input data 210 of the basic primitive thinning unit 212 and the output 224 of the display adapter 230 have been previously described in connection with fi g 2a. 10 15 20 25 30 532 393 10 The tessellation unit does not tessellate the base primitives if the tessellation unit 214 from the base primitive thinning unit 212 receives a base primitive and a tessellation factor indicating that the base primitives should not be tessellated.

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.The tessellation unit 214 tessels the base primitives if the tessellation unit 214 from the base primitive thinning unit 212 receives a base primitive but does not receive a tessellation factor indicating that the base primitives should not be tessellated.

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.Fig. 2c is a block diagram showing how different units of an image sensing adapter 205 may cooperate in an embodiment of the present invention. The display adapter 205 includes a basic primitive thinning unit 212, a tessellation unit 214, a vertex shader program 216, a triangle traversing unit 218 and a fragment shader program 220. The units 214, 216, 218 and 220 may be of a similar type to those described above with reference to fi g 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.The basic primitive thinning unit 212, the input data 210 of the basic primitive thinning unit 212 and the output 224 of the display adapter 230 have been described previously in connection with 2 g 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.In yet another embodiment, see Fig. 2d, the display adapter 250 includes a basic primitive thinning unit 212, a tessellation unit 214, a vertex shader program 216, a triangular traversing unit 218, a programmable thinning unit (PCU), and a fragments program 2206. The units 214, 216, 218 and 220 may be of the same or similar type as those described above with reference to fi g 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.The basic primitive thinning unit 212, the input data 210 of the basic primitive thinning unit 212 and the output 224 of the display adapter 230 have been described previously in connection with Fig. 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.In the programmable thinning unit 226, thinning is performed on blocks according to a replaceable thinning program, also known as a replaceable thinning module. The details of this thinning program and the effects are explained in more detail in the unpublished Swedish patent application SE0700162-1, the contents of which are hereby incorporated by reference. Fig. 3a shows a fate diagram for a basic primitive thinning program which can be executed in the basic primitive thinning unit 212 according to Figs. 2a, b, c and d.

I steg 310 tas en första representation av en basprimitiv emot.In step 310, a first representation of a base primitive is received.

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.In step 320, a set of instructions is provided. The provided set of instructions is associated with determining vertex point positions. Vertex point positions are calculated, for example, using barycentric coordinates for each vertex point as p (u, v), as described in connection with the vertex shader program unit 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.The set of instructions is derived or retrieved from a vertex shader program that can be executed in the vertex shader program unit 216. The set of instructions is then analyzed and all instructions used to calculate the vertex point position are isolated. The instructions are redefined to work with boundary arithmetic, such as Taylor arithmetic, interval arithmetic, arithmetic or other suitable arithmetic known to those skilled in the art. the new instructions are renamed Taylor models.

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.A brief description of Taylor models follows to facilitate understanding of subsequent steps. Interval is used in Taylor models and the following designations are used for an interval: a = | '_, šj = {x | gsxsâ} equation (1) Given an n + 1 times differentiable function, f (u), where ue [u, ,, u,], The Taylor model of f consists of a Taylor polynomial, Tf, and an interval residual, 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.A Taylor model of the nzte order, denoted here f, over the domain ue [u °, u,] is then: 701) E -u ,,) "+ ßrfjík Écku * + í ,, equation (2) -" * 'k = ok = 0 10 15 20 25 30 35 532 395 12 nm ___ where ZL-kw- (u-u fl âr Taylor polynomial and lrprf] are the interval- k = 0 - * residual terms. This representation is called a Taylor- model and is a conservative inclusion of the function f over the domain ue [u ,,, u,}. It is also possible to define arithmetic operators on Taylor models where the result is also a conservative inclusion (another Taylor model). a simple example, let's say that f + g is to be calculated and that these functions are represented as Taylor models, f = (Tfif) and š = (Tgjfg) The Taylor model of the sum is then (Tf + Tgjf + íg). complex operators such as multiplication, sine, logarithm, exponential function, reciprocal value, etc. can also be derived. r Polynomials with lnterval Remaínder Bounds. Reliable 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) .The barycentric coordinates can be redefined as a Taylor model as follows: 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.In step 330, the provided set of instructions is executed on said first representation of the base primitives using boundary arithmetic. An outcome of this execution of said set of instructions is a second representation of the basic primitives.

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.Said second representation of the base primitives may be a Taylor model and may be a polynomial approximation of the vertex point position attribute. More specifically, the output from step 330 may be position limits: Mum = (ñ "51" § = 'ß "), that is, four Taylor models. For a single component, for example x, this can be expressed in the power form as follows (the remainder, êf, has been omitted to increase the clarity): p (u, v) = Xaärfvf i + jsn equation (3) The boundary arithmetic used in step 330 may be, for example, Taylor arithmetic, interval arithmetic, af fi n arithmetic or any other suitable arithmetic known to a person skilled in the art. In one embodiment, said second representation of said base primitive may be normal boundaries. For a parameterized area, the abnormal normal, n, can be calculated as: 10 15 20 25 30 35 532 395 13 equation (4) nam) z öpgfzv) X öpüav) âv The normal limits, i.e. the Taylor model of the normal, are then calculated as against »x falun) öu öv ñ (u, v) = equation (5) In an embodiment, step 330, the step of executing said set of instructions may comprise step 331, fi g 3b. Step 331 comprises the step of deriving a second set of instructions from said set of instructions associated with vertex point position determination.

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.Said second set of instructions is retrieved from a vertex shader program executed in the vertex shader program unit 216, the instructions are analyzed and all instructions used for calculating the vertex point position, the arithmetic instructions, are isolated. the instructions are renamed to work on Taylor models (instead of fl surface numbers) and input to the new instructions is renamed to be Taylor models. Said second set of instructions is then executed to establish normal boundaries.

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.An enclosing volume for a set of objects is a closed volume that completely encloses the union of objects in the set. enclosing volumes can be of different sizes, for example boxes such as cubes or rectangles, spheres, cylinders, polytopes and convex housings.

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.In one embodiment, an enclosing volume enclosing said second representation of said base primitive, step 350 in fig 3b, and the enclosing volume is subjected to a thinning process. The thinning process is further described in connection with step 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.The enclosing volume according to the invention is tight-fitting. The fact that the inventive enclosing volume is tightly fitting means that the area or volume of the enclosing volume is as small as possible but at the same time completely encloses said second representation of said basic primitive. In one embodiment, the enclosing volume is determined by calculating a minimum and a maximum of said second representation, step 351. Said second representation of the base primitive may be Taylor polynomial in power form.

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.One way of determining the enclosing volume may be by calculating the derivatives of the Taylor polynomial and thus finding the minimum and maximum of said second 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.Another way to determine the enclosing volume may be as follows. Taylor polynomial is transformed into Bemstein form. Due to the fact that the property of the Bemstein base as a convex envelope guarantees that the actual surface or curve of the polynomial lies within the convex envelope of the checkpoints obtained in the Bemstein base, the enclosing volume is calculated by entering the minimum and maximum checkpoint values in each dimension. Conversion of equation 3 to Bernstein base gives: PÛQV) = ZPijBr; (uav) msn equation (6) where B; (u, v) -_- l-Juäwf (1 - u -v) "" '"f is the Bemstein polynomial in the two-dimensional case over a triangular domain. This conversion is performed using the following formula, the formula being described in 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 "lm equation (7) To calculate an enclosing box, simply calculate the minimum and maximum value over all p for each dimension x, y, z, and This gives an enclosing box É = (ÉNÉWILÉW) in the cut-coordinate system, where each element is an interval, for example å, = [b_ ,, In step 340, said second representation of the base primitives is subjected to a thinning process.

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.Thinning to avoid drawing objects, or parts of objects, that are not visible. Prior art GPU units perform thinning on tessellated polygons.

Föreliggande uppfinning utför gallring innan ens tessellering sker vilket resulterar i prestandavinster.The present invention performs thinning before even tessellation occurs resulting in performance gains.

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.With this approach, the above-derived position limits, normal limits and the enclosing volume are used for the use of different thinning techniques on the basic primitives.

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.In one embodiment, view frustum culling is performed using said position boundary or said enclosing volume, step 341 tig 3b. In one embodiment, occlusion thinning is performed using said position limit or said enclosing volume, step 343 fi g 3b.

I en utföringsforrn utförs minst ett av stegen 341-343.In one embodiment, at least one of steps 341-343 is performed.

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.The thinning techniques described below should not be construed as limiting but are provided as examples. Those skilled in the art will appreciate that backface thinning, occlusion thinning, and field of view thinning can be performed using techniques other than those described below.

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.Field of view thinning is a thinning technique based on the fact that only objects that will be visible, ie that are located inside the current field of view, will be drawn. The field of view can be fi niered as the area of space in the modeled world that can be visible on the screen. Drawing objects out of sight would be a waste of time and resources because they are still not visible. If an object is completely out of sight, it may not be visible and may be discarded. In one embodiment, the position limits of the enclosing volume are tested against the plane of the field of view. Since the enclosing volume, å, is in the homogeneous cut-coordinate system, the test can be performed in the cut-coordinate system. A standard plan-box test optimization can be used, in which only a single corner of the enclosing volume, the enclosing volume being an enclosing box, is used to calculate the planarization equation. Each plant test then involves an addition and a comparison. For example, a test is performed on whether the volume is outside the left plane using b, + b ,, <0. The test can also be performed using the position limits ß (u, v) = (ß fl ßwßvßw). Since these tests are time and resource efficient, it is advantageous to let the visual acuity test be the first test.

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.Backfaoe thinning rejects objects that are facing away from the viewer, that is, the object's normal vector is directed away from the viewer. These objects will not be visible and thus there is no need to draw them.

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.Given a point, p (u, v), on a surface, backface thinning is usually calculated as: c = p (u, v) - n (u, v) equation (8) Where n (u, v) is the normal vector ( u, v). If c> 0, then p (u, v) is used for the specific value of (u, v). As such, the formula can also be used for thinning an entire triangle which has only a single norrnal. The Taylor model of the scalar product (see equations 5 and 8) is calculated: Z = ñ (u, v) -ñ (u, v). In order to perform backface thinning, the following must apply to the entire triangle domain: E> 0. The lower limit of 'E is again conservatively estimated using the Bernstein shape's feature of convex casing. This gives an interval, E = (921, and the triangle (which has not been tessellated in this mode) can be thinned if g> O. In another embodiment, interval limits are calculated for the standards for checking whether the backface condition is met.

Testet kan också utföras med användning av positionsgränserna ]6(u,v) = (ßvßyjfiz jfiw) eller altemativt, den inneslutande volymen.The test can also be performed using the position limits] 6 (u, v) = (ßvßyj fi z j fi w) or alternatively, the enclosing volume.

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 thinning means that objects that are blocked are discarded. In the following, occlusion thinning will be described for an enclosing box, but those skilled in the art will appreciate that it is possible to perform occlusion thinning even on other types of enclosing volumes.

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.The occlusion thinning technique is very similar to hierarchical depth buffering, except that only a single extra level is used (8x8 pixel blocks) in the depth buffer. The maximum depth value Zfjx is stored in each block. This is a standard technology in GPUs and is used for rasterizing triangles. The enclosing box, b, for the cut-coordinate system is projected and all blocks that overlap this axis-oriented box are visited. At each block, the classical occlusion test is performed: Zf; z Z fi å, which indicates that the box is blocked at the current block if the comparison is fulfilled. The minimum depth of the box, Zf fi, is obtained from the enclosing box of the clip coordinate system, and the maximum depth of the block, Z fi f,, from the hierarchical depth buffer (which already exists in contemporary GPUs). Note that testing can be terminated as soon as you find that a block is not blocked and that it is straightforward to add levels to the hierarchical depth buffer. The occlusion thinning test can be seen as a very inexpensive pre-rasterization of the enclosing box of the triangle to be tessellated. Because it works on a block basis, it is less expensive than an occlusion issue. in another embodiment, the test can also be performed using the position limits, '; 3 (u, v) = (ßvíy, ßzj fi w). In one embodiment, the thinning process is interchangeable. This means that the basic primitive thinning unit 212 can be provided with a user-defined thinning process.

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.Step 340 (and 350), executing a thinning process, may have different outcomes. In one embodiment, an outcome of the thinning process may be that the basic primitives are to be rejected. In another embodiment, an outcome of the thinning process may be that a tessellation factor is created. This tessellation factor can be set to a value that indicates that the base primitives should be rejected. Alternatively, the tessellation factor can be set to a value indicating that the base primitives could not be rejected. Furthermore, the tessellation factor can be set to a value that indicates that the base primitives should not be tessellated.

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.In one embodiment, after step 340 (and step 350) of executing a thinning process, the outcome of the execution of a thinning process is sent to the tessellation unit 214. A tessellation process is executed, step 360, fi g 3b. If the tessellation unit 214 receives a base primitive and a tessellation factor indicates that the base primitives are not to be tessellated, the tessellation unit does not tessellate the base primitives.

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.If the tessellation unit 214 receives a base primitive that was not rejected in the thinning process but does not receive a tessellation factor indicating that the base primitives should not be tessellated, the tessellation unit 214 tessels the base primitives.

Stegen som beskrivs i samband med fig 3a och b kan utföras i apparaten 205, 230, 240, 250 enligt uppfinningen.The steps described in connection with fi g 3a and b can be performed in the apparatus 205, 230, 240, 250 according to the invention.

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. 4 shows the results of the steps of Figs. 3a and b. Fig. 4a shows a base primitive in the form of a base triangle 405. Fig. 4b shows the resulting created surface 410 over the base triangle 405. Fig. 4b shows the resulting created the surface 410 over the base triangle 405 which is determined by the vertex shader program unit 218 (and the tessellation frequency). In fi g 4c, the base triangle is expressed in Taylor form (polynomial 415 and interval residual term 420, 425) and thus a conservative estimate of the area 410 is obtained. cover). In Fig. 4e, the interval residues 420, 425 from the Taylor model are added to the Bemstein boundaries 430 and thus conservative surface boundaries 445, 450 are obtained.

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.Fig. 5 shows an overview architecture of a typical universal computer 583 which includes the display adapter 205, 230, 240, 250 according to Fig. 2. The computer 583 has a controller 570, such as a CPU, which can execute software instructions. The control unit 570 is connected to a non-permanent memory 571, such as a RAM ("Random Access Memory") and a display adapter 500, the display adapter corresponding to the display adapters 205, 230, 240 and 250 according to Fig. 2. The display adapter 500 is in turn connected to a monitor 576, such as a CRT monitor, an LCD monitor, etc. The controller 570 is also coupled to permanent storage 573, such as a hard disk or ash memory, and optical storage 574, such as optical media readers and / or printers such as CD, DVD, HD-DVD or Blue-ray A network interface 581 is also connected to the controller 570 to provide access to a network 582, such as a local area network, a global network (such as the Internet), a wireless local area network or Through a peripheral interface 577, for example a USB (Universal Serial Bus) type interface, wireless USB, fi rewire, periodic RS232, parallel Centronics, PS / 2, the control unit 570 can communicate a with a computer mouse 578, a keyboard 579 or any other peripheral 580, including a joystick, a printer, a scanner, 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.It should be noted that even if a universal computer is described above for realizing the invention, the invention may equally well be realized in any environment where digital graphics, and in particular SD graphics, are used, for example, game consoles, mobile phones, MP3 players, etc. 399 19 The invention can also be realized in a much more universal architecture. The architecture can, for example, consist of many small processor cores that can execute each type of program. This means a kind of software GPU drive, as opposed to more hardware-centric GPUs.

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.The invention has mainly been described above with reference to some embodiments. However, as will be appreciated by those skilled in the art, embodiments other than those described above are equally possible within the scope of the invention, as defined by the appended claims.

Claims (14)

10 15 20 25 30 532 355 20 PATENTKRAV10 15 20 25 30 532 355 20 PATENT REQUIREMENTS 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.A method of creating digitally represented graphics, the method comprising the steps of receiving a first representation of a base primitive which is a geometric shape such as a polygon, a triangle. a quadrilateral, a line, a curve or a Bézier surface, said base primitive being defined by a coherent set of vertex points, providing a set of instructions associated with vertex point position determination, executing said set of instructions on said first representation of said base primitive using of boundary arithmetic so that a second representation of said base primitive is achieved and allowing said second representation of said base primitive to undergo a thinning process. 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.The method of claim 1, further comprising the steps of determining an enclosing volume enclosing said second representation of said base primitive and subjecting said enclosing volume to a thinning process. 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.A method according to any one of claims 1-2, further comprising the step of executing a tessellation process, said tessellation process being based on an outcome of said thinning process. 4. Förfarande enligt något av kraven 1-3, varvid nämnda gallringsprocess är utbytbar.A method according to any one of claims 1-3, wherein said thinning process is interchangeable. 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 21A method according to any one of claims 1-4, wherein the boundary arithmetic is at least one from the group consisting of Taylor arithmetic, interval arithmetic and of arithmetic. 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.The method of claim 2, wherein said step of determining said containment volume further comprises calculating a minimum and a maximum of said second 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.A method according to any one of claims 1-6, wherein said second representation is at least one from the group position boundary and norm boundary. 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.The method of claim 1, wherein the step of executing said set of instructions further comprises the steps of: deriving a second set of instructions from said set of instructions associated with vertex point position determination and executing said second set of instructions to achieve a standard boundary. 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.The method of claim 2, wherein said step of allowing said containment volume to undergo a thinning process further comprises at least one of the steps of undergoing said containment volume undergoing field of view thinning, allowing said containment volume to undergo backface thinning, and allowing said containment volume to undergo occlusion thinning. 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.The method of claim 7, wherein said step of subjecting said second representation to said thinning process further comprises performing at least one of the steps of subjecting said position boundary to field of view thinning, subjecting said position boundary or said normal boundary to backface thinning, and allowing said position boundary to undergo occlusion. thinning. 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 22A method according to claims 1-10, wherein an outcome of said thinning process comprises one of a decision to reject said base primitive and a tessellation factor. 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.The method of claim 11, further comprising the step of executing a tessellation process, if the outcome of said thinning process comprises a tessellation factor. 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.Apparatus arranged to create digitally represented graphics comprising circuit systems for creating digitally represented graphics, said circuit system being arranged to: receive a first representation of a base primitive which is a geometric shape such as a polygon. a triangle, a quadrilateral, a line, a curve or a Bézier surface, said base primitive being denoted by a continuous set of vertex points, providing a set of instructions associated with vertex point position determination, executing said set of instructions on said first representation of said vertex point base primitives using boundary arithmetic so as to provide a second representation of said base primitives and subject said second representation of said base primitives to a thinning process. 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.A computer program product, comprising computer program code which is stored on a computer-readable storage medium and which, when executed on a processor, performs the method according to any one of claims 1 ~ 12.
SE0800165A 2008-01-23 2008-01-23 Procedure, apparatus and computer software product for cutting digitally represented graphics SE532399C2 (en)

Priority Applications (12)

Application Number Priority Date Filing Date Title
SE0800165A SE532399C2 (en) 2008-01-23 2008-01-23 Procedure, apparatus and computer software product for cutting digitally represented graphics
DE112009000180T DE112009000180T5 (en) 2008-01-23 2009-01-23 Method, apparatus and computer program product for improved graphics performance
JP2010543083A JP2011510396A (en) 2008-01-23 2009-01-23 Method, apparatus and computer program product for improving graphic performance
US12/864,113 US9947130B2 (en) 2008-01-23 2009-01-23 Method, apparatus, and computer program product for improved graphics performance
PCT/SE2009/000022 WO2009093956A1 (en) 2008-01-23 2009-01-23 Method, apparatus, and computer program product for improved graphics performance
GB1012145.7A GB2468994B (en) 2008-01-23 2009-01-23 Method, apparatus and computer program product for improved graphics performance
CN200980103541.4A CN102016928B (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 (en) 2008-01-23 2012-09-24 Method, apparatus and computer program product for improving graphic performance
US15/396,569 US10373370B2 (en) 2008-01-23 2016-12-31 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
US16/248,713 US11222462B2 (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 (en) 2008-01-23 2008-01-23 Procedure, apparatus and computer software product for cutting digitally represented graphics

Publications (2)

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

Family

ID=40973964

Family Applications (1)

Application Number Title Priority Date Filing Date
SE0800165A SE532399C2 (en) 2008-01-23 2008-01-23 Procedure, apparatus and computer software product for cutting digitally represented graphics

Country Status (1)

Country Link
SE (1) SE532399C2 (en)

Also Published As

Publication number Publication date
SE0800165L (en) 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
CN115828828B (en) Generation of control streams for tiles
JP5111638B2 (en) Apparatus and method for dividing a parametric curve into smaller subpatches
EP1659539A1 (en) Method for efficient anti-aliasing of 3D graphics
US8654122B2 (en) Method, apparatus, and computer program product for improved graphics performance
EP2402910B1 (en) Seamless fracture generation in a graphic pipeline
KR20110093404A (en) Method and apparatus for rendering 3d graphics
US20100097377A1 (en) Graphics Processing Using Culling on Groups of Vertices
TWI490816B (en) Sample culling based on linearized 5d edge equations
CN114581596A (en) Geometric body fast rendering method based on graphic processing unit GPU drive
US11468633B1 (en) Methods and systems for tile-based graphics processing
SE532399C2 (en) Procedure, apparatus and computer software product for cutting digitally represented graphics
JP2011514583A (en) Contact simulation method and apparatus using layered depth images
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 (en) Object drawing method, object drawing device, graphics processor and storage medium
Wang et al. Geometry shadow maps
Hsiao et al. A Hierarchical Triangle-Level Culling Technique for Tile-Based Rendering