SE532399C2 - Procedure, apparatus and computer software product for cutting digitally represented graphics - Google Patents
Procedure, apparatus and computer software product for cutting digitally represented graphicsInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 86
- 238000004590 computer program Methods 0.000 claims description 4
- 230000001427 coherent effect Effects 0.000 claims description 3
- 239000012634 fragment Substances 0.000 description 18
- 238000012360 testing method Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 5
- 239000000872 buffer Substances 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 210000000056 organ Anatomy 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 241001025261 Neoraja caerulea Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000004304 visual acuity Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden 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)
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) |
-
2008
- 2008-01-23 SE SE0800165A patent/SE532399C2/en unknown
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 |