IP Library › Granted Patent US 9,679,351
Granted Patent B2
US 9,679,351 · App. 14/935,730 · Granted Jun 13, 2017

Out-of-core ray tracing with memory-efficient page generation

Inventor: Kirill Garanzha (Moscow, RU)
G06T1/60G06F12/0897G06T15/005G06T15/06G06T17/005G06T17/10G06T2200/04G06T2210/12
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,679,351
App. No.
14/935,730
Granted
Jun 13, 2017
Kind
B2
Abstract

In one embodiment, a method comprising grouping by a processor primitives that comprise a scene into plural clusters, each cluster comprising a subset of the primitives that are proximal to each other relative to the other of the primitives; and allocating an equal size memory block for each respective cluster for the plural clusters, wherein all the plural clusters comprise one scene representation, wherein each cluster can contain up to M primitives, where M is an integer number.

Claims (13)

1. A method, comprising:

constructing by a processor a hierarchical spatial index organizing primitives that comprise a scene using a limited memory block;

segmenting by the processor the scene into plural chunks of the primitives, where each chunk data fits in the limited memory block;

for each of the plural chunks constructing by the processor a hierarchical spatial index organizing the primitives that comprise the current chunk wherein each node of the spatial index of the chunk is stopped subdividing into more nodes and represent a group once it has less or equal than M primitives wherein M is an integer number;

assembling all the groups of up to M primitives generated for all of the plural chunks of the scene and constructing a top-level spatial index organizing the groups wherein the number of groups is less than the number of scene primitives; and

using a surface area heuristic in the process of creating the plurality of groups comprising up to M primitives by constructing the hierarchical spatial index for each chunk, wherein the surface area heuristic is modified with a coefficient based on modulo operation that favors those splits of one node into several nodes that would result in less number of groups of up to M primitives for the same number of input primitives, wherein the surface area heuristic is used to decrease the spatial volume bounding the primitives of the spatial hierarchy node while the coefficient based on modulo operation is used to increase the number of primitives per limited group on average for the plurality of all groups of primitives.

2. A method, comprising:

constructing by a graphics processing unit (GPU) a spatial index organizing primitives that comprise a scene using a limited memory block available in the GPU wherein the spatial index comprises a plurality of pages each comprising a subset of the scene primitives; and

performing a ray-primitive intersection search for one or more of rays in parallel by the GPU for a scene containing more data than the GPU can allocate in its own physical memory; and

organizing a ray-primitive intersection search process using several iterations of at least the following operations executed in each iteration:

compute ray-primitive intersections for one or more rays in parallel by the GPU using portions of scene data available in GPU memory and request for portions of scene data that are not currently in GPU memory but are necessary for ray-primitive intersection search; and

deliver requested portions of scene data to GPU memory excluding those portions of scene data that have already been loaded to GPU memory within one of the previous iterations of ray-primitive intersection search process; and

wherein the ray-primitive intersection search is based on the spatial index that organizes the scene data and uses the plurality of pages to determine the portions of scene data that can be delivered to the GPU memory on request.

Continuity (3)
Continuation 13549668 · Jul 16, 2012
Provisional Application 61508106 · Jul 15, 2011
Related Publication 20160078588A1 · Mar 17, 2016