WO2022119469A1 - Dispositif et procédé de tramage à multiples troncs de cône - Google Patents

Dispositif et procédé de tramage à multiples troncs de cône Download PDF

Info

Publication number
WO2022119469A1
WO2022119469A1 PCT/RU2020/000659 RU2020000659W WO2022119469A1 WO 2022119469 A1 WO2022119469 A1 WO 2022119469A1 RU 2020000659 W RU2020000659 W RU 2020000659W WO 2022119469 A1 WO2022119469 A1 WO 2022119469A1
Authority
WO
WIPO (PCT)
Prior art keywords
tile
primitives
tiles
frustum
render target
Prior art date
Application number
PCT/RU2020/000659
Other languages
English (en)
Inventor
Nikita Vadimovich GLUSHKOV
Original Assignee
Huawei Technologies Co., Ltd.
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 Huawei Technologies Co., Ltd. filed Critical Huawei Technologies Co., Ltd.
Priority to PCT/RU2020/000659 priority Critical patent/WO2022119469A1/fr
Publication of WO2022119469A1 publication Critical patent/WO2022119469A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture

Definitions

  • the disclosure relates to the field of digital image processing, in particular, to the field of rendering digital scenes.
  • the disclosure provides a device and a method for performing a multi-frustum rasterization, which may be used for the rendering of a scene.
  • the multi-frustum rasterization may be performed by using more than one frustum for selecting primitives for rasterization.
  • the device and method further support rasterizing the selected primitives separately for different tiles of a render target.
  • Rendering a scene means generating an image of the scene from some model related to the scene, by means of a computer program or algorithm.
  • 3D three-dimensional
  • Rasterization may thereby refer to the technique of converting primitives, such as polygons, into a rasterized format. The rasterization of a plurality of such primitives may lead to the rendered scene.
  • one of these conventional rasterization algorithms makes use of an ordinary view frustum, wherein all pixels are rasterized using a single shared matrix of a perspective transform.
  • This conventional rasterization algorithm may be sufficient for rendering a digital scene for a camera, or for rendering reflections from a simple flat surface or from a spherical object using, for example, a cube map, or for rendering simple shadow maps.
  • this conventional rasterization algorithm dpgs not permit the Tendering of reflections and -refractions from non- planar surfaces, or the rendering of complex shadow maps that can be useful for global illumination effects and other special effects.
  • the conventional rasterization algorithm is not well suited for cases where a camera space needs to be more complex than the trivial view frustum.
  • TBA tile-based architecture
  • the TBA divides the render target into a plurality of compact sub-render targets (so-called tiles).
  • a typical size of such a tile can be, for example, 16x16 pixels.
  • a GPU can work with a lot of such tiles separately, and even almost independently from each other.
  • the TBA allows accelerating the rasterization of primitives, due to the decrease of the bandwidth.
  • TBA makes use of the TBA has also the advantage that the GPU can place temporary buffers into the fast local cache, and can thus avoid useless transfer into a memory. Furthermore, no allocation of a Z-buffer is required, because the GPU can use a hardware accelerated 16x16 Z- buffer. In a typical situation, the Z-buffer (also referred to as the “depth buffer”) is not needed after the step of rasterization, so that only a small buffer may be used for all tiles. The same applies to the G-buffer, and to other buffers that are not valuable after the rendering is complete. Although these optimizations increase the complexity of the TBA, they allow saving memory, avoiding significant bandwidth, and reducing the power consumption.
  • an object is in particular to provide a device and method that are able to perform an improved rasterization.
  • the above- mentioned disadvantages of the conventional rasterization methods and the TBA should be overcome.
  • the solution should allow the configuration of specific camera spaces for different tiles or different groups of tiles.
  • a first aspect of the present disclosure provides a device for a multi-frustum rasterization, the device being configured to: determine a render target comprising a plurality of tiles; obtain an acceleration structure; obtain one or more frustums, wherein each tile of the render target is associated with one frustum; select, for each tile, primitives from the acceleration structure, wherein the selected primitives are included in the frustum associated with the tile; write the selected primitives into a primitive storage of a rendering pipeline; receive rasterized tiles from a rasterizer of the rendering pipeline, wherein each rasterized tile has been obtained by rasterizing the primitives selected for one tile of the render target; and output the rasterized tiles to the render target.
  • the one or more frustums may be one frustum or may be multiple frustums. However, the number of frustums may be equal to the number of tiles of the render target.
  • the device of the first aspect is able to support a multi-frustum rasterization (which is performed by the rasterizer), i.e., to support a rasterization ofprimitives which are selected from more than one frustum.
  • the rasterizer may be a conventional rasterizer of a conventional rendering pipeline, which can advantageously be reused.
  • the multi-frustum rasterization may be performed separately based on each of the plurality of tiles of the render target and the corresponding primitives selected by the device.
  • the device may, in particular, use multiple frustums for selecting the primitives individually for the tiles of the render target. For instance, for each tile, one or more primitives may be selected from an associated frustum. Accordingly, the device may be configured to select a different set of primitives for each tile, particularly, from the frustum associated with that tile. This allows configuring a specific camera space for each individual tile, or for each individual group of tiles. Therefore, the device enables an improved rasterization in comparison to the conventional rasterization methods.
  • the device of the first aspects supports a TBA-based solution.
  • the pipeline of a conventional TBA - including the rasterizer — may be (re)used for performing the rasterization.
  • the limitations of the conventional TBA are overcome. Because of the multiple frustums, specific camera spaces can be configured for different tiles or for different groups of tiles.
  • the device of the first aspect provides the additional advantage that the rendering of a complex digital scene, particularly a 3D digital scene, can be significantly accelerated, due to the use of the acceleration structure (instead of, for instance, a tiler as is often used by conventional solutions), and due to the fact that the primitives are selected from the acceleration structure.
  • This improvement can also provide a significant simplification of the development of Tenderers that use rasterization, since the acceleration structure helps avoiding a complicated management of digital scenes that are sent to a rasterizer, and is also beneficial for the organization of a command buffer for sending the scene to a rasterizer.
  • a “scene” is a collection of 3D models, light sources and other kinds of objects in a world space, into which a camera may be placed, and is used to describe a scene for 3D rendering.
  • a “frustum” is a convex hexahedron, or a portion of a pyramid that lies between two planes cutting it, and describes the borders of a projection. Such a frustum may also be referred to as a view frustum or a viewing frustum, and may correspond to a region of space of the scene, e.g., that may appear on a display when the rendered scene is displayed.
  • rasterization may describe the task of taking an image defined in a vector graphics format (e.g., shapes) and converting it into a raster image (e.g., a series of pixels, dots or lines, which, when displayed together, create the image which was represented by the shapes).
  • the rasterized image may, then, be displayed on a computer display, video display or printer, or stored in a bitmap file format. Therefore, as mentioned previously, “rasterization” may refer to the technique of converting primitives, such as polygons, into rasterized format.
  • an “acceleration structure” may be a subroutine that allows deciding as quickly as possible, which objects from the scene, a particular ray, frustum or other primitive, are likely to intersect and reject large group of objects, which it is know for certain that the primitive will never hit.
  • a “primitive” may be basic drawing shape, for instance, at least one of a polygon and a triangle.
  • tiled rendering particularly tiled rasterization
  • tiled rendering describes the process of subdividing a computer graphics image by a regular grid in optical space and rendering or rasterizing, respectively, each section of the grid, or tile, separately.
  • the advantage is that the amount of memory and bandwidth is reduced compared to immediate mode rendering systems, which draw the entire frame at once.
  • tile rendering systems, particularly tile rasterization systems common for low-power handheld devices.
  • Tiled rendering is sometimes known as a "sort middle" architecture, because it performs the sorting of the geometry in the middle of the graphics pipeline instead of near the end.
  • At least one frustum is associated with a group of tiles included in the plurality of tiles of the render target, and wherein for each tile in the group of tiles the selected primitives are included in the frustum associated with the group of tiles.
  • the selected primitives for the plurality of tiles of the render target are stored in the primitive storage as a primitive list.
  • the primitive list may indicate the selected primitives per tile, allowing the rasterizer to rasterize for each tile the primitives selected by the device for that tile.
  • the primitives comprise triangles.
  • the triangles allow for an efficient rasterization and rendering of a digital scene into the render target with a high quality.
  • the primitives may comprise polygons.
  • the primitives comprise one or more pairs of a triangle and a material.
  • the scene may be rendered by the multi-frustum rasterization taking into account material effects of objects, for instance, different kinds of reflections from different materials.
  • a material includes a description of one or more algorithms and parameters required for rasterizing.
  • the device is configured to separately obtain an individual frustum for each tile or group of tiles included in the plurality of tiles of the render target.
  • a union of all frustums determinates a complex camera space.
  • the rendering pipeline is part of a TBA.
  • the rendering pipeline including the rasterizer, may be a part of a conventional TBA. That is, a conventional TBA can be reused together with the device of the first aspect, in order to implement multi-frustum rasterization.
  • a second aspect of the present disclosure provides a system for performing a multi-frustum rasterization, the system comprising: the device according to the first aspect or any of its implementation forms; and the rendering pipeline, wherein the rendering pipeline includes the primitive storage, the rasterizer, and a memory connected to the rasterizer.
  • the rasterizer is configured to rasterize the primitives selected for the plurality of tiles of the render target to obtain the rasterized tiles, wherein for each tile of the plurality of tiles the primitives selected for said tile are rasterized to obtain one rasterized tile.
  • the rasterizer is configured to rasterize the primitives selected for the plurality of tiles of the render target tile per tile.
  • the acceleration structure is configured to receive a frustum and one or more primitives, wherein each primitive has a frustum system of coordinates defined by the frustum.
  • the rasterizer may be further configured to receive a model- view-projection transformation for each tile before executing the rasterization.
  • a model view transformation may be the concatenation of a model transformation and a view transformation.
  • a view transformation may define the position (location and orientation) of the camera, while the model transformation may define the frame’s position of the primitives to be drown.
  • a projection transformation may define the characteristics of the camera, such as clip planes, field of view, or projection method.
  • a transformation may be or comprise a matrix.
  • the rasterizer may be further configured to execute a fragment shader algorithm on each tile after executing the rasterization.
  • a fragment shader may be the shader stage that processes a fragment generated by the rasterization into a set of colors and a single depth value.
  • the fragment shader may be the OpenGL pipeline stage after a primitive is rasterized. For each sample of the pixels covered by a primitive, a "fragment" may be generated.
  • a third aspect of the present disclosure provides a method for a multi- frustum rasterization, the method comprising: determining a render target comprising a plurality of tiles; obtaining an acceleration structure; obtaining one or more frustums, wherein each tile of the render target is associated with one frustum; selecting, for each tile, primitives from the acceleration structure, wherein the selected primitives are included in the frustum associated with the tile; writing the selected primitives into a primitive storage of a rendering pipeline; receiving rasterized tiles from a rasterizer of the rendering pipeline, wherein each rasterized tile has been obtained by rasterizing the primitives selected for one tile of the render target; and outputting the rasterized tiles to the render target.
  • At least one frustum is associated with a group of tiles included in the plurality of tiles of the render target, and wherein for each tile in the group of tiles the selected primitives are included in the frustum associated with the group of tiles.
  • the selected primitives for the plurality of tiles of the render target are stored in the primitive storage as a primitive list.
  • the primitives comprise triangles.
  • the primitives comprise one or more pairs of a triangle and a material.
  • a material includes a description of one or more algorithms and parameters required for rasterizing.
  • the method further comprises separately obtaining an individual frustum for each tile or group of tiles included in the plurality of tiles of the render target.
  • a union of all frustums determinates a complex camera space.
  • the rendering pipeline is part of a TBA.
  • the method of the third aspect and its implementation forms may achieve the same advantages as described above for the device of the first aspect and its respective implementation forms.
  • a fourth aspect of the present disclosure provides a computer program comprising a program code for performing the method of the third aspect or any of its implementation forms, when executed on a computer.
  • a fifth aspect of the present disclosure provides a non-transitory storage medium storing executable program code which, when executed by a processor, causes the method according to the third aspect or any of its implementation forms to be performed.
  • FIG. 1 shows a device for performing a multi-frustum rasterization according to an embodiment, and shows a system according to an embodiment of the invention.
  • FIG. 2 shows a conventional pipeline for performing tile-based rendering.
  • FIG. 3 shows a conventional pipeline for performing tile-based rendering.
  • FIG. 4 shows how primitives for a particular tile are selected from a frustum associated with that tile.
  • FIG. 5 shows a pipeline for tile-based rasterization according to an embodiment of the invention.
  • FIG. 6 compares different camera space configured for rasterization.
  • FIG. 7 shows a flow diagram of a method for performing a multi-frustum rasterization according to an embodiment.
  • Fig. 1 shows a schematic representation of a device 100 according to an embodiment of the invention.
  • the device is for performing a multi-frustum rasterization, in particular, is configured to support a rasterizer to perform the multi-frustum rasterization.
  • the multi-frustum rasterization may be performed to render a digital scene.
  • Fig. 1 also shows a render target 107, a primitive storage 104, a rasterizer 105, and an (optional) memory 106, wherein the primitive storage 104, the rasterizer 105 and the optional memory 106 are part of a rendering pipeline.
  • the rendering pipeline and the device 100 form a system 10 according to an embodiment of the invention.
  • the device 100 is configured to determine the render target 107, wherein the render target 107 comprises a plurality of tiles. The device 100 may determine the division of the render target 107 into the plurality of tiles. Further, the device 100 is configured to obtain an acceleration structure 101, for instance, an acceleration structure 101 related to a scene to be rendered using multi-frustum rasterization. That is, the device 100 may take the acceleration structure 101 as and input. Further, the device 100 is configured to obtain one or more frustums 103, i.e., the device 100 may take one or more frustums 103 as an input.
  • each tile of the render target 107 is associated with one frustum 103, wherein it is possible that the device 100 determines this association of tiles and frustums 103.
  • the device 100 is configured to select primitives 102 from the acceleration structure 101, wherein the primitives 102 are included in the one or more frustums 103.
  • the device 100 may select, for each tile 102 of the render target 107, primitives 102 from the acceleration structure 101 according to the associated frustum 103. These selected primitives 102 may thus be associated with the tile.
  • the selected primitives 102 may include polygons and/or triangles. All selected primitives 102 are then written by the device 100 into the primitive storage 104 of the rendering pipeline. Thereby, a primitive list format may be used by the device 100.
  • the tile-specific primitives 102 may be selected from the acceleration structure 101 by the device 100 using the corresponding tile-specific one or more frustums 103, and may then be stored in the primitive list in association with their related tile.
  • a standard format of the current TBA may be used for the primitive list in the primitive storage 104.
  • the rasterizer 105 of the rendering pipeline may then rasterize the primitives 102 selected for the plurality of tiles of the render target 107 to obtain rasterized tiles 106. That is, the rasterizer 105 may access the primitive storage 105, and may obtain the primitives 102 per tile, for example, using the primitive list. In particular, for each tile of the plurality of tiles, the primitives 102 selected for said tile are rasterized by the rasterizer 105 to obtain one rasterized tile 106.
  • the rasterizer 105 may be further connected to the memory 106, and may use the memory 106 to store or cache data during the rasterization. The rasterizer 105 may provide the rasterized tiles 106 back to the device 100.
  • the device 100 is configured to receive the rasterized tiles 106 from the rasterizer 105 of the rendering pipeline, wherein each rasterized tile 106 has been obtained by rasterizing the primitives 102 selected for one tile of the render target 107.
  • the device 100 is further configured to output the rasterized tiles 106 to the render target 107.
  • the device 100 may render a digital scene - wherein the scene is related to the input acceleration structure 101 - into the render target 107.
  • the device 100 may comprise a processor or processing circuitry (not shown) configured to perform, conduct or initiate the various operations of the device 100 described herein.
  • the processing circuitry may comprise hardware and/or the processing circuitry may be controlled by software.
  • the hardware may comprise analog circuitry or digital circuitry, or both analog and digital circuitry.
  • the digital circuitry may comprise components such as applicationspecific integrated circuits (ASICs), field-programmable arrays (FPGAs), digital signal processors (DSPs), or multi-purpose processors.
  • ASICs applicationspecific integrated circuits
  • FPGAs field-programmable arrays
  • DSPs digital signal processors
  • the device 100 may further comprise memory circuitry, which stores one or more instruction(s) that can be executed by the processor or by the processing circuitry, in particular under control of the software.
  • the memory circuitry may comprise a non-transitory storage medium storing executable software code which, when executed by the processor or the processing circuitry, causes the various operations of the device 100 to be performed.
  • the processing circuitry comprises one or more processors and a non- transitory memory connected to the one or more processors.
  • the non-transitory memory may carry executable program code which, when executed by the one or more processors, causes the device 100 to perform, conduct or initiate the operations or methods described herein.
  • the device 100 may provide the advantage of non-trivial rasterization, in particular, multifrustum rasterization. This is beneficial, for example, in order to provide non-planar reflections, refractions, complex shadow maps, and other special effects needing a complex camera space.
  • the union of all frustums 103 used by the device 100 to select the primitives 102 may determine the complex camera space.
  • another advantage may be that separate camera subspaces may be configured by the device 100 per each tile of the render target 107.
  • Another advantage provided by the device 100 is the fact that its operations can be implemented after modification of drivers, and without significant changes of the hardware for tile-based GPU. Furthermore, an advantage may be that a tiler sub-module - as it may be present in a conventional TBA of a GPU (see e.g. Fig. 2, the “tiler” 200) - can be replaced with a software based acceleration structure 101 (see e.g. Fig. 5), which may allow developers to support a customizable camera subspace for each tile or for each group of tiles, and thus to provide new valuable possibilities of rasterization.
  • the system 10 which includes device 100 and the rasterizer 105, see e.g. Fig. 1
  • the primitives 102 e.g., triangles that are specific for each tile or for each group of files
  • the rasterization process really begins, i.e., the rasterizer 105 rasterizes all the selected primitives 102.
  • the device 100 may be configured to collect, in the first stage of the two- stage rendering process, one or more sets of primitives 102 from the acceleration structure 101.
  • the selection may, for instance, be based on performing some suitable algorithm (for example, on a bounding volume hierarchy (BVH), kDTree, OctTree, or MeshGrid algorithm).
  • a bounding volume hierarchy (BVH) may be a tree structure on a set of geometric objects. All geometric objects may be wrapped in bounding volumes that form leaf nodes of the tree. These nodes may then be grouped as small sets and may be enclosed within larger bounding volumes.
  • kDTree short for k-dimensional tree
  • the kDTree may be a useful data structure for several applications, such as searches involving a multidimensional search key (e.g., range searches and nearest neighbour searches).
  • the kDTree may be a special case of a binary space partitioning tree.
  • An Octree may be a tree data structure, in which each internal node has exactly eight children. Octrees are most often used to partition a three-dimensional space by recursively subdividing it into eight octants.
  • the device 100 may provide the advantage that it can be implemented in most existing hardware, because there may be some memory block in the GPU memory of the device 100 that contains the references to all potentially visible primitives 102 (e.g., triangles), after the first stage and before the second stage.
  • the memory block can be filled using a compute shader, instead of the original tiler 200 shown in Fig 2.
  • the compute shader can implement functions of the acceleration structure 101.
  • the input of this compute shader can be the tile-specific frustum 103, namely one frustum 103 per tile, or one frustum 103 per group of tiles.
  • the output of the compute shader may be the one or more sets of primitives 102 that may be stored in a rasterizer-specific format.
  • a vertex shader program 201 is executed to process all points of a scene.
  • 2 nd step Tessellation and a geometry shader may be processed.
  • the primitives are pushed into a primitive list of suitable tiles.
  • the primitive list can be implemented as a complex hierarchical structure to meet memory and performance requirements.
  • a driver can effectively push primitives into tile specific lists, and the lists should be stored in some place of the GPU memory.
  • the driver can be configured to iterate all tiles of the render target.
  • the driver can be configured to extract the list of primitives that can be visible in this tile.
  • the driver can be configured to execute the rasterization of the primitive list into the tile of the render target using a pixel shader (pixel processing function) associated with the current primitive.
  • the rasterizer can be configured to work with only a small amount of memory associated with the tile, and all these memories can be allocated in the fastest cache.
  • the conventional rendering pipeline has some specific memory state 300 between render calls and rasterization of the frame (as shown in Fig. 3).
  • embodiments of the invention allow configuring a driver to reproduce a suitable memory state using a method without tiler 200.
  • the tiler 200 may be configured to distribute primitives between tiles.
  • a first part of the rendering pipeline (from draw-calls to vertex shader to tiler) can be interpreted as the process of the selection of some primitives of the whole 3D scene, wherein these primitives can be visible in some narrow camera space that corresponds to a part of the common camera space for the specific tile.
  • acceleration structures and algorithms that can effectively do the same, for example, BVH, kDTree, MeshGrid, or OctTree. All these algorithms have a common goal, namely, to find and return potentially reachable primitives in some sub-space (ray, box, frustum, etc.).
  • the typical algorithmic complexity of such methods is O[N(log(N))] for the treebased methods or O(N) for the mesh grid based methods.
  • Acceleration structures are typical parts of high-level Tenderers or game engines, because they allow to significantly reduce the complexity of the rasterized part of the scene.
  • An acceleration structure is also beneficial for ray-tracing solutions.
  • the device 100 is beneficially configured to select appropriate primitives 102 (e.g., triangles) from the acceleration structure 101 , i.e., the device 100 may select from primitives 102 that are sent by a program to the device 100 for rasterization. The device 100 may then push the selected primitives 102 into the primitive storage. Each set of primitives 102 (for instance, indicated in a primitive list) may thereby correspond to a tile of the render target 107.
  • the device 100 can be configured to use a BVH algorithm to select the primitives 102 directly from the acceleration structure 101.
  • the primitives 102 may be selected using a narrow frustum 103 corresponding to that tile (as shown e.g. in FIG. 4, wherein the frustum 103 for each tile may be obtained from a larger view frustum), and the found primitives 102 per tile may be pushed by the device 100 into the primitive storage 104.
  • the frustum 103 associated with a tile may represent a narrow camera space for that tile.
  • the primitives 102 in the primitive storage 104 may be provided in the same format as the tiler 200 of the conventional TBA pipeline provides (see Fig. 2).
  • the device 100 may accordingly use the acceleration structure 101 instead of the tiler 200 (see Fig. 5) according to embodiments of the invention.
  • the acceleration structure 101 For example, based on spatial tree methods like BVH, kDTree, or OctTree.
  • the replacement of the tiler 200 by the acceleration structure 101 which enables access to the whole 3D scene, makes it possible to configure separate camera spaces for each separate tile (defined by separate frustums 103, see Fig. 4), and to select the primitives 102 for each tile's camera space separately from the others, and to push the primitives 102 into the primitive storage 104, and accordingly to the rasterizer 105 of the rendering pipeline.
  • the rasterizer 105 of the rendering pipeline advantageously becomes more effective in this way, because, in this part, there may be no significant difference between the rendering pipeline implemented in the system 10 according to an embodiment and the conventional pipeline.
  • the rendering pipeline of the system 10 according to embodiments of the invention is much more flexible than the conventional pipeline. It also can be much faster for some complex digital scenes, due to elimination of the external acceleration structure. Moreover, there is the possibility to implement many optimizations in the acceleration structure 101, such as effective culling and management of the shading. This flexibility can be used to implement a complex reflection/refraction system and also other complex special effects, which are difficult to implement using the conventional rasterization pipeline, such as non-planar reflections using rasterization:
  • a tile-based GPU of the system 10 (which may be or may include the device 100) can be used to perform the above-described rendering including the multi-frustum rasterization, wherein the camera space may comprise a lot of small frustums 103, instead of only a single frustum for a whole render target as conventionally done. Accordingly, the method supported by the device 100 is referred to as a multi-frustum rasterization.
  • the device 100 may be advantageous for the industry, especially may be important for mobile-platforms, which are significantly limited in power and performance, since it is difficult to use the costly techniques like ray-tracing in order to provide physically correct non-planar reflections, refractions, adaptive methods of the shadow maps and other special effects that need the complex camera space.
  • acceleration structure 101 In the following, an embodiment of an integration of the acceleration structure 101 into the device 100 is elucidated.
  • this acceleration structure 101 can be based on a BVH algorithm, because it provides the best balance of speed and quality for typical 3D products.
  • the acceleration structure 101 can be implemented using compute shaders, OpenCL or other computation methods, because the processing of BVH can effectively be parallelized.
  • the device 100 may comprise an application programming interface (API), in order to ensure initialization of the acceleration structure 101. That is, the device 100 may obtain the acceleration structure 101 via that API.
  • API application programming interface
  • a user may further specify model- view-projection matrices and other parameters, for example, different parameters for each tile, before the device 100 performs the method and the rasterizer 105 performs the rasterization. For example, it may be possible to allocate an array of camera parameters to a GPU memory part of the device 100, and to fill this before rendering. This may lead to a micro-rasterization 601, wherein a camera space is segmented and each tile has its own parameters (see FIG. 6, right side). FIG. 6 compares this scenario with a typical conventional camera space 602 that covers roughly a large area (left side) and a tiled camera space 603, wherein the space is segmented but the shape is the same as for the typical camera (middle).
  • the perspective projection matrix for the typical for OpenGL system of coordinates is given by the following formula: wherein n is the distance to near plane of frustum, /is the distance to far plane of frustum, t is the top, b is the bottom, I is the left, and r is the right.
  • the frustum 103 can directly be extracted from the view-projection matrix (or shortly: projection matrix). Actually, both entities are mathematically very close. For example, one method is the so-called method of Hartmann and Gribbs.
  • the device 100 can be configured to use the corresponding camera parameters.
  • the device 100 may select potentially visible primitives 102 from the acceleration structure 101.
  • the device 100 may save the selected primitives 102 in an appropriate temporary buffer of the device 100.
  • the device 100 can then be configured to select primitives 102 for further tiles, and in the end (or after selecting primitives 102 for two or more tiles) send the selected primitives 102, e.g. as a list of primitives 102, to the primitive storage 104 and thus ultimately to the rasterizer 105.
  • the device 100 can be configured to use some simplified tiler with one or more 1x1 cells, in order to avoid changes in the main part of the pipeline. The usage of such a simplified tiler can help to improve clipping of the primitives 102, because the acceleration structure 101 may work with some volumes of primitives 102, instead of separate primitives 102.
  • the rendering may, in some embodiments of the invention, not be performed with the acceleration structure 101 directly.
  • a developer can configure the rendering states (material) and send the array of primitives 102 (points, lines and triangles).
  • Some steps of such an algorithm may be:
  • the command buffer can be executed.
  • An internal algorithm of the rendering may be: execute a “tiler” for all primitives 102.
  • the tiler distributes all primitives 102 into a primitive list of the corresponding tile, the rasterization of the primitives 102 of each tile can be performed using a hardware optimized pipeline.
  • the device 100 can be configured to perform the following steps:
  • 3 rd step Set an array of frustums 103 (e.g., sub-frustums obtained from a larger frustum) for each tile; and
  • an internal algorithm performed by the system 10 may be:
  • 1 st step Select primitives 102 from the acceleration structure 101 and their materials from a table of materials for each frustum 103 of the array of frustums 103;
  • 2 nd step Write the pairs of the primitives 102 and materials into the primitive storage 104, particularly into a primitive list corresponding to each tile;
  • 3 rd step Execute rasterization of the primitives 102 of each tile using the same hardware optimized pipeline, particularly the rasterizer 105.
  • a primitive 102 may comprise one or more pairs of a triangle and a material.
  • a material may include a description of one or more algorithms and parameters required for rasterizing the associated primitive 102.
  • FIG. 7 shows a schematic representation of a method 700 for performing a multi-frustum rasterization according to an embodiment.
  • the method 700 may be performed by the device 100.
  • the method 700 comprises a step 701 of determining a render target 107.
  • the render target 107 comprises a plurality of tiles.
  • the method 700 includes a step 702 of obtaining an acceleration structure 101.
  • the method 700 comprises a step 703 of obtaining one or more frustums 103, wherein each tile of the render target 107 is associated with one frustum 103.
  • the method 700 comprises a step 704 of selecting, for each tile, primitives from the acceleration structure 101, wherein the selected primitives 102 are included in the frustum 103 associated with the tile.
  • the method 700 comprises a step 705 of writing the selected primitives 102 into a primitive storage 104 of a rendering pipeline.
  • the method 700 comprises a step 706 of receiving rasterized tiles 106 from a rasterizer 105 of the rendering pipeline, wherein each rasterized tile 106 has been obtained by rasterizing the primitives 102 selected for one tile of the render target 107.
  • the method 700 comprises a step 707 of outputting the rasterized tiles 106 to the render target 107.

