WO2013101167A1 - Five-dimensional rasterization with conservative bounds - Google Patents

Five-dimensional rasterization with conservative bounds Download PDF

Info

Publication number
WO2013101167A1
WO2013101167A1 PCT/US2011/068055 US2011068055W WO2013101167A1 WO 2013101167 A1 WO2013101167 A1 WO 2013101167A1 US 2011068055 W US2011068055 W US 2011068055W WO 2013101167 A1 WO2013101167 A1 WO 2013101167A1
Authority
WO
WIPO (PCT)
Prior art keywords
depth intervals
depth
processor
tile
computing
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/US2011/068055
Other languages
French (fr)
Inventor
Tomas G. Akenine-Möller
Jim K. NILSSON
Carl J. Munkberg
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
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 US13/992,911 priority Critical patent/US9396582B2/en
Priority to CN201180076181.0A priority patent/CN104025180B/en
Priority to PCT/US2011/068055 priority patent/WO2013101167A1/en
Priority to TW101149550A priority patent/TWI614720B/en
Publication of WO2013101167A1 publication Critical patent/WO2013101167A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/00Three-dimensional [3D] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/00Three-dimensional [3D] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/10Special adaptations of display systems for operation with variable images
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/122Tiling

Definitions

  • This relates to graphics processing and particularly to the graphical depiction of motion blur.
  • Motion blur is an important visual effect that reduces temporal aliasing and makes moving content appear smoother.
  • efficient rendering of motion blur in real-time three-dimensional graphics is nontrivial.
  • stochastic rasterization of motion blur moving geometric primitives are sampled in both space and time, using a large set of samples to obtain high-quality motion-blurred images with low noise levels.
  • an inside test is executed to determine whether the moving primitive covers the sample. This overlap test in x, y and t space is generally more expensive than an inside test in traditional rasterizers.
  • a stochastic rasterizer that supports simultaneous motion blur and depth of field executes visibility tests for each triangle in a five dimensional (5D) domain (x,y,u,v,t). This domain consists of spatial positions (x,y), lens coordinates (u, v) and time t. These visibility tests are computationally much more expensive than a single visibility test in standard 2D rasterization. Additionally, for each triangle, many (e.g. 16-64) such tests are executed per pixel to obtain images with low noise levels.
  • 5D five dimensional
  • 5D rasterization is expected to become part of DirectX and OpenGL at some point in the future. This will enable us to render images with accurate and correct depth of field and motion blur.
  • Figure 1 is a screen shot from an interactive visualizer according to one embodiment
  • Figure 2 is a depiction of the construction of a moving axis-aligned bounding box according to one embodiment
  • Figure 3 is a flow chart for one embodiment
  • Figure 4 is a schematic depiction for one embodiment.
  • a per-tile test in the 5D rasterizer outputs intervals for both lens parameters, (u,v), and for time, t, as well as for depth z. These intervals are conservative bounds for the current tile for 1 ) the visible lens region, 2) the time the triangle overlaps the tile, and 3) the depth range for the triangle inside the tile.
  • This output can be sent (when needed) further down the graphics pipeline to the pixel shader, and used for various things by the application developer.
  • the interesting thing is that this results in a conservative 5D rasterizer. Previously, we have only had access to conservative 2D rasterization. This invention extends this to a whole new domain and, as a starting point, we have discovered that
  • a moving plane equation which has larger depth than the moving triangle. Hence, this is useful for computing maximum depth (w ⁇ x ). Similar techniques can be used to compute minimum depth(w i n ).
  • v 0 t ensures (by construction) that the triangle is " below" the moving plane equation, n 0 (t). If n 0 (t) does not sweep through the camera origin, e.g. d 0 + v 0 t ⁇ 0 Vt e [0,l], (4) then n 0 (t) has greater depth than the moving triangle at all times, t e [0,1] . Any ray from the camera that intersects the triangle will intersect the triangle before intersecting the plane.
  • we want to derive a way of using the plane equation at t 1 as well.
  • Wmax min(w n , wj 1 ), (10) and similar computations are done to calculate w" in .
  • Wmax min(w n , wj 1 ), (10) and similar computations are done to calculate w" in .
  • Equation (9) can suddenly become zero for many more cases due to that we now have a lens with finite extents to handle. Detecting whether a triangle plane intersects with a convex polygonal lens can be done by computing signed distances from the lens vertices to the plane equation. If there is at least one with positive and one with negative distance, then the plane intersects the lens, and we simply disable the usage of that plane. We can also use a bounding box around the lens shape and use the vertices of the bounding box for the computations described just above.
  • a sequence 10 shown in Figure 3 may be implemented in software, firmware and/or hardware.
  • software and firmware embodiments it may be implemented by computer executed instructions stored in a non-transitory computer readable medium such as optical, magnetic or semiconductor storage.
  • the sequence of Figure 3 begins with a triangle set-up stage 12. The per-triangle constants needed for bounding are computed. Next a tile test 14 is performed. In the tile test, u, v, f and z intervals are computed for each tile. A tile is rejected if it is outside the valid range in any of the intervals. Then the u, v and f intervals are used to reject individual samples as shown in block 16. Finally, in the pixel shader, block 18, the u, v, i and z intervals are made available for the pixel shader. This allows for new algorithms in the pixel shader such as caustics rendering and dynamic collision detection.
  • the computer system 130 may include a hard drive 134 and a removable medium 136, coupled by a bus 104 to a chipset core logic 1 1 0.
  • the computer system may be any computer system, including a smart mobile device, such as a smart phone, tablet, or a mobile Internet device.
  • a keyboard and mouse 120, or other conventional components, may be coupled to the chipset core logic via bus 108.
  • the core logic may couple to the graphics processor 1 12, via a bus 105, and the central processor 100 in one embodiment.
  • the graphics processor 1 12 may also be coupled by a bus 1 06 to a frame buffer 1 14.
  • the frame buffer 1 14 may be coupled by a bus 107 to a display screen 1 18.
  • a graphics processor 1 12 may be a multi-threaded, multi-core parallel processor using single instruction multiple data (SIMD) architecture.
  • SIMD single instruction multiple data
  • the pertinent code may be stored in any suitable semiconductor, magnetic, or optical memory, including the main memory 132 (as indicated at 139) or any available memory within the graphics processor.
  • the code to perform the sequences of Figures 5 or 6 may be stored in a non-transitory machine or computer readable medium, such as the memory 132, and/or the graphics processor 1 12, and/or the central processor 100 and may be executed by the processor 1 00 and/or the graphics processor 1 12 in one embodiment.
  • Figure 3 is a flow chart.
  • the sequences depicted in these flow charts may be implemented in hardware, software, or firmware.
  • a non-transitory computer readable medium such as a semiconductor memory, a magnetic memory, or an optical memory may be used to store instructions and may be executed by a processor to implement the sequences shown in Figure 3.
  • graphics processing techniques described herein may be implemented in various hardware architectures. For example, graphics functionality may be integrated within a chipset. Alternatively, a discrete graphics processor may be used. As still another embodiment, the graphics functions may be implemented by a general purpose processor, including a multicore processor. [0041 ] References throughout this specification to "one embodiment” or “an embodiment” mean that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one implementation encompassed within the present invention. Thus, appearances of the phrase “one embodiment” or “in an embodiment” are not necessarily referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be instituted in other suitable forms other than the particular embodiment illustrated and all such forms may be encompassed within the claims of the present application.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Description

