CN109829970B - Mass data parallel volume rendering method based on unequal-size blocks - Google Patents

Mass data parallel volume rendering method based on unequal-size blocks Download PDF

Info

Publication number
CN109829970B
CN109829970B CN201910091777.6A CN201910091777A CN109829970B CN 109829970 B CN109829970 B CN 109829970B CN 201910091777 A CN201910091777 A CN 201910091777A CN 109829970 B CN109829970 B CN 109829970B
Authority
CN
China
Prior art keywords
block
unequal
size
bound
blocks
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN201910091777.6A
Other languages
Chinese (zh)
Other versions
CN109829970A (en
Inventor
薛健
朱小烨
吕科
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Chinese Academy of Sciences
Original Assignee
University of Chinese Academy of Sciences
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 University of Chinese Academy of Sciences filed Critical University of Chinese Academy of Sciences
Priority to CN201910091777.6A priority Critical patent/CN109829970B/en
Publication of CN109829970A publication Critical patent/CN109829970A/en
Application granted granted Critical
Publication of CN109829970B publication Critical patent/CN109829970B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Generation (AREA)

Abstract

The invention relates to a massive data parallel volume rendering method based on unequal-size blocks, which is characterized by comprising the following steps of: 1) establishing an adjacent relation between the unequal-size blocks; 2) drawing a global occlusion relation graph of non-spatial partitions in the three-dimensional scalar field data; 3) performing topological sorting on the drawn global shielding relation graph to obtain a parallel grouping queue of non-space blocks in the three-dimensional scalar field data; 4) sequentially performing parallel volume rendering on each parallel grouped non-space division block in the parallel grouping queue to obtain a parallel volume rendering result of the three-dimensional scalar field data; 5) judging whether the volume rendering process is finished or not, and outputting a parallel volume rendering result of the current three-dimensional scalar field data if the volume rendering process is finished; and if not, entering the step 2), and redrawing the global shielding relation graph of the non-space partition blocks until obtaining a parallel volume rendering result of the new three-dimensional scalar field data.

Description