Landscapes

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

Abstract

La présente invention concerne le domaine du traitement d'image numérique, et en particulier le domaine du rendu d'une scène numérique. À cet effet, l'invention présente un dispositif servant à effectuer un tramage à multiples troncs de cône. Le dispositif est configuré pour : déterminer une cible de rendu comprenant une pluralité de carreaux; obtenir une structure d'accélération; obtenir un ou plusieurs troncs de cône, chaque carreau de la cible de rendu étant associé à un tronc de cône; sélectionner, pour chaque carreau, des primitives tirées de la structure d'accélération, les primitives sélectionnées étant incluses dans le tronc de cône associé au carreau; écrire les primitives sélectionnées dans un dispositif de stockage de primitives d'un pipeline de rendu; recevoir des carreaux tramés provenant d'un dispositif de tramage du pipeline de rendu, chaque carreau tramé ayant été obtenu par tramage des primitives sélectionnées pour un carreau de la cible de rendu; et délivrer les carreaux tramés à la cible de rendu.
PCT/RU2020/000659 2020-12-04 2020-12-04 Dispositif et procédé de tramage à multiples troncs de cône WO2022119469A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/RU2020/000659 WO2022119469A1 (fr) 2020-12-04 2020-12-04 Dispositif et procédé de tramage à multiples troncs de cône

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/RU2020/000659 WO2022119469A1 (fr) 2020-12-04 2020-12-04 Dispositif et procédé de tramage à multiples troncs de cône