FIVE-DIMENSIONAL RASTERIZATION
WITH CONSERVATIVE BOUNDS
Background
[0001 ] This relates to graphics processing and particularly to the graphical depiction of motion blur.
[0002] Motion blur is an important visual effect that reduces temporal aliasing and makes moving content appear smoother. However, efficient rendering of motion blur in real-time three-dimensional graphics is nontrivial. In stochastic rasterization of motion blur, moving geometric primitives are sampled in both space and time, using a large set of samples to obtain high-quality motion-blurred images with low noise levels. For each of the sample positions, an inside test is executed to determine whether the moving primitive covers the sample. This overlap test in x, y and t space is generally more expensive than an inside test in traditional rasterizers.
[0003] A stochastic rasterizer that supports simultaneous motion blur and depth of field executes visibility tests for each triangle in a five dimensional (5D) domain (x,y,u,v,t). This domain consists of spatial positions (x,y), lens coordinates (u, v) and time t. These visibility tests are computationally much more expensive than a single visibility test in standard 2D rasterization. Additionally, for each triangle, many (e.g. 16-64) such tests are executed per pixel to obtain images with low noise levels.
[0004] Five-dimensional (5D) rasterization is expected to become part of DirectX and OpenGL at some point in the future. This will enable us to render images with accurate and correct depth of field and motion blur.
Brief Description Of The Drawings
[0005] Some embodiments are described with respect to the following figures:
Figure 1 is a screen shot from an interactive visualizer according to one embodiment;
Figure 2 is a depiction of the construction of a moving axis-aligned bounding box according to one embodiment; Figure 3 is a flow chart for one embodiment; and Figure 4 is a schematic depiction for one embodiment. Detailed Description
[0006] A per-tile test in the 5D rasterizer outputs intervals for both lens parameters, (u,v), and for time, t, as well as for depth z. These intervals are conservative bounds for the current tile for 1 ) the visible lens region, 2) the time the triangle overlaps the tile, and 3) the depth range for the triangle inside the tile.
[0007] This output can be sent (when needed) further down the graphics pipeline to the pixel shader, and used for various things by the application developer. The interesting thing is that this results in a conservative 5D rasterizer. Previously, we have only had access to conservative 2D rasterization. This invention extends this to a whole new domain and, as a starting point, we have discovered that
conservative 5D rasterization with such outputs can be used for dynamic collision detection and caustics rendering on the graphics processor. Dynamic collision detection on the graphics processor has not been done before, as far as we know, and the caustics rendering solution that we have thought of will be more efficient than previous methods.
[0008] In addition, we present a new way to compute a conservative depth interval over a moving triangle. This makes occlusion culling more efficient, and saves both computer resources, as well as memory bandwidth usage in some embodiments.
[0009] We present a method for computing conservative depth over a motion blurred triangle over a tile of pixels. This is useful for occlusion culling (zmin/zma¾-culling) and conservative rasterization, as well as a number of other techniques, such as dynamic collision detection on the graphics processor, and caustics rendering.
[0010] Usually, a moving vertex is described by p; = (1 - t)qt + tr t e [0,1], and a moving triangle is described by p0PiP2 Hence, we have a triangle q0qiq2 at t = 0 and Γ0Γ!Γ2 at t = 1. [001 1 ] We assume that points, e.g., p, are two-dimensional homogeneous coordinates, i.e., p = (px, py, pw). We derive conservative depth in terms of the incoordinate. Later, we show how the desired normalized depth, z/w, can be computed only from knowing the value of w, when standard projection matrices of OpenGL and DirectX are used.
[0012] We will present two ways to compute conservative depth over a tile (e.g., a block of pixels). The power of these two methods may be combined, resulting in a tighter conservative depth in some embodiments.
[0013] A plane equation is computed through the triangle at time t = 0 (t = 1). That plane is moved with constant speed as a function of time, such that it always has the moving triangle on one side of the plane. In the following, we will describe how we compute a moving plane equation which has larger depth than the moving triangle. Hence, this is useful for computing maximum depth (w^x). Similar techniques can be used to compute minimum depth(w in).
[0014] First, we compute the static plane equation of the triangle at t = 0. The plane normal is given by: n0 = (q2 - q0) x (qi - q0)- 0 )
[0015] To make sure we move the plane in the right direction, we negate n0 if n0w < 0. The plane equation is then: π0 : n0 · o + d0 , where d0 = -n0 · q0, and o is an arbitrary point on the plane. Next, we compute the velocityi70. v0 = -max(n0 · + d0 , i G {0,1,2}, (2) which is the maximum signed distance from the plane, π0, over the vertices of the moving triangle at t = 1. At this point, we have created a moving plane equation, which moves in the direction of the plane normal: n0(t): n0 · o + d0 + v0t = 0. (3) [0016] As can be seen, we have added the term v0t, which ensures (by construction) that the triangle is "below" the moving plane equation, n0(t). If n0(t) does not sweep through the camera origin, e.g. d0 + v0t≠0 Vt e [0,l], (4) then n0(t) has greater depth than the moving triangle at all times, t e [0,1] . Any ray from the camera that intersects the triangle will intersect the triangle before intersecting the plane.
[0017] Sometimes, the plane equation of the triangle at t = 1 provides a better plane equation to work with. In fact, in most cases, the triangle plane at t = 0 is better in the beginning, and towards the end of the time interval, the triangle plane at t = 1 is better. Hence, we want to derive a way of using the plane equation at t = 1 as well.
[0018] The plane normal at t = 1 is: ni = (r2 - r„) x fa - r0). (5)
Again, we negate if nlw < 0. To make sure that the triangle at t = 0 is on the right side of the new plane equation (with as normal), we need to compute the dot products between the normal, n1 ; and the vertices of the triangle at t = 0 in order to compute dx
d1 = minC-iii · q,), i G {0,1,2}. (6)
The plane equation is then: πχ nt o + dx. The velocity, vx, of the moving plane is computed in the same way as above: v = -max^! · Tj + d ), i G (0,1,2). (7)
The moving plane equation becomes: riiCt): rii · o + d1 + vxt = 0. (8) [0019] Again, we also test for overlap between n^t) and the camera origin dx + v t≠ 0 vt e [0,1] to ensure that the plane is a conservative approximation of
[0020] At this point, we have two plane equations, Π0 and Π1 ; which move at constant velocities, and the next step is to evaluate the depth of these moving plane equations over a tile. The depth at a tile corner, x, y), is computed as:
Wi (x, y, t) =— ^i^. (9)
Note that when the denominator becomes zero, the plane of the triangle goes through the view point, and we simply do not use such planes when computing conservative depth.
[0021 ] The correct way to compute conservative maximum depth over a tile with four corners is then to take the maximum depth of eight locations, x, y, t) , namely, each of the four tile corners, but also both at time t = 0 and t = 1. However, since the equation was designed to be efficient to evaluate, it suffices to evaluate the depth at one location. This is described next. If vt > 0, we only need to evaluate depth at t = 1, and vice versa. The sign of the x- and y-components of the normal is used to select one corner out of the remaining four. For example, if nx > 0 and ny < 0, we would pick the one of the left corners of the tile (since nx > 0), and out of those two, we would select the topmost corner (since ny < 0). This makes it all very efficient.
[0022] For each moving plane, Π0 and nl 5 we generate one maximum depth-value, say, wj1 and wj1, using the technique described above. The tightest w^x depth over the tile is then selected as the minimum of these:
Wmax = min(wn, wj1), (10) and similar computations are done to calculate w"in. [0023] Note that we can use a further optimization if we use a rasterizer that visits tiles and computes time intervals t = [t, t], indicating that there is the possibility that the tile overlaps with the moving triangle. Instead of evaluating Π0 and at t = 0 and t = 1 as described above, we evaluate at t = t and t = t.
[0024] In Figure 1 ,we have interpolated the triangle to t = 0.5, which is located in the middle between t = 0 and t = 1 . The grids A and B show the two planes, Π0 and ¾ at t = 0.5. In this case, both lie above the interpolated triangle. The axis C is the w- axis.
[0025] As seen in Figure 2, we construct a moving axis-aligned bounding box (AABB) for the triangle by interpolating its AABB's between times t = 0 and t = 1. For the closest and farthest quadrilateral faces of the AABB, we compute the intersection times tt = [t, t] with the planes nt of the tile frustum. The tile frustum planes pass through the origin and are aligned to the sides of the tile.
[0026] Given a moving vertex of the farthest quadrilateral face, pn = (1 - t)qn + trn, the times at which the AABB's intersect with the tile frustum planes n; · pn = 0, are given by: t = °rqn . (1 1 )
HfCqn-iVi)
Of the four moving vertices of a quadrilateral face, we select the one that is farthest from nt in the negative direction.
[0027] Subsequently, wmax is calculated for [t, t] as (shown here for t):
Wpiax = (1 - t)wm¾ + iwmal (12) and similarly for wmax. Then, the final maximum value using this technique is computed as: wmax — maxGiinaxi wmax)- (13) Analogous computations would be done to compute the minimum depth, and then wmin = min(wmin, wmin). Note that this procedure has to be performed for both the x and y tile directions.
[0028] An alternative is to calculate the times it = [t, t] when the moving AABB intersects the tile frustum planes using the n-vertices, and use these times to calculate w[min>max] for t and t. These bounds on depth would however be slightly more conservative than when using the closest and farthest quadrilateral faces.
[0029] Up until now, our formulae have computed depth in w, but for OpenGL and DirectX, we usually need the normalized depth: z/w. Given a point, p, in eye space, we can apply standard projection matrices from DirectX. The z and w after projection are expressed as: z = apz + bpw = apz + b (14) w = pz, where a =——— and b = -aZnear, a, b > 0. In all our derivations, we have computed w (= pz), and as a consequence, we can compute z = aw + b. This in turns means that, given w, we can compute the desired normalized depth, z/w, as z/w = (aw + b)/w.
[0030] Note that w(t) and ^ - = a + -^— have local minima at the same t only if
L J J w(t) w(t) 1 w(t)≠ 0 vt e [0,1] , as a + ^ with b > 0 is strictly increasing as a function of w for w≠ 0.
[0031 ] If we compute a maximum normalized depth, Zm' ax = zm' ax/w^ax, using one technique (e.g., using Equation (1 1 )), and another maximum normalized depth, zmax = zmax/wmax (e.g., using Equation (14)), then we can compute the combined "best" depth as the minimum of the two:
Figure imgf000008_0001
05) and vice versa for
Figure imgf000009_0001
This applies to any number of argument to the min-function as long as the parameters represent conservative depths.
[0032] This work may be extended to depth of field. Equation (9) can suddenly become zero for many more cases due to that we now have a lens with finite extents to handle. Detecting whether a triangle plane intersects with a convex polygonal lens can be done by computing signed distances from the lens vertices to the plane equation. If there is at least one with positive and one with negative distance, then the plane intersects the lens, and we simply disable the usage of that plane. We can also use a bounding box around the lens shape and use the vertices of the bounding box for the computations described just above.
[0033] If the plane does not intersect the lens, we need to compute the depth through the tile corners. However, instead of starting the computations from the origin (where the pinhole camera is assumed to be located), we need to do this for all four corners of the bounding box of the lens shape.
[0034] Also, we can also use information from the tile-visiting rasterizer, t, and use that to tighten the conservative depth further.
[0035] In accordance with some embodiments, a sequence 10 shown in Figure 3 may be implemented in software, firmware and/or hardware. In software and firmware embodiments it may be implemented by computer executed instructions stored in a non-transitory computer readable medium such as optical, magnetic or semiconductor storage.
[0036] In one embodiment, the sequence of Figure 3 begins with a triangle set-up stage 12. The per-triangle constants needed for bounding are computed. Next a tile test 14 is performed. In the tile test, u, v, f and z intervals are computed for each tile. A tile is rejected if it is outside the valid range in any of the intervals. Then the u, v and f intervals are used to reject individual samples as shown in block 16. Finally, in the pixel shader, block 18, the u, v, i and z intervals are made available for the pixel shader. This allows for new algorithms in the pixel shader such as caustics rendering and dynamic collision detection. [0037] The computer system 130, shown in Figure 4, may include a hard drive 134 and a removable medium 136, coupled by a bus 104 to a chipset core logic 1 1 0. The computer system may be any computer system, including a smart mobile device, such as a smart phone, tablet, or a mobile Internet device. A keyboard and mouse 120, or other conventional components, may be coupled to the chipset core logic via bus 108. The core logic may couple to the graphics processor 1 12, via a bus 105, and the central processor 100 in one embodiment. The graphics processor 1 12 may also be coupled by a bus 1 06 to a frame buffer 1 14. The frame buffer 1 14 may be coupled by a bus 107 to a display screen 1 18. In one embodiment, a graphics processor 1 12 may be a multi-threaded, multi-core parallel processor using single instruction multiple data (SIMD) architecture.
[0038] In the case of a software implementation, the pertinent code may be stored in any suitable semiconductor, magnetic, or optical memory, including the main memory 132 (as indicated at 139) or any available memory within the graphics processor. Thus, in one embodiment, the code to perform the sequences of Figures 5 or 6 may be stored in a non-transitory machine or computer readable medium, such as the memory 132, and/or the graphics processor 1 12, and/or the central processor 100 and may be executed by the processor 1 00 and/or the graphics processor 1 12 in one embodiment.
[0039] Figure 3is a flow chart. In some embodiments, the sequences depicted in these flow charts may be implemented in hardware, software, or firmware. In a software embodiment, a non-transitory computer readable medium, such as a semiconductor memory, a magnetic memory, or an optical memory may be used to store instructions and may be executed by a processor to implement the sequences shown in Figure 3.
[0040] The graphics processing techniques described herein may be implemented in various hardware architectures. For example, graphics functionality may be integrated within a chipset. Alternatively, a discrete graphics processor may be used. As still another embodiment, the graphics functions may be implemented by a general purpose processor, including a multicore processor. [0041 ] References throughout this specification to "one embodiment" or "an embodiment" mean that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one implementation encompassed within the present invention. Thus, appearances of the phrase "one embodiment" or "in an embodiment" are not necessarily referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be instituted in other suitable forms other than the particular embodiment illustrated and all such forms may be encompassed within the claims of the present application.
[0042] While the present invention has been described with respect to a limited number of embodiments, those skilled in the art will appreciate numerous
modifications and variations therefrom. It is intended that the appended claims cover all such modifications and variations as fall within the true spirit and scope of this present invention.

