Parallel volume rendering system with a resampling module for parallel and perspective projections
First Claim
1. A volume rendering system for enabling parallel-pipeline processing of perspective rays cast into a volume to be rendered by parallizing perspective rays, comprising:
- a memory for storing plural voxels, said voxels collectively describing said volume to be rendered;
a resampling unit for selectively receiving a subset of said voxels from said memory, said subset of said voxels proximate to a sample along a particular ray, and for combining said subset of voxels into said sample;
a rendering module for receiving said sample and for selectively combining said sample with other samples along said particular ray received from said resampling unit to generate a single pixel centered on said particular ray; and
a perspective ray control element, in communication with said memory, said resampling unit, and said rendering module, for casting said particular ray through said single pixel.
3 Assignments
0 Petitions
Accused Products
Abstract
A volume rendering system re-samples voxels read from a voxel memory to generate samples along perspective rays cast from a center of projection using a level of detail value. Color computations are performed with the samples to produce pixels for a baseplane image. The level of detail is computed, at each plane of samples perpendicular to a principal viewing axis, from the current sample position and the distance between the center of projection and the baseplane; the principal viewing axis is the coordinate axis in a rendered volume most parallel with a viewing vector. The level of detail provides a measure of the distance between two neighboring perspective rays at each plane and is used to determine the number of voxels and weights for these voxels required to compute a single sample at each plane. Multi-resolution datasets prepared for different levels of details are used to simplify the resampling operation by limiting the number of voxels required to compute a single sample.
-
Citations
26 Claims
-
1. A volume rendering system for enabling parallel-pipeline processing of perspective rays cast into a volume to be rendered by parallizing perspective rays, comprising:
-
a memory for storing plural voxels, said voxels collectively describing said volume to be rendered;
a resampling unit for selectively receiving a subset of said voxels from said memory, said subset of said voxels proximate to a sample along a particular ray, and for combining said subset of voxels into said sample;
a rendering module for receiving said sample and for selectively combining said sample with other samples along said particular ray received from said resampling unit to generate a single pixel centered on said particular ray; and
a perspective ray control element, in communication with said memory, said resampling unit, and said rendering module, for casting said particular ray through said single pixel. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A volume rendering system for enabling parallel-pipeline processing of perspective rays cast into a volume to be rendered by parallelizing perspective rays, comprising:
-
a voxel memory for storing plural voxels collectively describing said volume to be rendered;
a dataset memory for storing plural multi-resolution datasets;
a resampling unit for selectively receiving a subset of said multi-resolution datasets from said memory, said subset proximate to a sample along a particular ray, and for combining said subset into a sample;
a rendering module for receiving said sample and for combining said sample with other samples along said particular ray received from said resampling unit to generate a single pixel;
a perspective ray control element, in communication with said dataset memory, said resampling unit, and said rendering module, for casting said particular ray through said single pixel; and
a processor in communication with said voxel memory and said dataset memory, wherein said processor calculates said multi-resolution datasets based upon said voxels, such that said multi-resolution datasets represent each position within said volume to be rendered at varying degrees of resolution. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A method of rendering a multi-dimensional volume on a baseplane via parallel-pipeline processing of perspective rays cast into said volume as parallelized perspective rays, comprising the steps of:
-
storing a representation of said volume as a plurality of voxels in a voxel memory;
retrieving a subset of said voxels from said memory by a resampling unit, said subset of said voxels proximate to a sample along a particular ray;
determining a range of said subset of voxels to be processed by said resampling unit;
determining a weight to be applied to each of said subset of voxels to be processed by said resampling unit;
compositing said weighted voxels within said range of voxels, by said resampling unit, to generate said sample; and
rendering a pixel from said sample and from other samples along said particular ray received from said resampling unit by a rendering module. - View Dependent Claims (20, 21)
calculating a distance from a center of projection for a set of perspective rays cast into said volume; and
calculating the relative position of a sample to be calculated within said volume, wherein said distance and relative position are utilized in said step of calculating a level of detail.
-
-
22. A method of rendering a multi-dimensional volume on a baseplane via parallel-pipeline processing of perspective rays cast into said volume as parallelized perspective rays, comprising the steps of:
-
storing a representation of said volume as a plurality of voxels in a voxel memory;
generating a set of multi-resolution datasets from said voxels, said multi-resolution datasets representing each position within said volume at varying degrees of resolution, retrieving a subset of said multi-resolution datasets from said memory by a resampling unit;
determining a range of said subset of said multi-resolution datasets to be processed by said resampling unit;
determining a weight to be applied to each of said subset of said multi-resolution datasets to be processed by said resampling unit;
compositing said weighted multi-resolution datasets within said range of multi-resolution datasets, by said resampling unit, to generate a sample; and
rendering a pixel from said sample and from other samples received from said resampling unit by a rendering module. - View Dependent Claims (23, 24)
calculating a distance from a center of projection for a set of perspective rays cast into said volume; and
calculating the relative position of a sample to be calculated within said volume, wherein said distance and relative position are utilized in said step of calculating a level of detail.
-
-
25. A method for rendering voxels onto a baseplane including a plurality of pixels using parallel processing pipelines, comprising the steps of:
-
casting a perspective ray, for each pixel of the baseplane, through the voxels, each perspective ray including a plurality of sample points;
sampling voxels proximate to each sample point along a particular ray associated with a particular pixel in the parallel processing pipelines; and
accumulating the sampled voxels of each sample point along the particular ray into the particular pixel of the baseplane to perspectively render the voxels using the parallel processing pipelines. - View Dependent Claims (26)
weighting the sampled voxels according to a proximity to each sample point in parallel.
-
Specification