Method and system for depth pre-processing and geometry sorting using binning hardware

    公开(公告)号:US11195326B2

    公开(公告)日:2021-12-07

    申请号:US16137830

    申请日:2018-09-21

    IPC分类号: G06T15/80 G06T1/20 G06T15/00

    摘要: Described herein are techniques for improving the effectiveness of depth culling. In a first technique, a binner is used to sort primitives into depth bins. Each depth bin covers a range of depths. The binner transmits the depth bins to the screen space pipeline for processing in near-to-far order. Processing the near bins first results in the depth buffer being updated, allowing fragments for the primitives in the farther bins to be culled more aggressively than if the depth binning did not occur. In a second technique, a buffer is used to initiate two-pass processing through the screen space pipeline. In the first pass, primitives are sent down to update the depth block and are then culled. The fragments are processed normally in the second pass, with the benefit of the updated depth values.

    Bounding volume hierarchy generation

    公开(公告)号:US11158112B1

    公开(公告)日:2021-10-26

    申请号:US17114485

    申请日:2020-12-07

    IPC分类号: G06T15/06 G06T9/40 G06T17/10

    摘要: Techniques for performing ray tracing operations are provided. The techniques include identifying bounding-box-surface-area-weighted centroid of a group of primitives associated with a bounding box of a bounding volume hierarchy (“BVH”); generating candidate splits at the centroid, the candidate splits defining geometry subgroups; identifying a candidate split having a lowest surface area bounding box; and generating nodes for the BVH that include geometry of the geometry subgroups of the identified candidate split.

    OPACITY TEXTURE-DRIVEN TRIANGLE SPLITTING

    公开(公告)号:US20220189096A1

    公开(公告)日:2022-06-16

    申请号:US17118549

    申请日:2020-12-10

    IPC分类号: G06T15/06 G06T15/00 G06T17/00

    摘要: Techniques for performing ray tracing operations are provided. The techniques include dividing a primitive of a scene to generate primitive portions; identifying, from the primitive portions, and based on an opacity texture, one or more opaque primitive portions and one or more invisible primitive portions; generating box nodes for a bounding volume hierarchy corresponding to the opaque primitive portions, but not the invisible primitive portions; and inserting the generated box nodes into the bounding volume hierarchy.

    Bounding volume hierarchy compression

    公开(公告)号:US11321903B2

    公开(公告)日:2022-05-03

    申请号:US16832109

    申请日:2020-03-27

    IPC分类号: G06T15/10 G06T15/00 G06T15/06

    摘要: A technique for performing ray tracing operations is provided. The technique includes receiving a ray for an intersection test, testing the ray against boxes specified in a bounding volume hierarchy to eliminate one or more boxes or triangles from consideration, unpacking a triangle from a compressed triangle block of the bounding volume hierarchy, the compressed triangle block including two or more triangles that share at least one vertex, and testing the ray for intersection against at least one of the unpacked triangles.

    METHOD AND SYSTEM FOR DEPTH PRE-PROCESSING AND GEOMETRY SORTING USING BINNING HARDWARE

    公开(公告)号:US20200098169A1

    公开(公告)日:2020-03-26

    申请号:US16137830

    申请日:2018-09-21

    IPC分类号: G06T15/80 G06T15/00 G06T1/20

    摘要: Described herein are techniques for improving the effectiveness of depth culling. In a first technique, a binner is used to sort primitives into depth bins. Each depth bin covers a range of depths. The binner transmits the depth bins to the screen space pipeline for processing in near-to-far order. Processing the near bins first results in the depth buffer being updated, allowing fragments for the primitives in the farther bins to be culled more aggressively than if the depth binning did not occur. In a second technique, a buffer is used to initiate two-pass processing through the screen space pipeline. In the first pass, primitives are sent down to update the depth block and are then culled. The fragments are processed normally in the second pass, with the benefit of the updated depth values.

    Compression and decompression of indices in a graphics pipeline

    公开(公告)号:US10600142B2

    公开(公告)日:2020-03-24

    申请号:US15832131

    申请日:2017-12-05

    摘要: A compute unit accesses a chunk of bits that represent indices of vertices of a graphics primitive. The compute unit sets values of a first bit to indicate whether the chunk is monotonic or ordinary, second bits to define an offset that is determined based on values of indices in the chunk, and sets of third bits that determine values of the indices in the chunk based on the offset defined by the second bits. The compute unit writes a compressed chunk represented by the first bit, the second bits, and the sets of third bits to a memory. The compressed chunk is decompressed and the decompressed indices are written to an index buffer. In some embodiments, the indices are decompressed based on metadata that includes offsets that are determined based on values of the indices and bitfields that indicate characteristics of the indices.

    BOUNDING VOLUME HIERARCHY COMPRESSION

    公开(公告)号:US20210304484A1

    公开(公告)日:2021-09-30

    申请号:US16832109

    申请日:2020-03-27

    IPC分类号: G06T15/00 G06T15/06

    摘要: A technique for performing ray tracing operations is provided. The technique includes receiving a ray for an intersection test, testing the ray against boxes specified in a bounding volume hierarchy to eliminate one or more boxes or triangles from consideration, unpacking a triangle from a compressed triangle block of the bounding volume hierarchy, the compressed triangle block including two or more triangles that share at least one vertex, and testing the ray for intersection against at least one of the unpacked triangles.

    COMPRESSION AND DECOMPRESSION OF INDICES IN A GRAPHICS PIPELINE

    公开(公告)号:US20190172173A1

    公开(公告)日:2019-06-06

    申请号:US15832131

    申请日:2017-12-05

    IPC分类号: G06T1/20 G06T11/00 G06T15/00

    摘要: A compute unit accesses a chunk of bits that represent indices of vertices of a graphics primitive. The compute unit sets values of a first bit to indicate whether the chunk is monotonic or ordinary, second bits to define an offset that is determined based on values of indices in the chunk, and sets of third bits that determine values of the indices in the chunk based on the offset defined by the second bits. The compute unit writes a compressed chunk represented by the first bit, the second bits, and the sets of third bits to a memory. The compressed chunk is decompressed and the decompressed indices are written to an index buffer. In some embodiments, the indices are decompressed based on metadata that includes offsets that are determined based on values of the indices and bitfields that indicate characteristics of the indices.