Publications (1)

Publication Number Publication Date
WO2022119469A1 true WO2022119469A1 (fr) 2022-06-09

Family

ID=74672386

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/RU2020/000659 WO2022119469A1 (fr) 2020-12-04 2020-12-04 Dispositif et procédé de tramage à multiples troncs de cône

Country Status (1)

Country Link
WO (1) WO2022119469A1 (fr)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200051332A1 (en) * 2016-02-01 2020-02-13 Imagination Technologies Limited Frustum Rendering in Computer Graphics

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200051332A1 (en) * 2016-02-01 2020-02-13 Imagination Technologies Limited Frustum Rendering in Computer Graphics

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ROHMER KAI ET AL: "Tiled Frustum Culling for Differential Rendering on Mobile Devices", 2015 IEEE INTERNATIONAL SYMPOSIUM ON MIXED AND AUGMENTED REALITY, IEEE, 29 September 2015 (2015-09-29), pages 37 - 42, XP032809430, DOI: 10.1109/ISMAR.2015.13 *

Similar Documents

Publication Publication Date Title
CN109509138B (zh) 针对射线跟踪系统的减小的加速结构
CN112270756B (zh) 一种应用于bim模型文件的数据渲染方法
US8810590B2 (en) Method and apparatus for spatial binning on a GPU and global path planning to avoid spatially binned objects
KR101550477B1 (ko) 광선 추적 렌더링을 위한 병렬화 교차 테스트 및 세이딩의 아키텍처
US8115763B2 (en) Device for the photorealistic representation of dynamic, complex, three-dimensional scenes by means of ray tracing
CN110728740B (zh) 虚拟摄影测量
US10049486B2 (en) Sparse rasterization
US8797324B2 (en) Direct ray tracing of 3D scenes
US11816783B2 (en) Enhanced techniques for traversing ray tracing acceleration structures
US10665010B2 (en) Graphics processing systems
JP2001118082A (ja) 描画演算処理装置
CA2420390A1 (fr) Systeme d'images informatise
US11468630B2 (en) Rendering scenes using a combination of raytracing and rasterization
WO2023043993A1 (fr) Micro-maillages déplacés pour lancer de rayons
US11854141B2 (en) Early release of resources in ray tracing hardware
GB2476140A (en) Shadow rendering using stencil and depth buffers
US6791544B1 (en) Shadow rendering system and method
KR102151443B1 (ko) 하이브리드 gpu 아키텍처 기반의 그래픽 처리 장치
CN115701305A (zh) 阴影筛选
KR101090660B1 (ko) 포인트 프리미티브를 이용한 실시간 볼륨 렌더링 방법
US20240095996A1 (en) Efficiency of ray-box tests
US5926183A (en) Efficient rendering utilizing user defined rooms and windows
WO2022119469A1 (fr) Dispositif et procédé de tramage à multiples troncs de cône
KR20100075351A (ko) 모바일용 컴퓨터 그래픽 랜더링 방법 및 시스템
CN113593028A (zh) 一种用于航电显控的三维数字地球构建方法

Legal Events

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

Ref document number: 20855831

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: 20855831

Country of ref document: EP

Kind code of ref document: A1