WO2009117691A4 - Architectures for parallelized intersection testing and shading for ray-tracing rendering - Google Patents

Architectures for parallelized intersection testing and shading for ray-tracing rendering Download PDF

Info

Publication number
WO2009117691A4
WO2009117691A4 PCT/US2009/037860 US2009037860W WO2009117691A4 WO 2009117691 A4 WO2009117691 A4 WO 2009117691A4 US 2009037860 W US2009037860 W US 2009037860W WO 2009117691 A4 WO2009117691 A4 WO 2009117691A4
Authority
WO
WIPO (PCT)
Prior art keywords
intersection
rays
ray
testers
testing
Prior art date
Application number
PCT/US2009/037860
Other languages
French (fr)
Other versions
WO2009117691A3 (en
WO2009117691A2 (en
Inventor
Luke Tilman Peterson
James Alexander Mccombe
Ryan R. Salsbury
Stephen Purcell
Original Assignee
Caustic Graphics, Inc
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 Caustic Graphics, Inc filed Critical Caustic Graphics, Inc
Priority to CN200980118357.7A priority Critical patent/CN102037497B/en
Priority to JP2011500994A priority patent/JP5485257B2/en
Publication of WO2009117691A2 publication Critical patent/WO2009117691A2/en
Publication of WO2009117691A3 publication Critical patent/WO2009117691A3/en
Publication of WO2009117691A4 publication Critical patent/WO2009117691A4/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing

Abstract

In an example, ray tracing scenes includes using a plurality of intersection testing resources coupled with a plurality of shading resources, communicative in the aggregate through links/queues. A queue from testing to shading comprises respective ray/primitive intersection indications, comprising ray identifiers. A shading to testing queue comprises identifiers of new rays for test, wherein data defining the rays is separately stored in memories distributed among the intersection testing resources. Ray definition data can be retained in distributed memories until rays complete intersection testing, being selectable for testing multiple times based on ray identifier. A structure of acceleration shapes can be used. Packets of ray identifiers and shape data can circulate among intersection testing resources, each resource can test rays identified in the packet, and for which definition data is present in its memory. Acceleration shape test results allow collection of rays based on intersected shape, and closest detection ray/primitive intersections are indicated by queuing ray identifiers for shading.

Claims

AMENDED CLAIMS Received by the International Bureau on 09. Nov.2009 (09.11.2009)
1. A system for intersection testing of rays in a 3-D scene, comprising: a plurality of intersection testers, each having access to a respective cache memory to store a respective subset of a master copy of ray definition data that defines a plurality of rays; control logic having access to respective identifiers for at least some of the rays defined by definition data stored in the cache memories of the intersection testers, the control logic operable to control ray intersection testing by associating a plurality of the ray identifiers with shape information that is indicative of one or more shapes located in the 3-D scene to be intersection tested with those identified rays, and making data representative of the association available to the plurality of intersection testers, wherein each of the intersection testers is operable to test, for intersection with the indicated one or more shapes, identified rays for which its cache stores ray definition data; and an output buffer coupled to receive outputs from the intersection testers, the outputs comprising data indicative of results of the intersection testing.
2- The system of claim 1, further comprising a plurality of computation resources for executing shader code routines associated with primitives, which arc identified by the outputs from the intersection testers, retrievable from the output buffer.
3. The system of claim 2, wherein the execution of the shader code routines generates new rays to be intersection tested, and further comprising an input queue to the plurality of intersection testers to receive the new rays, and the control logic is operable to begin intersection testers of the new rays as other rays complete intersection testing.
4. The system of any one of claims 1 -3, wherein each intersection tester is configured to be responsive to receiving an identifier for a ray stored in its respective memory by testing the identified ray for intersection with one or more shapes, for which definition data is provided with the ray identifier or for which memory reference information is provided.
5. The system of any one of claims 1-4, wherein the intersection testing occurs between rays and geometric shapes comprising acceleration structure elements selected from one or more of cutting planes of a fcD-trce, axis-aligned bounding boxes, and spheres.
6. The system of any one of claims 1-5, wherein the intersection testers are configured for sequentially passing, among the intersection testers, the data representative of the association between the plurality of the ray identifiers and the shape information that is indicative of the one or more shapes to be intersection tested with those identified rays, to make that data available to all of the intersection testers.
50
7. The system of claim 6, wherein the shapes that each intersection tester can test for intersection with rays comprise geometry acceleration elements and primitives, and each intersection tester further is lo pass results of testing rays for intersection with geometry acceleration elements with the data representative of the association, and to maintain results of testing rays for intersection with primitives in the cache memories of the intersection testers.
8. The system of any one of claims 1-7, wherein the plurality of intersection testers are implemented as threads of computer executable instructions executing on one or more computational cores.
9. The system of any one of claims 1-8, further comprising a memory storing primitives composing a 3-D scene, the primitive-storing memory also serving as a main memory for a computing system comprising one or more computational cores, the one or more computational cores collectively can concurrently execute a plurality of threads, the threads allocated by the system between implementing the intersection testers and executing shader code routines on a time-varying basis.
10. A method of controlling ray tracing of a scene composed of primitives m a system having a plurality of compute resources, each coupled to a respective local memory and a shared main memory, where the main memory is higher in latency than the local memories, comprising: distributing, among the local memories of the compute resources, data defining respective subsets of the rays to be intersection tested in the scene; determining to test a group of the rays, members of the group collectively stored in multiple of the local memories, for intersection with a geometric shape; providing data for the geometric shape and ray identifiers to the compute resources to cause at least one compute resource whose local memory stores definition data for a ray in the group to receive the geometric shape data and the ray identifiers; and receiving, from the compute resources, indications of detected intersections between rays of the group and the geometric shape, the indications resulting from testing each ray of the group in at least one computing resource whose local memory was storing definition data for that ray.
11. The method of claim 10, further comprising fetching data defining the shape from the main memory and wherein the providing data for the geometric shape causes provision of the shape definition data to the compute resources with the ray identifiers of the group.
12. The method of any one of claims 10-1 1 , wherein the indications comprise data for intersections between geometry acceleration elements and rays, and the group of rays was formed by collecting rays determined to intersect the same geometry acceleration clement and further comprising
51 deferring further testing of geometry acceleration elements related to tbat geometry acceleration element until a sufficient number rays are collected.
13. The method of any one of claims 10-12, wherein the local memories include cache memories and further comprising protecting data defining a given ray from being overwritten in its cache memory until that ray has completed intersection testing.
14. The method of any one of claims 10-13, further comprising retaining in respective local memories respective current closest detected intersection for rays having ray definition data stored in that local memory and generating each intersection indication in response to identifying the closest possible intersection between any primitive and a given ray.
15. The method of any one of claims 10-14, wherein the data for the geometric shape comprises a selection from the set of (1) a reference identifying one or more shapes to be tested and (2) data defining one or more shapes to be tested.
16. The method of any one of claims 10-15, wherein the providing comprises queuing ray identifiers into a first queue, from which the compute resources are coupled to receive, and the receiving comprises receiving the intersection indications from a second queue.
17. The method of any one of claims 10-16, further comprising maintaining a master copy of the rays in the main memory.
18. A computer readable medium storing modules of computer executable code for implementing a method according to any one of claims 10-17 on one or more computation resources.
19. A system for rendering representations of a 3-D scene composed of primitives using ray "tracing, comprising: a memory storing primitives composing a 3-D scene; one or more memories storing definition data for a plurality of rays; a plurality of intersection testers, each for testing at least one of the rays with at least one of the primitives, resulting in output of an intersection testing result; a plurality of shadcr computation units, each operable to run shading routines for detected ray /primitive intersections, indicated by the results, the running of the shading routines resulting in new rays to be intersection tested, definition data for the new rays to be stored in the one or more memories storing definition data for the plurality of rays; a first communication link for outputting the intersection testing results from the intersection testers to the shader resources; and a second communication link for sending, to the intersection testers, identifiers for new rays resulting from running of the shading routines, the identifiers to be for retrieving definition data for respective rays from the one or more memories during intersection testing of those rays.
52
20. The system of claim J 9, further comprising channels for passing messages among the plurality of intersection testers, wherein each of the intersection testers is configured to interpret data in a message received by it as containing a plurality of ray identifiers, and to intersection test a selected ray identified in the message.
21. The system of claim 19, wherein the intersection testers are configured in a ring to pass a packet of ray identifiers among the intersection testers.
22. The system of claim 19, wherein each of the intersection testers are operable to select respective rays for test based on determining whether a cache associated with that intersection tester stores definition data for any of the rays identified in a message passed among the intersection testers.
23. The system of claim 19, wherein the plurality of intersection testers are implemented as threads of computer executable instructions executing on one or more computational cores, each having localized cache memory access to a subset of the rays traveling in the scene.
24. The system of claim 19, wherein the memory storing primitives composing a 3-D scene is implemented as a main memory for one or more computational cores, the one or more cores collectively can concurrently execute a number of threads, the number of threads being allocated between implementing the intersection testers and the shader computation units on a time-varying basis.
53
PCT/US2009/037860 2008-03-21 2009-03-20 Architectures for parallelized intersection testing and shading for ray-tracing rendering WO2009117691A2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN200980118357.7A CN102037497B (en) 2008-03-21 2009-03-20 Architectures for parallelized intersection testing and shading for ray-tracing rendering
JP2011500994A JP5485257B2 (en) 2008-03-21 2009-03-20 Parallelized cross-test and shading architecture for ray-trace rendering

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US3873108P 2008-03-21 2008-03-21
US61/038,731 2008-03-21
US9589008P 2008-09-10 2008-09-10
US61/095,890 2008-09-10

Publications (3)

Publication Number Publication Date
WO2009117691A2 WO2009117691A2 (en) 2009-09-24
WO2009117691A3 WO2009117691A3 (en) 2009-11-12
WO2009117691A4 true WO2009117691A4 (en) 2009-12-30

Family

ID=40886951

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2009/037860 WO2009117691A2 (en) 2008-03-21 2009-03-20 Architectures for parallelized intersection testing and shading for ray-tracing rendering

Country Status (4)

Country Link
JP (2) JP5485257B2 (en)
KR (1) KR101550477B1 (en)
CN (2) CN104112291B (en)
WO (1) WO2009117691A2 (en)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100064291A1 (en) * 2008-09-05 2010-03-11 Nvidia Corporation System and Method for Reducing Execution Divergence in Parallel Processing Architectures
CN101826215B (en) * 2010-04-19 2012-05-09 浙江大学 Real-time secondary ray tracing concurrent rendering method
CN102074039B (en) * 2010-09-29 2012-12-19 深圳市蓝韵网络有限公司 Method for drawing volume rendering cutting surface
KR101845231B1 (en) 2011-06-14 2018-04-04 삼성전자주식회사 Image processing apparatus and method
US20130033507A1 (en) * 2011-08-04 2013-02-07 Nvidia Corporation System, method, and computer program product for constructing an acceleration structure
CN102426710A (en) * 2011-08-22 2012-04-25 浙江大学 Surface area heuristic construction KD (K-dimension) tree parallel method on graphics processing unit
US9595074B2 (en) 2011-09-16 2017-03-14 Imagination Technologies Limited Multistage collector for outputs in multiprocessor systems
KR102042539B1 (en) * 2012-07-24 2019-11-08 삼성전자주식회사 Method and apparatus for ray tracing
CN102855655A (en) * 2012-08-03 2013-01-02 吉林禹硕动漫游戏科技股份有限公司 Parallel ray tracing rendering method based on GPU (Graphic Processing Unit)
KR102080851B1 (en) 2012-09-17 2020-02-24 삼성전자주식회사 Apparatus and method for scheduling of ray tracing
CN107833268B (en) * 2012-11-02 2021-05-14 想象技术有限公司 Geometric graph processing method for graph rendering and graph rendering system
US10970912B2 (en) 2013-03-14 2021-04-06 Imagination Technologies Limited 3-D graphics rendering with implicit geometry
GB2513699B (en) * 2013-03-14 2017-01-11 Imagination Tech Ltd 3-D Graphics rendering with implicit geometry
GB2550091B (en) * 2013-03-15 2018-04-04 Imagination Tech Ltd Rendering with point sampling and pre-computed light transport information
CN103279974A (en) * 2013-05-15 2013-09-04 中国科学院软件研究所 High-accuracy high-resolution satellite imaging simulation engine and implementation method
US11257271B2 (en) 2013-09-26 2022-02-22 Imagination Technologies Limited Atomic memory update unit and methods
CN104516831B (en) * 2013-09-26 2019-02-22 想象技术有限公司 Atomic memory updating unit and method
KR102116981B1 (en) * 2013-10-02 2020-05-29 삼성전자 주식회사 Method and Apparatus for accelerating ray tracing
KR102193684B1 (en) * 2013-11-04 2020-12-21 삼성전자주식회사 Apparatus and method for processing ray tracing
US9697640B2 (en) * 2014-04-21 2017-07-04 Qualcomm Incorporated Start node determination for tree traversal in ray tracing applications
KR102219289B1 (en) * 2014-05-27 2021-02-23 삼성전자 주식회사 Apparatus and method for traversing acceleration structure in a ray tracing system
EP3012805A1 (en) * 2014-10-21 2016-04-27 The Procter and Gamble Company Synthesizing an image of fibers
KR102282896B1 (en) 2014-12-23 2021-07-29 삼성전자주식회사 Image processing apparatus and method
KR102493461B1 (en) * 2015-08-31 2023-01-30 삼성전자 주식회사 System and Method of rendering
US10262456B2 (en) * 2015-12-19 2019-04-16 Intel Corporation Method and apparatus for extracting and using path shading coherence in a ray tracing architecture
US9892544B2 (en) * 2015-12-22 2018-02-13 Intel Corporation Method and apparatus for load balancing in a ray tracing architecture
US10282890B2 (en) * 2016-09-29 2019-05-07 Intel Corporation Method and apparatus for the proper ordering and enumeration of multiple successive ray-surface intersections within a ray tracing architecture
US10445852B2 (en) * 2016-12-22 2019-10-15 Apple Inc. Local image blocks for graphics processing
KR101826123B1 (en) 2017-07-14 2018-02-07 한국과학기술정보연구원 Unstructured Grid Volume Rendering METHOD AND APPARATUS
US10438397B2 (en) * 2017-09-15 2019-10-08 Imagination Technologies Limited Reduced acceleration structures for ray tracing systems
CN107895400A (en) * 2017-11-09 2018-04-10 深圳赛隆文化科技有限公司 A kind of three-dimensional cell domain object of virtual reality renders analogy method and device
US11138009B2 (en) * 2018-08-10 2021-10-05 Nvidia Corporation Robust, efficient multiprocessor-coprocessor interface
KR102143155B1 (en) * 2018-08-14 2020-08-10 국방과학연구소 Asymptotic high frequency method and device using Grouping of Rays
US10970914B1 (en) * 2019-11-15 2021-04-06 Imagination Technologies Limited Multiple precision level intersection testing in a ray tracing system
CN111105341B (en) * 2019-12-16 2022-04-19 上海大学 Framework method for solving computational fluid dynamics with low power consumption and high operational performance
CN111177014B (en) * 2020-02-24 2023-02-24 重庆长安新能源汽车科技有限公司 Software automatic test method, system and storage medium
US11373358B2 (en) * 2020-06-15 2022-06-28 Nvidia Corporation Ray tracing hardware acceleration for supporting motion blur and moving/deforming geometry
US11508112B2 (en) * 2020-06-18 2022-11-22 Nvidia Corporation Early release of resources in ray tracing hardware
US11335061B2 (en) 2020-07-30 2022-05-17 Apple Inc. Ray intersection data structure with many-to-many mapping between bounding regions and primitives
US11367242B2 (en) * 2020-07-30 2022-06-21 Apple Inc. Ray intersect circuitry with parallel ray testing
CN114331802A (en) * 2020-09-30 2022-04-12 想象技术有限公司 Intersection testing for ray tracing
CN112190937A (en) * 2020-10-10 2021-01-08 网易(杭州)网络有限公司 Illumination processing method, device, equipment and storage medium in game
GB2599182B (en) * 2021-03-23 2022-10-26 Imagination Tech Ltd Intersection testing in a ray tracing system
US11922026B2 (en) 2022-02-16 2024-03-05 T-Mobile Usa, Inc. Preventing data loss in a filesystem by creating duplicates of data in parallel, such as charging data in a wireless telecommunications network
US20240112397A1 (en) * 2022-09-30 2024-04-04 Advanced Micro Devices, Inc. Spatial test of bounding volumes for rasterization
CN115640138B (en) * 2022-11-25 2023-03-21 摩尔线程智能科技(北京)有限责任公司 Method and apparatus for ray tracing scheduling

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01149183A (en) * 1987-12-05 1989-06-12 Fujitsu Ltd Method for forming
DE69129995T2 (en) * 1990-01-23 1998-12-24 Hewlett Packard Co Decentralized processing device and method for use in global reproduction
KR100300969B1 (en) * 1996-04-25 2001-10-22 윤종용 Method for extracting crossfoot test area in ray tracing and rendering device thereof
JPH11353496A (en) * 1998-06-10 1999-12-24 Ken Nishimura Intersection search device for light ray tracing
US6556200B1 (en) * 1999-09-01 2003-04-29 Mitsubishi Electric Research Laboratories, Inc. Temporal and spatial coherent ray tracing for rendering scenes with sampled and geometry data
US6724856B2 (en) * 2002-04-15 2004-04-20 General Electric Company Reprojection and backprojection methods and algorithms for implementation thereof
DE10239672B4 (en) * 2002-08-26 2005-08-11 Universität des Saarlandes Method and device for generating a two-dimensional image of a three-dimensional structure
US7043579B2 (en) * 2002-12-05 2006-05-09 International Business Machines Corporation Ring-topology based multiprocessor data access bus
DE102004007835A1 (en) * 2004-02-17 2005-09-15 Universität des Saarlandes Device for displaying dynamic complex scenes
FR2896895B1 (en) * 2006-02-01 2008-09-26 Redway Soc Par Actions Simplifiee METHOD FOR SYNTHESIZING A VIRTUAL IMAGE BY LAUNCHING BEAMS
WO2007124363A2 (en) * 2006-04-19 2007-11-01 Mental Images Gmbh Instant ray tracing
CN101127126B (en) * 2006-08-16 2012-09-26 腾讯科技(深圳)有限公司 Method and device for emulating secondary surface dispersion effect of non-physical model
US8237711B2 (en) 2007-11-19 2012-08-07 Caustic Graphics, Inc. Tracing of shader-generated ray groups using coupled intersection testing

Also Published As

Publication number Publication date
CN102037497A (en) 2011-04-27
CN104112291B (en) 2017-03-29
CN102037497B (en) 2014-06-11
JP2014089773A (en) 2014-05-15
JP5740704B2 (en) 2015-06-24
KR101550477B1 (en) 2015-09-04
JP5485257B2 (en) 2014-05-07
CN104112291A (en) 2014-10-22
JP2011515766A (en) 2011-05-19
KR20100128337A (en) 2010-12-07
WO2009117691A3 (en) 2009-11-12
WO2009117691A2 (en) 2009-09-24

Similar Documents

Publication Publication Date Title
WO2009117691A4 (en) Architectures for parallelized intersection testing and shading for ray-tracing rendering
US10789758B2 (en) Ray tracing in computer graphics using intersection testing at selective resolution
CN102279978B (en) Tile rendering for image processing
US8619079B2 (en) Ray tracing system architectures and methods
EP2335224B1 (en) Ray tracing using ray-specific clipping
CN101506847B (en) Methods and systems for partitioning a spatial index
US10127710B2 (en) Processor and method for accelerating ray casting
CN103593817A (en) Method and apparatus for graphic processing using parallel pipeline
CN104050706A (en) Pixel shader bypass for low power graphics rendering
CN104007948A (en) Method and device based on distributed computation and visualized display of three-dimensional GIS mass data
Liu et al. Classification of big point cloud data using cloud computing
CN113822788A (en) Early release of resources in ray tracing hardware
EP2690599B1 (en) Method and apparatus for ray tracing
CN112883102A (en) Data visualization display method and device, electronic equipment and storage medium
Fan et al. A hierarchical grid based framework for fast collision detection
CN115309539A (en) Video memory allocation method and system and non-transitory storage medium
Verdesca et al. Using graphics processor units to accelerate onesaf: A case study in technology transition
US20210407173A1 (en) Intersection Testing in a Ray Tracing System Using Multiple Ray Bundle Intersection Tests
Frank et al. Dependency graph approach to load balancing distributed volume visualization
CN111968211A (en) Memory, and drawing method, system and equipment based on point cloud data
Juliachs et al. Hybrid CPU-GPU Unstructured Meshes Parallel Volume Rendering on PC Clusters.

Legal Events

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

Ref document number: 200980118357.7

Country of ref document: CN

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

Ref document number: 09723205

Country of ref document: EP

Kind code of ref document: A2

WWE Wipo information: entry into national phase

Ref document number: 2011500994

Country of ref document: JP

NENP Non-entry into the national phase in:

Ref country code: DE

ENP Entry into the national phase in:

Ref document number: 20107023579

Country of ref document: KR

Kind code of ref document: A

122 Ep: pct application non-entry in european phase

Ref document number: 09723205

Country of ref document: EP

Kind code of ref document: A2