Claims

What is claimed is:
1 . A method comprising:
computing depth intervals for a plurality of tiles for a moving and defocused triangle; and
rejecting a tile if it is outside a valid range in a depth interval.
2. The method of claim 1 including computing depth intervals valid for a time interval for said tiles.
3. The method of claim 1 including computing depth intervals valid within a region of lens coordinates for said tiles.
4. The method of claim 3 including rejecting a tile if it is outside said depth intervals.
5. The method of claim 4 including rejecting individual samples using said depth intervals.
6. The method of claim 5 including using said depth intervals for pixel shading.
7. The method of claim 1 including computing per triangle constants for bounding.
8. The method of claim 7 including using said constants for computing said depth intervals.
9. A non-transitory computer readable medium storing instructions to enable a processor to perform the steps of:
computing depth intervals for a plurality of tiles for a moving and defocused triangle; and
rejecting a tile if it is outside a valid range in a depth interval.
10. The medium of claim 9 including computing depth intervals valid for a time interval for said tiles.
1 1 . The medium of claim 9 including computing depth intervals valid within a region of lens coordinates for said tiles.
12. The medium of claim 1 1 including rejecting a tile if it is outside said depth intervals.
13. The medium of claim 12 including rejecting individual samples using said depth intervals.
14. The medium of claim 13 including using said depth intervals for pixel shading.
15. The medium of claim 9 including computing per triangle constants for bounding.
16. The medium of claim 15 including using said constants for computing said depth intervals.
17. An apparatus comprising:
a processor to compute depth intervals for a plurality of tiles for a moving and defocused triangle andreject a tile if it is outside a valid range in a depth interval; and
a memory coupled to said processor.
18. The apparatus of claim 17, said processor to compute depth intervals valid for a time interval for said tiles.
19. The apparatus of claim 17, said processor to compute depth intervals valid within a region of lens coordinates for said tiles.
20. The apparatus of claim 19, said processor to reject a tile if it is outside said depth intervals.
21 . The apparatus of claim 20, said processor to rejectindividual samples using said depth intervals.
22. The apparatus of claim 21 , said processor to use said depth intervals for pixel shading.
23. The apparatus of claim 17, said processor to compute per triangle constants for bounding.
24. The apparatus of claim 23, said processor to use said constants for computing said depth intervals.
25. The apparatus of claim 17 wherein said processor is a graphics processing unit.
PCT/US2011/068055 2011-12-30 2011-12-30 Five-dimensional rasterization with conservative bounds Ceased WO2013101167A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US13/992,911 US9396582B2 (en) 2011-12-30 2011-12-30 Five-dimensional rasterization with conservative bounds
CN201180076181.0A CN104025180B (en) 2011-12-30 2011-12-30 5D Rasterization with Conservative Bounds
PCT/US2011/068055 WO2013101167A1 (en) 2011-12-30 2011-12-30 Five-dimensional rasterization with conservative bounds
TW101149550A TWI614720B (en) 2011-12-30 2012-12-24 Five-dimensional rasterization with conservative bounds

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/068055 WO2013101167A1 (en) 2011-12-30 2011-12-30 Five-dimensional rasterization with conservative bounds