Mass data parallel volume rendering method based on unequal-size blocks
Technical Field
The invention relates to a massive data parallel volume rendering method based on unequal-size blocks, and belongs to the field of massive scalar field data processing and visualization.
Background
A direct three-dimensional volume data visualization method based on graphics hardware was first proposed in 1993, where the feasibility of interactive volume data reconstruction and volume rendering algorithms to achieve acceleration by hardware-provided 3D textures was demonstrated. However, these methods can only be implemented on large graphics workstations, which is cost prohibitive. With the rapid development of consumer-grade graphics processors, more and more volume rendering research is moving to graphics processor-based fields.
Researchers have applied the early ray-termination, empty voxel skipping method to GPU (graphics processor) -based volume rendering, further increasing rendering speed. However, these classical volume rendering algorithms based on ray casting require that the original volume data is completely loaded into the memory during rendering, and the current hardware level cannot be realized in the case of mass data. Therefore, for the related research of the massive data volume rendering algorithm, researchers provide a method, two slabs (slices) form one slab, the sequence of ray calculation is changed into the sequence of the ray calculation, and random access to an original data field during ray projection is avoided, so that efficient ray projection volume rendering can be performed under the condition that all the slices are not led into a memory, and a self-adaptive super sampling method is provided for more finely sampling the original data. The prior art discloses a semi-adaptive blocking method for blocking original data, which does not affect the blocking speed and obtains a good blocking effect, and further uses a graphic hardware acceleration algorithm, applies texture blocking mapping, encodes detailed textures through hierarchical octrees, and then eliminates empty data blocks through mapping information to finish real-time interactive drawing.
Although the above hardware volume rendering algorithms based on the blocks achieve a certain effect, the position relationship between the blocks and the viewpoint is not considered, that is, under the known viewpoint position, a potential parallel relationship exists between the blocks, and in the prior art, a massive data parallel volume rendering method based on unequal-size blocks, which is used for processing three-dimensional scalar field data after adaptive or semi-adaptive block processing, and realizing rapid volume rendering, does not exist.
Disclosure of Invention
In view of the above problems, an object of the present invention is to provide a method for parallel volume rendering of mass data based on unequal-size blocks for adaptive or semi-adaptive block-processed three-dimensional scalar field data, which can achieve fast volume rendering.
In order to achieve the purpose, the invention adopts the following technical scheme: a massive data parallel volume rendering method based on unequal-size partitioning is characterized by comprising the following steps: 1) traversing the unequal-size blocks in the three-dimensional scalar field data after the adaptive or semi-adaptive block processing, and establishing the adjacent relation between the unequal-size blocks; 2) traversing non-space blocks in the unequal-size blocks according to a transfer function drawn by the three-dimensional scalar field data volume, the current viewpoint position and the adjacent relation among the unequal-size blocks, and drawing a global shielding relation graph of the non-space blocks in the three-dimensional scalar field data; 3) performing topological sorting on the drawn global shielding relation graph to obtain a parallel grouping queue of non-space blocks in the three-dimensional scalar field data; 4) sequentially carrying out parallel volume rendering on each parallel grouped non-space division block in the parallel grouping queue to obtain a parallel volume rendering result of the three-dimensional scalar field data; 5) judging whether the volume rendering process is finished or not, and if so, outputting a parallel volume rendering result of the three-dimensional scalar field data; and if not, entering the step 2), and redrawing the global shielding relation graph of the non-space partition blocks until obtaining a parallel volume rendering result of the new three-dimensional scalar field data.
Further, the specific process of the step 1) is as follows: 1.1) establishing a data structure of unequal-size blocks in three-dimensional scalar field data after adaptive or semi-adaptive block processing, and acquiring spatial positions and block numbers of the unequal-size blocks; 1.2) for each unequal-size block, sequentially traversing all other unequal-size blocks according to the established data structure, and establishing an adjacent relation between the unequal-size blocks; 1.3) storing the adjacent block node number arrays of all the unequal-size blocks into the data structures of the unequal-size blocks in the three-dimensional scalar field data according to the adjacent relation among the unequal-size blocks.
Further, the data structure of the unequal-size blocks comprises a data file sequence number in the external memory, a block size, a bounding box of the blocks and a node number of an adjacent block on a face 6 of the bounding box of the blocks.
Further, the specific process of step 1.2) is as follows: the judgment criterion of the adjacent relation of two unequal-size blocks comprises the following steps: assuming that the current unequal-size block is B, and 6 boundary values of the current unequal-size block are B.bound [ i ], wherein i represents a boundary number, and the number sequence is left, right, upper, lower, front and back; if the unequal-size blocks B 'exist, the boundary values of the unequal-size blocks B' meet the following conditions:
B.bound[2]<B′.bound[3]and B.bound[3]>B′.bound[2]
B.bound[4]<B′.bound[5]and B.bound[5]>B′.bound[4]
B.bound[1]-B′.bound[0]<1
the unequal size block B 'is the adjacent unequal size block of the unequal size block B, the contact surface is the left boundary of the unequal size block B, and the number of the unequal size block B' is put into the adjacent block node number array B.adjNode [0] of the left boundary of the unequal size block B; if the unequal-size blocks B 'exist, the boundary values of the unequal-size blocks B' meet the following conditions:
B.bound[2]<B′.bound[3]and B.bound[3]>B′.bound[2]
B.bound[4]<B′.bound[5]and B.bound[5]>B′.bound[4]
B′.bound[0]-B.bound[1]<1
the unequal size block B 'is the adjacent unequal size block of the unequal size block B, the contact surface is the right boundary of the unequal size block B, and the number of the unequal size block B' is put into the adjacent block node number array B.adjNode [1] of the right boundary of the unequal size block B; if the unequal-size blocks B 'exist, the boundary values of the unequal-size blocks B' meet the following conditions:
B.bound[0]<B′.bound[1]and B.bound[1]>B′.bound[0]
B.bound[4]<B′.bound[5]and B.bound[5]>B′.bound[4]
B.bound[2]-B′.bound[3]<1
the unequal size block B 'is the adjacent unequal size block of the unequal size block B, the contact surface of the unequal size block B is the lower boundary of the unequal size block B, and the number of the unequal size block B' is put into the adjacent block node number array B.adjnode [2] of the lower boundary of the unequal size block B; if the unequal-size blocks B 'exist, the boundary values of the unequal-size blocks B' meet the following conditions:
B.bound[0]<B′.bound[1]and B.bound[1]>B′.bound[0]
B.bound[4]<B′.bound[5]and B.bound[5]>B′.bound[4]
B′.bound[2]-B.bound[3]<1
the unequal size block B 'is the adjacent unequal size block of the unequal size block B, the contact surface is the upper boundary of the unequal size block B, and the number of the unequal size block B' is put into the adjacent block node number array B.adjNode [3] of the upper boundary of the unequal size block B; if the unequal-size blocks B 'exist, the boundary values of the unequal-size blocks B' meet the following conditions:
B.bound[0]<B′.bound[1]and B.bound[1]>B′.bound[0]
B.bound[2]<B′.bound[3]and B.bound[3]>B′.bound[2]
B′.bound[4]-B.bound[5]<1
the unequal size block B 'is the adjacent unequal size block of the unequal size block B, the contact surface is the front boundary of the unequal size block B, and the number of the unequal size block B' is put into the adjacent block node number array B.adjNode [4] of the front boundary of the unequal size block B; if the unequal-size blocks B 'exist, the boundary values of the unequal-size blocks B' meet the following conditions:
B.bound[0]<B′.bound[1]and B.bound[1]>B′.bound[0]
B.bound[2]<B′.bound[3]and B.bound[3]>B′.bound[2]
B.bound[4]-B′.bound[5]<1
the unequal size block B 'is the adjacent unequal size block of the unequal size block B, the contact surface is the back boundary of the unequal size block B, the number of the unequal size block B' is put into the adjacent block node number array B.adjNode [5] of the back boundary of the unequal size block B; and sequentially judging whether the unequal-size block B ' is adjacent to 6 boundary surfaces of the unequal-size block B, if the unequal-size block B ' is adjacent to the unequal-size block B on a certain boundary surface, skipping the judgment process of the rest boundary surfaces, and directly placing the number of the unequal-size block B ' into an adjacent block node number array of the boundary surface of the unequal-size block B.
Further, the specific process of step 2) is as follows: 2.1) dividing the unequal-size blocks into a space block and a non-space block; 2.2) judging whether a transfer function drawn by the three-dimensional scalar field data volume is changed, and if the transfer function is not changed, directly entering the step 2.3); if the transfer function is changed, dividing the space blocks and the non-space blocks of the blocks with different sizes again, and entering the step 2.3); 2.3) judging whether the current viewpoint position is changed, and if so, entering the step 2.4); if not, entering step 4); and 2.4) traversing the non-space blocks in the unequal-size blocks according to the adjacent relation between the current viewpoint position and the unequal-size blocks, and drawing a global shielding relation graph of the non-space blocks in the three-dimensional scalar field data.
Further, the specific process of step 2.4) is as follows: 2.4.1) arbitrarily selecting an unaccessed non-empty block B0, establishing a corresponding node in the global occlusion relation graph, and adding the node into a queue; 2.4.2) judging whether the queue is empty, if so, entering a step 2.4.7), otherwise, entering a step 2.4.3); 2.4.3) taking out the non-empty block B from the queue, sequentially checking 6 boundary surfaces of the non-empty block B, and if the boundary surfaces are not accessed, entering the step 2.4.4); if no boundary surface is not accessed, step 2.4.2) is carried out; 2.4.4) checking all non-empty blocks adjacent to the non-accessed boundary surface of the non-empty block B, and if there are non-accessed non-empty blocks, entering the step 2.4.5); if there are no unaccessed non-empty blocks, go to step 2.4.3); 2.4.5) fetching non-accessed non-empty block B adjacent to non-accessed boundary surface of non-empty block BiAnd add it to the queue; 2.4.6) labeling of non-empty Block BiTo be accessed, a corresponding non-empty block B is created in the global occlusion relation graphiAnd according to the current viewpoint position, judging the non-empty block BiThe occlusion relation between the non-spatial partition B and the non-spatial partition B if the non-spatial partition B occludes the non-spatial partition BiThen a non-space block B to a non-space block B are created in the global occlusion relation graphiThe edge of (1); if the non-empty block B does not shield the non-empty block BiThen a non-empty block B is created in the global occlusion relation graphiTo the edge of non-empty block B; 2.4.7), judging whether there is any unaccessed non-empty block, if there is any unaccessed non-empty block, entering step 2.4.1); and if no unaccessed non-empty block exists, finishing the drawing of the global occlusion relation graph, and entering the step 4).
Further, the criterion for judging the occlusion relationship between the non-space blocks is as follows: from the current viewpoint to the center of the current non-spatial partition 1 constitutes a vector I1Perpendicular to the contact surface of the non-null block 1 and the non-null block 2 and directed to the non-nullThe vector of block 2 is I2(ii) a When I is1·I2When the number is more than 0, the non-empty block 1 blocks the non-empty block 2; otherwise, non-null block 1 does not occlude non-null block 2.
Further, the specific process of step 3) is as follows: 3.1) judging whether a node with the degree of 0 exists in the global shielding relation graph, and if the node with the degree of 0 exists, entering the step 3.2); if no node with the degree of 0 is available, outputting the current parallel packet, and entering the step 3.3); 3.2) taking out the node with the current income degree of 0 from the global shielding relation graph, adding the node into the current parallel grouping, and entering the step 3.1); 3.3) adding the current parallel packet into a parallel packet queue, subtracting 1 from the node introductivity pointed by the node in the current parallel packet in the global shielding relation graph, deleting the node in the current parallel packet from the global shielding relation graph, and entering the step 3.4); 3.4) judging whether residual nodes which are not added into the parallel grouping queue exist in the global shielding relation graph or not, if the residual nodes do not exist, obtaining the parallel grouping queue of the non-empty blocks in the three-dimensional scalar field data, and entering the step 4); if there are more nodes left, go to step 3.1).
Further, the specific process of the step 4) is as follows: 4.1) creating a three-dimensional texture cache with a fixed size, dividing the three-dimensional texture into a plurality of sub three-dimensional textures with equal sizes, wherein the size of each sub three-dimensional texture is the maximum width, height and depth of n non-space division blocks in a corresponding parallel grouping; 4.2) acquiring the volume data of n non-space blocks in each parallel group, and putting the volume data into corresponding sub three-dimensional textures; and 4.3) adopting an improved ray projection method to transmit the three-dimensional texture into a fragment shader, and sequentially performing parallel volume rendering on the non-space division blocks of each parallel packet P in the parallel packet queue R to obtain a parallel volume rendering result of the three-dimensional scalar field data.
Further, the specific process of the step 4.3) is as follows: 4.3.1) drawing the back surfaces of n non-space division blocks in the current parallel grouping to obtain a light exit point of each non-space division block, recording the light exit point as a three-channel color value in a two-dimensional texture, and writing the block number of each non-space division block as a color value in another two-dimensional texture; 4.3.2) drawing the front surfaces of n non-space division blocks in the current parallel grouping, processing each light ray in the fragment shader in parallel, and accessing two-dimensional textures according to the position of the light ray entry point processed by the current fragment shader in the final projected image to obtain the light ray exit point processed by the current fragment shader and the block number of the non-space division block; 4.3.3) according to the block numbers of the non-space blocks, finding the position of the non-space block where the current light ray is located in the sub three-dimensional texture containing n non-space blocks in the current parallel grouping to obtain a block data field corresponding to the current light ray; 4.3.4) sampling according to the block data field corresponding to the current light according to a preset step length between a light in point and a light out point of the current non-space block, and acquiring the color value and the opacity value of each sampling point; 4.3.5) adopting an improved sampling synthesis formula, and sequentially carrying out parallel volume rendering on the non-space division blocks of each parallel group in the parallel group queue according to the color value and the opacity value of each sampling point to obtain a parallel volume rendering result of the three-dimensional scalar field data, wherein the improved sampling synthesis formula is as follows:
Cn+1=Cn+rn*α(sn)*C(sn)
wherein, Cn+1Representing the n +1 th color value of the cumulative composite; alpha(s)n) And C(s)n) Respectively represent light rays snSampling the opacity and color value of the obtained three-dimensional texture; r isnRepresents the residual opacity, and rn=1-α(sn)。
Due to the adoption of the technical scheme, the invention has the following advantages: 1. aiming at the unequal-size blocks in the three-dimensional scalar field data processed by adopting the self-adaptive or semi-adaptive block processing, compared with the blocks with uniform size, the method can remove more empty voxel regions, and the drawing efficiency is improved. 2. The invention can accelerate the rendering process of the three-dimensional scalar field data by simultaneously rendering a plurality of blocks in parallel, can realize the rapid volume rendering of the whole three-dimensional scalar field data, can greatly improve the overall efficiency of the volume rendering in the face of various different block strategies on the basis of performing the full-size high-resolution volume rendering on the original massive three-dimensional scalar field data, and can be widely applied to the field of massive scalar field data processing and visualization.
Drawings
FIG. 1 is a flow chart of the method of the present invention;
FIG. 2 is a flow chart of establishing a global occlusion relationship graph in the method of the present invention;
FIG. 3 is a schematic diagram illustrating the judgment of the occlusion relationship between adjacent blocks at the current viewpoint position according to the method of the present invention;
FIG. 4 is a schematic diagram of parallel grouping of non-spatial partitions after topological sorting of a global occlusion relationship graph in the method of the present invention;
fig. 5 is a schematic diagram of a volume rendering result implemented on actual medical image data according to an embodiment of the present invention, where fig. 5(a) is a schematic diagram of a volume rendering result with an illumination effect turned off, and fig. 5(b) is a schematic diagram of a volume rendering result with an illumination effect turned on.
Detailed Description
The present invention will be described in detail below with reference to the accompanying drawings. It is to be understood, however, that the drawings are provided solely for the purposes of promoting an understanding of the invention and that they are not to be construed as limiting the invention.
As shown in fig. 1, the method for drawing a parallel volume of mass data based on unequal-size partitioning provided by the invention comprises the following steps:
1) traversing the unequal-size blocks in the three-dimensional scalar field data after the adaptive or semi-adaptive block processing, and establishing the adjacent relation between the unequal-size blocks, which specifically comprises the following steps:
1.1) establishing a data structure of unequal-size blocks in three-dimensional scalar field data after adaptive or semi-adaptive block processing, and acquiring information such as spatial positions and block numbers of the unequal-size blocks, wherein the data structure is a storage structure of data information of each block in an internal memory after the original data field is subjected to adaptive or semi-adaptive block processing, and comprises a data file serial number in an external memory (magnetic disk), block sizes (sampling points in three directions of length, width and height), a bounding box of the blocks (containing minimum and maximum coordinates in three directions of XYZ) and adjacent block node numbers on 6 faces of the bounding box of the blocks.
1.2) for each unequal-size block, sequentially traversing all other unequal-size blocks according to the established data structure, and establishing the adjacent relation between the unequal-size blocks.
The judgment criterion of the adjacent relation of two unequal-size blocks is as follows:
suppose that the current unequal-size block is B, and 6 boundary values are B.bound [ i ] (i belongs to [0, 5]), wherein i represents a boundary number, the numbering order is left, right, up, down (in the X direction of the coordinate axis), front, back (in the Y direction of the coordinate axis), namely, the left boundary is bound [0], the right boundary is bound [1], and so on.
If the unequal-size blocks B 'exist, the boundary values of the unequal-size blocks B' meet the following conditions:
Figure GDA0003558268210000061
the unequal-size block B 'is an adjacent unequal-size block of the unequal-size block B whose contact surface is the left boundary (X-axis direction) of the unequal-size block B, and the number of the unequal-size block B' is put into the adjacent block node number array b.adjnode [0] of the left interface of the unequal-size block B.
If the unequal-size blocks B 'exist, the boundary values of the unequal-size blocks B' meet the following conditions:
Figure GDA0003558268210000062
the unequal-size block B 'is the adjacent unequal-size block of the unequal-size block B whose contact surface is the right boundary (X-axis direction) of the unequal-size block B, the number of the unequal-size block B' is put into the adjacent block node number array b.adjnode [1] of the right boundary of the unequal-size block B.
If the unequal size blocks B' exist, the boundary values satisfy:
Figure GDA0003558268210000071
the unequal-size block B 'is the adjacent unequal-size block of the unequal-size block B, and the contact surface is the lower boundary (Y-axis direction) of the unequal-size block B, the number of the unequal-size block B' is put into the adjacent block node number array B.adjnode [2] of the lower boundary of the unequal-size block B.
If the unequal-size blocks B 'exist, the boundary values of the unequal-size blocks B' meet the following conditions:
Figure GDA0003558268210000072
the unequal-size block B 'is an adjacent unequal-size block of the unequal-size block B, and the contact surface is the upper boundary (Y-axis direction) of the unequal-size block B, the number of the unequal-size block B' is put into the adjacent block node number array B.adjnode [3] of the upper boundary of the unequal-size block B.
If the unequal-size blocks B 'exist, the boundary values of the unequal-size blocks B' meet the following conditions:
Figure GDA0003558268210000073
the unequal-size block B 'is an adjacent unequal-size block of the unequal-size block B, and the contact surface thereof is the front boundary (Z-axis direction) of the unequal-size block B, the number of the unequal-size block B' is put into the adjacent block node number array B.adjNode [4] of the front boundary of the unequal-size block B.
If the unequal-size blocks B 'exist, the boundary values of the unequal-size blocks B' meet the following conditions:
Figure GDA0003558268210000074
the unequal-size block B 'is the adjacent unequal-size block of the unequal-size block B, and the contact surface is the rear boundary (Z-axis direction) of the unequal-size block B, then the number of the unequal-size block B' is put into the adjacent block node number array B.adjnode [5] of the rear interface of the unequal-size block B.
And sequentially judging whether the unequal-size block B ' is adjacent to 6 boundary surfaces of the unequal-size block B, if the unequal-size block B ' is adjacent to the unequal-size block B on a certain boundary surface, skipping the judgment process of the rest boundary surfaces, and directly placing the number of the unequal-size block B ' into an adjacent block node number array of the boundary surface of the unequal-size block B.
1.3) storing the adjacent block node number arrays of all the unequal-size blocks into the data structures of the unequal-size blocks in the three-dimensional scalar field data according to the adjacent relation among the unequal-size blocks.
2) According to a transfer function drawn by a three-dimensional scalar field data volume, a current viewpoint position and an adjacent relation between unequal-size blocks, traversing non-space blocks in the unequal-size blocks, and drawing a global shielding relation graph of the non-space blocks in the three-dimensional scalar field data, which specifically comprises the following steps:
2.1) dividing the unequal-size blocks into two types of empty blocks and non-empty blocks.
2.2) judging whether a transfer function drawn by the three-dimensional scalar field data volume is changed, and if the transfer function is not changed, directly entering the step 2.3); if the transfer function is changed, the null block and the non-null block of the unequal-size blocks are divided again, and the step 2.3) is carried out.
A transfer function is a concept of volume rendering, which maps a scalar value of each sampling point in a volume data field (scalar field) into opacity and color, and if all sampling points in a certain data block are mapped by the transfer function, and the opacity is 0, the data block can be considered to be completely transparent (invisible), i.e. no contribution is generated to a rendering result, so that no processing is required, and the data block is called as an "empty block" here; the other data blocks are referred to as "non-empty blocks" in addition to the above. Since the classification of "empty block" and "non-empty block" is related to the transfer function of the volume rendering, the classification process of unequal-size blocks needs to be performed again once the transfer function changes.
2.3) judging whether the current viewpoint position is changed, and if so, entering the step 2.4); if not, go to step 4).
2.4) as shown in fig. 2, traversing non-spatial blocks in the unequal-size blocks according to the adjacent relationship between the current viewpoint position and the unequal-size blocks, and drawing a global occlusion relationship graph of the non-spatial blocks in the three-dimensional scalar field data, specifically:
2.4.1) arbitrarily fetch an unaccessed non-empty block B0And establishing a corresponding node in the global shielding relation graph G, and adding the node into the queue Q, namely, each non-space block corresponds to a node.
2.4.2) determines whether queue Q is empty, if so step 2.4.7) is entered, otherwise step 2.4.3) is entered.
2.4.3) taking out the non-empty block B from the queue, sequentially checking 6 boundary surfaces of the non-empty block B, and if the boundary surfaces are not accessed, entering the step 2.4.4); if no boundary surface is not visited, step 2.4.2) is entered.
2.4.4) checking all non-empty blocks adjacent to the non-accessed boundary surface F of the non-empty block B, and if there are non-accessed non-empty blocks, entering step 2.4.5); if there are no non-empty blocks not accessed, step 2.4.3) is entered.
2.4.5) fetching non-accessed non-empty block B adjacent to non-accessed boundary surface F of non-empty block BiAnd adds it to queue Q.
2.4.6) labeling of non-empty Block BiTo be accessed, a corresponding non-empty block B is created in the global occlusion relation graph GiAnd according to the current viewpoint position, judging the non-empty block BiThe occlusion relation between the non-spatial partition B and the non-spatial partition B if the non-spatial partition B occludes the non-spatial partition BiThen a non-space block B to a non-space block B are created in the global shielding relation graph GiThe edge of (1); if the non-empty block B does not block the non-empty block BiThen, a non-empty block B is created in the global occlusion relation graph GiTo the edge of non-null block B.
As shown in fig. 3, the criterion for determining the occlusion relationship between the non-empty blocks is:
from the current viewpoint V to the center of the current non-spatial partition 1 constitutes a vector I1The vector perpendicular to the contact surface of the non-empty block 1 and the non-empty block 2 and pointing to the non-empty block 2 is I2When I is1·I2When the value is more than 0, the non-empty block 1 is considered to block the non-empty block 2; otherwise, the non-empty block 1 is considered not to obscure the non-empty block 2. In the current viewpoint position in fig. 3, non-null block 1 occludes non-null block 3 but not non-null block 2.
2.4.7), judging whether there is any unaccessed non-empty block, if there is any unaccessed non-empty block, entering step 2.4.1); and if no unaccessed non-empty block exists, finishing the drawing of the global occlusion relation graph G, and entering the step 4).
3) Performing topological sorting on the drawn global occlusion relation graph to obtain a parallel grouping queue of non-spatial partitions in the three-dimensional scalar field data, as shown in fig. 4, specifically:
3.1) judging whether a node with the degree of 0 exists in the global shielding relation graph G, and if the node with the degree of 0 exists, entering a step 3.2); and if no node with the in degree of 0 exists, outputting the current parallel packet P, and entering the step 3.3).
3.2) taking out the node with the current income degree of 0 from the global occlusion relation graph G, adding the node into the current parallel grouping P, and entering the step 3.1).
3.3) adding the current parallel packet P into the parallel packet queue R, decreasing the node introductivity pointed by the node in the current parallel packet P in the global occlusion relation graph G by 1, deleting the node in the current parallel packet P from the global occlusion relation graph G, and entering the step 3.4).
3.4) judging whether residual nodes which are not added into the parallel grouping queue exist in the global shielding relation graph G, if the residual nodes do not exist, obtaining the parallel grouping queue of the non-empty blocks in the three-dimensional scalar field data, and entering the step 4); if there are more nodes left, go to step 3.1).
4) Sequentially carrying out parallel volume rendering on the non-space division blocks of each parallel grouping P in the parallel grouping queue R to obtain a parallel volume rendering result of the three-dimensional scalar field data, which specifically comprises the following steps:
4.1) creating a three-dimensional texture cache with a fixed size, dividing the three-dimensional texture into a plurality of sub three-dimensional textures with equal sizes for drawing more non-space division blocks at one time, wherein the size of each sub three-dimensional texture is the maximum width, height and depth of n non-space division blocks in the corresponding parallel grouping P.
4.2) obtaining the volume data of n non-space blocks in each parallel group, and putting the volume data into the corresponding sub three-dimensional texture (if the size of the three-dimensional texture is not enough to put the n non-space blocks, rendering a non-space block with the size of the three-dimensional texture first).
And 4.3) adopting an improved ray projection method to transmit the three-dimensional texture into a fragment shader, and sequentially performing parallel volume rendering on the non-space division blocks of each parallel packet P in the parallel packet queue R to obtain a parallel volume rendering result of the three-dimensional scalar field data.
The traditional ray casting method is mainly used for respectively drawing a front surface (a boundary surface facing an observer and being visible in 6 boundary surfaces) and a rear surface (a boundary surface facing away from the observer and being invisible in 6 boundary surfaces) of a volume data bounding box, obtaining an entry point (a point entering a volume data field) and an exit point (a point leaving the volume data field) of a ray, further obtaining the advancing direction and the advancing length of the ray in the volume data field, and then advancing the ray in a fragment shader, the invention improves the traditional ray casting method, obtains an improved ray casting method, and adopts the improved ray casting method to sequentially perform parallel volume drawing rendering on non-space-division blocks in each parallel grouping:
4.3.1) drawing the back surfaces of n non-space division blocks in the current parallel grouping P to obtain the light outgoing point of each non-space division block, and recording the light outgoing point as a three-channel color value (corresponding to a three-dimensional point coordinate) in a two-dimensional texture T1At the same time, the block number of each non-empty block is written into another two-dimensional texture T as a color value2In (1).
4.3.2) drawing the front surfaces of n non-space division blocks in the current parallel grouping P, processing each light ray in the fragment shader in parallel, wherein the color of the fragment processed by the current fragment shader is the processed light ray entry point, and accessing the two-dimensional texture T according to the position of the light ray entry point in the frame cache (final projection image)1And T2And obtaining the light exit point processed by the current fragment shader and the block number of the non-space block.
4.3.3) according to the block numbers of the non-space blocks, finding the position of the non-space block where the current light ray is located in the sub-three-dimensional texture containing the n non-space blocks in the current parallel group P to obtain a block data field corresponding to the current light ray.
4.3.4) projecting light in the block data field, namely sampling from the space between the light in point and the light out point of the current non-space block according to the block data field corresponding to the current light according to a preset step length, and acquiring the color value and the opacity value of each sampling point;
4.3.5) adopting an improved sampling synthesis formula, and sequentially carrying out parallel volume rendering on the non-space division blocks of each parallel group P in the parallel group queue R according to the color value and the opacity value of each sampling point to obtain a parallel volume rendering result of the three-dimensional scalar field data.
Because a plurality of non-space-division blocks are drawn each time, the drawing result is related to all block data to be drawn, the non-space-division blocks cannot be immediately output as pixel values after each non-space-division block is drawn, and the pixel values need to be reserved, so a sampling synthesis formula needs to be improved, specifically, the 'residual opacity' of the non-space-division blocks is recorded after one non-space-division block is rendered each time, the 'residual opacity' of the non-space-division blocks is mixed with corresponding pixel points in the current cache according to an improved sampling synthesis formula, and the 'residual opacity' is transferred to subsequent non-space-division blocks for drawing, wherein the improved sampling synthesis formula is as follows:
Cn+1=Cn+rn*α(sn)*C(sn) (7)
wherein, Cn+1Representing the n +1 th color value of the cumulative composite; alpha(s)n) And C(s)n) Respectively represent light rays snSampling the opacity and color value of the obtained three-dimensional texture; r isnRepresents the residual opacity, and rn=1-α(sn) And the data are stored in a temporary two-dimensional texture to reduce the calculation amount when the fragment shader is synthesized and improve the speed of volume rendering.
5) Judging whether the volume rendering process is finished or not, and if so, outputting a parallel volume rendering result of the three-dimensional scalar field data; and if not, entering step 2.2), dividing the space blocks and the non-space blocks of the unequal-size blocks again, and further redrawing the global shielding relation graph of the non-space blocks until a new parallel volume rendering result of the three-dimensional scalar field data is obtained. And if the user determines not to end the volume rendering process, the volume rendering process is repeated, and the parallel volume rendering is performed once and all times.
In order to verify the effectiveness and the practicability of the method of the present invention, the method for rendering the mass data parallel volume based on the unequal-size blocks of the present invention is described in detail by the following specific embodiments:
table 1 below compares the rendering speed of the mass data parallel volume rendering method (a1) for equal-size chunking in the prior art with the method of the present invention (a2) under three-dimensional scalar field data sets D1, D2, and D3 of different sizes, where the size of D1 is 208 × 256 × 225 × 8bit (11.43MB), the size of D2 is 512 × 512 × 1714 × 16bit (857MB), and the size of D3 is 3000 × 2400 × 1900 × 16bit (24.48 GB). The three-dimensional visualization volume rendering result obtained by adopting the method of the invention by taking D2 as an example is shown in FIG. 5:
table 1: speed comparison of two volume rendering methods
Figure GDA0003558268210000111
It can be seen that the method of the present invention can not only process the unequal-size block data generated based on adaptive or semi-adaptive partitioning, but also has better drawing speed on scalar field data sets of various sizes than the fastest equal-size partitioning-oriented parallel volume drawing method at present.
The above embodiments are only used for illustrating the present invention, and the structure, connection mode, manufacturing process, etc. of the components may be changed, and all equivalent changes and modifications performed on the basis of the technical solution of the present invention should not be excluded from the protection scope of the present invention.