Publications (1)

Publication Number Publication Date
WO2013101167A1 true WO2013101167A1 (en) 2013-07-04

Family

ID=48698401

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2011/068055 Ceased WO2013101167A1 (en) 2011-12-30 2011-12-30 Five-dimensional rasterization with conservative bounds

Country Status (4)

Country Link
US (1) US9396582B2 (en)
CN (1) CN104025180B (en)
TW (1) TWI614720B (en)
WO (1) WO2013101167A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9129428B2 (en) 2012-05-31 2015-09-08 Apple Inc. Map tile selection in 3D
US9355484B2 (en) 2014-03-17 2016-05-31 Apple Inc. System and method of tile management

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9390550B2 (en) 2013-04-18 2016-07-12 Intel Corporation Culling for higher-order motion blur rasterization
US9963630B2 (en) 2015-11-18 2018-05-08 Cnpc Usa Corporation Method for a fracturing fluid system at high temperatures
US10557071B2 (en) * 2017-02-03 2020-02-11 Saudi Arabian Oil Company Nanosilica dispersion well treatment fluid
GB2570172B (en) 2018-06-29 2020-02-12 Imagination Tech Ltd Conservative Rasterization Using Gradients
US12002145B2 (en) 2020-08-17 2024-06-04 Intel Corporation Apparatus and method for efficient graphics processing including ray tracing
US11995767B2 (en) 2020-08-17 2024-05-28 Intel Corporation Apparatus and method for compressing ray tracing acceleration structure build data
GB2599188B (en) * 2021-03-23 2022-10-12 Imagination Tech Ltd Intersection testing in a ray tracing system
GB2599183B (en) 2021-03-23 2022-10-12 Imagination Tech Ltd Intersection testing in a ray tracing system
CN115115607B (en) * 2022-07-19 2024-06-07 重庆大学 Image shape feature extraction and recognition method based on image analysis

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060209078A1 (en) * 2005-03-21 2006-09-21 Anderson Michael H Tiled prefetched and cached depth buffer
US20070165035A1 (en) * 1998-08-20 2007-07-19 Apple Computer, Inc. Deferred shading graphics pipeline processor having advanced features

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6747657B2 (en) * 2001-12-31 2004-06-08 Intel Corporation Depth write disable for zone rendering
US7554538B2 (en) 2004-04-02 2009-06-30 Nvidia Corporation Video processing, such as for hidden surface reduction or removal

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070165035A1 (en) * 1998-08-20 2007-07-19 Apple Computer, Inc. Deferred shading graphics pipeline processor having advanced features
US20060209078A1 (en) * 2005-03-21 2006-09-21 Anderson Michael H Tiled prefetched and cached depth buffer

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SAMULI LAINE ET AL.: "Improved Dual-Space Bounds for simultaneous Motion and Defocus Blur.", NVIDIA TECHNICAL REPORT NVR-2011-004., November 2011 (2011-11-01), pages 1 - 3, XP055075831 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9129428B2 (en) 2012-05-31 2015-09-08 Apple Inc. Map tile selection in 3D
US9355484B2 (en) 2014-03-17 2016-05-31 Apple Inc. System and method of tile management