Claims (8)

1. A massive data parallel volume rendering method based on unequal-size partitioning is characterized by comprising the following steps:
1) traversing the unequal-size blocks in the three-dimensional scalar field data after the adaptive or semi-adaptive block processing, and establishing the adjacent relation between the unequal-size blocks;
2) according to a transfer function drawn by a three-dimensional scalar field data volume, a current viewpoint position and an adjacent relation between unequal-size blocks, traversing non-space blocks in the unequal-size blocks, and drawing a global shielding relation graph of the non-space blocks in the three-dimensional scalar field data, wherein the specific process comprises the following steps:
2.1) dividing the unequal-size blocks into a space block and a non-space block;
2.2) judging whether a transfer function drawn by the three-dimensional scalar field data volume is changed, and if the transfer function is not changed, directly entering the step 2.3); if the transfer function is changed, dividing the space blocks and the non-space blocks of the blocks with different sizes again, and entering the step 2.3);
2.3) judging whether the current viewpoint position is changed, and if so, entering the step 2.4); if not, entering step 4);
2.4) traversing the non-space blocks in the unequal-size blocks according to the adjacent relation between the current viewpoint position and the unequal-size blocks, and drawing a global shielding relation graph of the non-space blocks in the three-dimensional scalar field data, wherein the specific process is as follows:
2.4.1) arbitrarily fetch an unaccessed non-empty block B0Establishing a corresponding node in the global shielding relation graph, and adding the node into a queue;
2.4.2) judging whether the queue is empty, if so, entering a step 2.4.7), otherwise, entering a step 2.4.3);
2.4.3) taking out the non-empty block B from the queue, sequentially checking 6 boundary surfaces of the non-empty block B, and if the boundary surfaces are not accessed, entering the step 2.4.4); if no boundary surface is not accessed, entering step 2.4.2);
2.4.4) checking all non-empty blocks adjacent to the non-accessed boundary surface of the non-empty block B, and if there are non-accessed non-empty blocks, entering the step 2.4.5); if there are no non-empty blocks not visited, go to step 2.4.3);
2.4.5) fetching non-accessed non-empty block B adjacent to non-accessed boundary surface of non-empty block BiAnd add it to the queue;
2.4.6) labeling of non-empty Block BiTo be accessed, a corresponding non-empty block B is created in the global occlusion relation graphiAnd according to the current viewpoint position, judging the non-empty block BiThe occlusion relation between the non-spatial partition B and the non-spatial partition B if the non-spatial partition B occludes the non-spatial partition BiThen a non-space block B to a non-space block B are created in the global shielding relation graphiThe edge of (a); if the non-empty block B does not block the non-empty block BiThen a non-empty block B is created in the global occlusion relation graphiTo the edge of non-empty block B;
2.4.7), judging whether there is any unaccessed non-empty block, if there is any unaccessed non-empty block, entering step 2.4.1); if no unaccessed non-space division block exists, completing the drawing of the global occlusion relation graph, and entering the step 4);
3) performing topological sorting on the drawn global shielding relation graph to obtain a parallel grouping queue of non-space blocks in the three-dimensional scalar field data;
4) sequentially carrying out parallel volume rendering on each parallel grouped non-space division block in the parallel grouping queue to obtain a parallel volume rendering result of the three-dimensional scalar field data;
5) judging whether the volume rendering process is finished or not, and if so, outputting a parallel volume rendering result of the three-dimensional scalar field data; and if not, entering the step 2), and redrawing the global shielding relation graph of the non-space partition blocks until obtaining a parallel volume rendering result of the new three-dimensional scalar field data.
2. The method for rendering the massive data parallel volume based on the unequal-size blocks as claimed in claim 1, wherein the specific process of the step 1) is as follows:
1.1) establishing a data structure of unequal-size blocks in three-dimensional scalar field data after adaptive or semi-adaptive block processing, and acquiring spatial positions and block numbers of the unequal-size blocks;
1.2) for each unequal-size block, sequentially traversing all other unequal-size blocks according to the established data structure, and establishing an adjacent relation between the unequal-size blocks;
1.3) storing the adjacent block node number arrays of all the unequal-size blocks into the data structures of the unequal-size blocks in the three-dimensional scalar field data according to the adjacent relation among the unequal-size blocks.
3. The method as claimed in claim 2, wherein the data structure of the unequal-size blocks comprises a data file number in an external memory, a block size, a bounding box of the blocks, and a number of nodes of adjacent blocks on 6 faces of the bounding box of the blocks.
4. The method for rendering the massive data parallel volume based on the unequal-size blocks as claimed in claim 2, wherein the specific process of the step 1.2) is as follows:
the judgment criterion of the adjacent relation of two unequal-size blocks comprises the following steps:
assuming that the current unequal-size block is B, and 6 boundary values of the current unequal-size block are B.bound [ i ], wherein i represents a boundary number, and the number sequence is left, right, upper, lower, front and back;
if the unequal-size blocks B 'exist, the boundary values of the unequal-size blocks B' meet the following conditions:
B.bound[2]<B′.bound[3]and B.bound[3]>B′.bound[2]
B.bound[4]<B′.bound[5]and B.bound[5]>B′.bound[4]
B.bound[1]-B′.bound[0]<1
the unequal size block B 'is the adjacent unequal size block of the unequal size block B, the contact surface is the left boundary of the unequal size block B, and the number of the unequal size block B' is put into the adjacent block node number array B.adjNode [0] of the left boundary of the unequal size block B;
if the unequal-size blocks B 'exist, the boundary values of the unequal-size blocks B' meet the following conditions:
B.bound[2]<B′.bound[3]and B.bound[3]>B′.bound[2]
B.bound[4]<B′.bound[5]and B.bound[5]>B′.bound[4]
B′.bound[0]-B.bound[1]<1
the unequal size block B 'is the adjacent unequal size block of the unequal size block B, the contact surface is the right boundary of the unequal size block B, and the number of the unequal size block B' is put into the adjacent block node number array B.adjNode [1] of the right boundary of the unequal size block B;
if the unequal-size blocks B 'exist, the boundary values of the unequal-size blocks B' meet the following conditions:
B.bound[0]<B′.bound[1]and B.bound[1]>B′.bound[0]
B.bound[4]<B′.bound[5]and B.bound[5]>B′.bound[4]
B.bound[2]-B′.bound[3]<1
the unequal size block B 'is the adjacent unequal size block of the unequal size block B, the contact surface is the lower boundary of the unequal size block B, and the number of the unequal size block B' is put into the adjacent block node number array B.adjNode [2] of the lower boundary of the unequal size block B;
if the unequal-size blocks B 'exist, the boundary values of the unequal-size blocks B' meet the following conditions:
B.bound[0]<B′.bound[1]and B.bound[1]>B′.bound[0]
B.bound[4]<B′.bound[5]and B.bound[5]>B′.bound[4]
B′.bound[2]-B.bound[3]<1
the unequal size block B 'is the adjacent unequal size block of the unequal size block B, the contact surface is the upper boundary of the unequal size block B, and the number of the unequal size block B' is put into the adjacent block node number array B.adjNode [3] of the upper boundary of the unequal size block B;
if the unequal-size blocks B 'exist, the boundary values of the unequal-size blocks B' meet the following conditions:
B.bound[0]<B′.bound[1]and B.bound[1]>B′.bound[0]
B.bound[2]<B′.bound[3]and B.bound[3]>B′.bound[2]
B′.bound[4]-B.bound[5]<1
the unequal size block B 'is the adjacent unequal size block of the unequal size block B, the contact surface is the front boundary of the unequal size block B, and the number of the unequal size block B' is put into the adjacent block node number array B.adjNode [4] of the front boundary of the unequal size block B;
if the unequal size blocks B' exist, the boundary values satisfy:
B.bound[0]<B′.bound[1]and B.bound[1]>B′.bound[0]
B.bound[2]<B′.bound[3]and B.bound[3]>B′.bound[2]
B.bound[4]-B′.bound[5]<1
the unequal size block B 'is the adjacent unequal size block of the unequal size block B, the contact surface is the back boundary of the unequal size block B, the number of the unequal size block B' is put into the adjacent block node number array B.adjNode [5] of the back boundary of the unequal size block B;
and sequentially judging whether the unequal-size block B ' is adjacent to 6 boundary surfaces of the unequal-size block B, if the unequal-size block B ' is adjacent to the unequal-size block B on a certain boundary surface, skipping the judgment process of the rest boundary surfaces, and directly placing the number of the unequal-size block B ' into an adjacent block node number array of the boundary surface of the unequal-size block B.
5. The method for mass data parallel volume rendering based on unequal-size blocks as claimed in claim 1, wherein the criterion for judging the occlusion relationship between the non-space blocks is as follows:
from the current viewpoint to the center of the current non-empty block 1 constitutes a vector I1The vector perpendicular to the contact surface of the non-empty block 1 and the non-empty block 2 and pointing to the non-empty block 2 is I2(ii) a When I is1·I2When the number is more than 0, the non-empty block 1 blocks the non-empty block 2; otherwise, non-null block 1 does not occlude non-null block 2.
6. The method for rendering the massive data parallel volume based on the unequal-size blocks as claimed in claim 1, wherein the specific process of the step 3) is as follows:
3.1) judging whether a node with the degree of 0 exists in the global shielding relation graph, and if the node with the degree of 0 exists, entering the step 3.2); if no node with the degree of 0 is available, outputting the current parallel packet, and entering the step 3.3);
3.2) taking out the node with the current income degree of 0 from the global shielding relation graph, adding the node into the current parallel grouping, and entering the step 3.1);
3.3) adding the current parallel packet into a parallel packet queue, subtracting 1 from the node introductivity pointed by the node in the current parallel packet in the global shielding relation graph, deleting the node in the current parallel packet from the global shielding relation graph, and entering the step 3.4);
3.4) judging whether residual nodes which are not added into the parallel grouping queue exist in the global shielding relation graph or not, if the residual nodes do not exist, obtaining the parallel grouping queue of the non-empty blocks in the three-dimensional scalar field data, and entering the step 4); if there are more nodes left, go to step 3.1).
7. The method for parallel volume rendering of mass data based on unequal-size blocks according to claim 2, wherein the specific process of step 4) is as follows:
4.1) creating a three-dimensional texture cache with a fixed size, dividing the three-dimensional texture into a plurality of sub three-dimensional textures with the same size, wherein the size of each sub three-dimensional texture is the maximum width, height and depth of n non-space blocks in a corresponding parallel grouping;
4.2) acquiring the volume data of n non-space blocks in each parallel group, and putting the volume data into corresponding sub three-dimensional textures;
and 4.3) adopting an improved ray projection method to transmit the three-dimensional texture into a fragment shader, and sequentially performing parallel volume rendering on the non-space division blocks of each parallel packet P in the parallel packet queue R to obtain a parallel volume rendering result of the three-dimensional scalar field data.
8. The method for parallel volume rendering of mass data based on unequal-size blocks according to claim 7, wherein the specific process of step 4.3) is as follows:
4.3.1) drawing the back surfaces of n non-space division blocks in the current parallel grouping to obtain a light ray exit point of each non-space division block, recording the light ray exit point as a three-channel color value in a two-dimensional texture, and writing the block number of each non-space division block as a color value in another two-dimensional texture;
4.3.2) drawing the front surfaces of n non-space division blocks in the current parallel grouping, processing each light ray in the fragment shader in parallel, and accessing two-dimensional textures according to the position of the light ray entry point processed by the current fragment shader in the final projected image to obtain the light ray exit point processed by the current fragment shader and the block number of the non-space division block;
4.3.3) according to the block numbers of the non-space blocks, finding the position of the non-space block where the current light ray is located in the sub three-dimensional texture containing n non-space blocks in the current parallel grouping to obtain a block data field corresponding to the current light ray;
4.3.4) sampling according to the block data field corresponding to the current light according to a preset step length between a light in point and a light out point of the current non-space block, and acquiring the color value and the opacity value of each sampling point;
4.3.5) adopting an improved sampling synthesis formula, and sequentially carrying out parallel volume rendering on the non-space division blocks of each parallel group in the parallel group queue according to the color value and the opacity value of each sampling point to obtain a parallel volume rendering result of the three-dimensional scalar field data, wherein the improved sampling synthesis formula is as follows:
Cn+1=Cn+rn*α(sn)*C(sn)
wherein, Cn+1Representing the n +1 th color value of the cumulative composite; alpha(s)n) And C(s)n) Respectively represent light rays snSampling the opacity and color value of the obtained three-dimensional texture; r isnRepresents the residual opacity, and rn=1-α(sn)。
CN201910091777.6A 2019-01-30 2019-01-30 Mass data parallel volume rendering method based on unequal-size blocks Active CN109829970B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910091777.6A CN109829970B (en) 2019-01-30 2019-01-30 Mass data parallel volume rendering method based on unequal-size blocks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910091777.6A CN109829970B (en) 2019-01-30 2019-01-30 Mass data parallel volume rendering method based on unequal-size blocks

Publications (2)

Publication Number Publication Date
CN109829970A CN109829970A (en) 2019-05-31
CN109829970B true CN109829970B (en) 2022-05-06

Family

ID=66862955

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910091777.6A Active CN109829970B (en) 2019-01-30 2019-01-30 Mass data parallel volume rendering method based on unequal-size blocks

Country Status (1)

Country Link
CN (1) CN109829970B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110298922B (en) * 2019-07-04 2023-05-12 浙江科澜信息技术有限公司 Three-dimensional model simplification method, device and equipment

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101286225A (en) * 2007-04-11 2008-10-15 中国科学院自动化研究所 Mass data object plotting method based on three-dimensional grain hardware acceleration
CN101882323A (en) * 2010-05-19 2010-11-10 北京航空航天大学 Microstructure surface global illumination real-time rendering method based on height map
CN101986710A (en) * 2010-11-03 2011-03-16 北京航空航天大学 Sort-last system structure-based parallel drawing system
CN103761761A (en) * 2014-01-21 2014-04-30 中国科学院遥感与数字地球研究所 Marine scalar field volume rendering method based on earth sphere model

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9183667B2 (en) * 2011-07-15 2015-11-10 Kirill Garanzha Out-of-core ray tracing with memory-efficient page generation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101286225A (en) * 2007-04-11 2008-10-15 中国科学院自动化研究所 Mass data object plotting method based on three-dimensional grain hardware acceleration
CN101882323A (en) * 2010-05-19 2010-11-10 北京航空航天大学 Microstructure surface global illumination real-time rendering method based on height map
CN101986710A (en) * 2010-11-03 2011-03-16 北京航空航天大学 Sort-last system structure-based parallel drawing system
CN103761761A (en) * 2014-01-21 2014-04-30 中国科学院遥感与数字地球研究所 Marine scalar field volume rendering method based on earth sphere model

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
"Interactive Visualization of Very Large Medical Datasets";Christof Nuber, Ralph W. Bruckschen;《Medical Imaging 2003:Visualization,Image-Guided Procedures,and Display》;20030101;全文 *
"应用RBF 神经网络的体绘制传递函数设计方法";周慧;《计算机工程与应用》;20161130;第52卷(第22期);全文 *
"海量医学数据处理框架及快速体绘制算法";薛 健;《软件学报》;20081231;第19卷(第12期);全文 *
"海量超声数据体可视化研究";潘卫国;《电子学报》;20160229;第44卷(第2期);全文 *
大规模三维地形可视化算法研究进展;张慧杰等;《计算机科学》;20070325(第03期);全文 *