Also Published As

Publication number Publication date
US20140015835A1 (en) 2014-01-16
TW201346829A (en) 2013-11-16
CN104025180A (en) 2014-09-03
TWI614720B (en) 2018-02-11
CN104025180B (en) 2016-03-23
US9396582B2 (en) 2016-07-19

Similar Documents

Publication Publication Date Title
US9396582B2 (en) Five-dimensional rasterization with conservative bounds
US10362289B2 (en) Method for data reuse and applications to spatio-temporal supersampling and de-noising
KR101923562B1 (en) Method for efficient re-rendering objects to vary viewports and under varying rendering and rasterization parameters
KR101033779B1 (en) Method and apparatus for processing an image using a graphics processing unit having an extended vertex cache
US8791945B2 (en) Rendering tessellated geometry with motion and defocus blur
EP2622581B1 (en) Multi-view ray tracing using edge detection and shader reuse
US10529117B2 (en) Systems and methods for rendering optical distortion effects
US20160048999A1 (en) System, method, and computer program product for shading using a dynamic object-space grid
US20190318530A1 (en) Systems and Methods for Reducing Rendering Latency
US20140176529A1 (en) Tile shader for screen space, a method of rendering and a graphics processing unit employing the tile shader
US9401046B2 (en) Micropolygon splatting
KR20110016938A (en) Systems, Methods, and Computer Program Products for Tessellation Engines Using Geometric Shaders
CN102831634B (en) Efficient accurate general soft shadow generation method
JP4977712B2 (en) Computer graphics processor and method for rendering stereoscopic images on a display screen
US11030791B2 (en) Centroid selection for variable rate shading
US10192348B2 (en) Method and apparatus for processing texture
US20170061682A1 (en) Rendering method and apparatus
US20120075304A1 (en) Backface Culling for Motion Blur and Depth of Field
JP2013117992A (en) Real-time global illumination rendering system
US20220319091A1 (en) Post-depth visibility collection with two level binning
CN118840461A (en) Image processing method, electronic device, storage medium, and program product

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201180076181.0

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 13992911

Country of ref document: US

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11878997

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11878997

Country of ref document: EP

Kind code of ref document: A1