Also Published As

Publication number Publication date
CN109829970A (en) 2019-05-31

Similar Documents

Publication Publication Date Title
US8570322B2 (en) Method, system, and computer program product for efficient ray tracing of micropolygon geometry
US6288730B1 (en) Method and apparatus for generating texture
DeCoro et al. Real-time mesh simplification using the GPU
US8253730B1 (en) System and method for construction of data structures for ray tracing using bounding hierarchies
US8203559B2 (en) Architectures for parallelized intersection testing and shading for ray-tracing rendering
US8089481B2 (en) Updating frame divisions based on ray tracing image processing system performance
Beyer et al. A survey of GPU-based large-scale volume visualization
US9779533B2 (en) Hierarchical tiled caching
US20080074430A1 (en) Graphics processing unit with unified vertex cache and shader register file
US20080129734A1 (en) Apparatus and method of ray-triangle collision detection for ray-tracing
WO2009117691A2 (en) Architectures for parallelized intersection testing and shading for ray-tracing rendering
JPH11515121A (en) Method and apparatus for span and subspan sorting rendering system
JP2002506547A (en) Block and band-oriented scanning in three-dimensional triangle drawing
WO1996003715A1 (en) A graphical display system
KR20010085424A (en) Graphics processor with deferred shading
JP2007522567A (en) A device that realistically displays complex dynamic 3D scenes by ray tracing
CN106558092B (en) Multi-light-source scene accelerated drawing method based on scene multidirectional voxelization
US20080079714A1 (en) Workload Distribution Through Frame Division in a Ray Tracing Image Processing System
JP2003263651A (en) Volume rendering method and its program
CN109829970B (en) Mass data parallel volume rendering method based on unequal-size blocks
Sopin et al. Real-time SAH BVH construction for ray tracing dynamic scenes
Chajdas et al. Scalable rendering for very large meshes
Barboza et al. GPU-based data structure for a parallel ray tracing illumination algorithm
CN113096248B (en) Photon collection method and photon mapping rendering method based on shared video memory optimization
Gautron Advances in spatial hashing: A pragmatic approach towards robust, real-time light transport simulation

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant