CN104835193A - Load balancing method of 3D scene GPU cluster rendering system based on ray tracing - Google Patents
Load balancing method of 3D scene GPU cluster rendering system based on ray tracing Download PDFInfo
- Publication number
- CN104835193A CN104835193A CN201510254497.4A CN201510254497A CN104835193A CN 104835193 A CN104835193 A CN 104835193A CN 201510254497 A CN201510254497 A CN 201510254497A CN 104835193 A CN104835193 A CN 104835193A
- Authority
- CN
- China
- Prior art keywords
- variable
- variables
- member variable
- value
- line number
- 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.)
- Granted
Links
Landscapes
- Image Generation (AREA)
Abstract
The present invention discloses a load balancing method of a 3D scene GPU cluster rendering system based on ray tracing. According to the method, the 3D scene GPU cluster rendering system comprises n GPU calculation nodes with the same software and hardware configuration and a load balancing control node. All GPU calculation nodes and the load balancing control node are mutually connected through a network switch. By using the fact that two adjacent frames of pictures of a continuously changing 3D scene have strong time relevancy, according to the ray tracking depth data of each pixel of a current frame picture, a next frame picture is divided into sub areas with the basically same calculation amount, one GPU calculation node is distributed to each sub area to carry out drawing, and the load balance of each GPU calculation node is realized.
Description
Technical field
The invention belongs to 3 D image drawing technical field, relate to a kind of load-balancing method of the three-dimensional scenic GPU cluster drawing system based on ray trace.
Background technology
Ray tracking technology has been widely used among the drafting of sense of reality three-dimensional scenic.The ray trace drafting of complex three-dimensional scene relates to a large amount of light-geometric objects and asks friendship operation and illumination calculation, causes the drawing frames speed of three-dimensional scenic picture to be restricted.Carry out interaction if asked for help with three-dimensional scenic object, man-machine interaction experience can be affected because the drawing frames speed of picture is not high.Utilize the powerful computation capability of GPU cluster, the image frame speed that the ray trace that can improve three-dimensional scenic is drawn.Based in the three-dimensional scenic GPU cluster drawing system of ray trace, can wait that drawing picture is divided into several subregions, every sub regions is responsible for drafting by a GPU calculating crunode; Each GPU calculating crunode works concurrently, thus reduces total drafting time span of a frame three-dimensional scenic picture.The T.T. length that the three-dimensional scenic GPU cluster drawing system that it should be noted that based on ray trace draws a frame three-dimensional scenic picture depends on the drafting time span of the longest GPU calculating crunode consuming time.Want the total drafting time span minimizing three-dimensional scenic picture, key is that the drafting time span of the picture subregion that each GPU calculating crunode is got is roughly equal, namely makes the load basis equalization of each GPU calculating crunode.Therefore, load balancing is the gordian technique realizing interactive drawing based on the three-dimensional scenic GPU cluster drawing system of ray trace.In order to improve ray trace efficiency, need to control ray traced depth.The Guo little Kai of Xian Electronics Science and Technology University describes adaptive optical line following depth control method in the master thesis " research of ray trace and accelerating algorithm thereof " to write for 2008.For continually varying three-dimensional scenic, between two adjacent frame pictures, often there is very strong temporal correlation.Utilize this temporal correlation, can using the ray trace drawing result of present frame picture as realizing the foundation balancedly next frame picture being divided into multiple subregion in calculated amount.The load balancing of the three-dimensional scenic GPU cluster drawing system based on ray trace can be realized accordingly.
Summary of the invention
The object of this method is, provides a kind of load-balancing method of the three-dimensional scenic GPU cluster drawing system based on ray trace.This method for three-dimensional scenic GPU cluster drawing system hardware composition as shown in Figure 1, comprise n the identical GPU calculating crunode of software and hardware configuration and load balancing control node, n=2
k, k be greater than 0 integer; GPU calculating crunode and load balancing are controlled node and are interconnected by the network switch; GPU calculating crunode is one and is provided with the tall and handsome computing machine reaching GPU, and it is a computing machine that load balancing controls node; Load balancing controls node and is responsible for the frame picture of three-dimensional scenic to be divided into n sub regions, and each picture subregion is distributed to different GPU calculating crunode carries out ray trace drafting.This method for ray trace drawing program according to the global illumination effect of Whitted global illumination model drawing three-dimensional scene.If the three-dimensional geometry object of light and three-dimensional scenic intersects, then need to judge whether to need to produce derivative light in the point of intersection nearest from light starting point and make recurrence to follow the tracks of according to from the object material characteristic of the nearest point of intersection of light starting point and adaptive optical line following depth control method.If any three-dimensional geometry object passing the chief ray discord three-dimensional scenic of three-dimensional scenic frame picture pixel launched from viewpoint intersects, then the ray traced depth that this pixel is corresponding is 1.If the chief ray through three-dimensional scenic frame picture pixel launched from viewpoint and the three-dimensional geometry object of three-dimensional scenic intersect, then correspondence chief ray and ndRay bar are derived light by this pixel, ndRay >=0, as shown in Figure 2, the ray traced depth that this pixel of this method calculating is corresponding is ndRay+1.This method usage data structure BLOCK come the pixel of stored picture subregion initial line number, terminate line number, initial row number and end column number; Data structure BLOCK comprises initial line number I1, terminates line number I2, initial row C1, end column C2 totally four member variables.
The performing step of this method is as follows:
Step001: start the three-dimensional scenic be arranged on load balancing control node and draw control program A001;
Step002: three-dimensional scene models file A002 to be drawn is controlled node by network from load balancing and sends each GPU calculating crunode to, controls node by network from load balancing by initial virtual camera parameter configuration file CPARAMF and sends each GPU calculating crunode to;
Step003: start the ray trace drawing program A003 be arranged on each GPU calculating crunode, load three-dimensional scene models file A002, and the virtual camera parameter in ray trace drawing program A003 is set according to initial virtual camera parameter configuration file CPARAMF;
Step004: to the ray trace drawing program A003 operated on each GPU calculating crunode, sets up and is connected with the TCP socket that three-dimensional scenic is drawn between control program A001;
Step005: utilize three-dimensional scenic to draw control program A001, controls in load balancing to create list A004 and list A005 in the internal memory of node, arranges list A004 for empty, arranges list A005 for empty;
Step006: utilize three-dimensional scenic to draw control program A001, the variable V 1 creating a data structure BLOCK type in the internal memory of node is controlled in load balancing, be 1 by the initial line number I1 member variable assignment of variable V 1, by the end line number I2 member variable assignment of variable V 1 be
be 1 by the initial row C1 member variable assignment of variable V 1, the total line number of pixel of to be N, M by the end column C2 member variable assignment of variable V 1 be three-dimensional scenic frame picture, N is the total columns of pixel of three-dimensional scenic frame picture; Variable V 1 is stored in list A004; Utilize three-dimensional scenic to draw control program A001, control the variable V 2 creating a data structure BLOCK type in the internal memory of node in load balancing, by the initial line number I1 member variable assignment of variable V 2 be
be M by the end line number I2 member variable assignment of variable V 2, being 1 by the initial row C1 member variable assignment of variable V 2, is N by the end column C2 member variable assignment of variable V 2; Variable V 2 is stored in list A004;
Step007: make i=1;
Step008: if 2
i>=n, goes to step Step011;
Step009: to the variable V x of each data structure BLOCK type in list A004, utilizes three-dimensional scenic to draw control program A001 and is done as follows:
Step009-1: the difference making nRows equal the value of the value of the end line number I2 member variable of variable V x and the initial line number I1 member variable of variable V x adds 1, the difference making nCols equal the value of the value of the end column C2 member variable of variable V x and the initial row C1 member variable of variable V x adds 1; If nRows < is nCols, go to step Step009-3;
Step009-2: the variable V x1 creating a data structure BLOCK type, by the value that the initial line number I1 member variable assignment of variable V x1 is the initial line number I1 member variable of variable V x, by the end line number I2 member variable assignment of variable V x1 be the initial line number I1 member variable of variable V x value with
sum subtracts 1, is the value of the initial row C1 member variable of variable V x by the initial row C1 member variable assignment of variable V x1, is the value of the end column C2 member variable of variable V x by the end column C2 member variable assignment of variable V x1; Variable V x1 is stored in list A005; Create the variable V x2 of a data structure BLOCK type, by the initial line number I1 member variable assignment of variable V x2 be the initial line number I1 member variable of variable V x value with
sum, by the value that the end line number I2 member variable assignment of variable V x2 is the end line number I2 member variable of variable V x, by the value that the initial row C1 member variable assignment of variable V x2 is the initial row C1 member variable of variable V x, be the value of the end column C2 member variable of variable V x by the end column C2 member variable assignment of variable V x2; Variable V x2 is stored in list A005; Go to step Step009-4;
Step009-3: the variable V y1 creating a data structure BLOCK type, by the value that the initial line number I1 member variable assignment of variable V y1 is the initial line number I1 member variable of variable V x, by the value that the end line number I2 member variable assignment of variable V y1 is the end line number I2 member variable of variable V x, by the value that the initial row C1 member variable assignment of variable V y1 is the initial row C1 member variable of variable V x, by the end column C2 member variable assignment of variable V y1 be the initial row C1 member variable of variable V x value with
sum subtracts 1; Variable V y1 is stored in list A005; Create the variable V y2 of a data structure BLOCK type, by the value that the initial line number I1 member variable assignment of variable V y2 is the initial line number I1 member variable of variable V x, by the value that the end line number I2 member variable assignment of variable V y2 is the end line number I2 member variable of variable V x, by the initial row C1 member variable assignment of variable V y2 be the initial row C1 member variable of variable V x value with
the end column C2 member variable assignment of variable V y2 is the value of the end column C2 member variable of variable V x by sum; Variable V y2 is stored in list A005;
Step009-4: the operation for variable V x terminates;
Step010: empty list A004; The variable of all data structure BLOCK types in list A005 is stored in list A004; Empty list A005; I=i+1; Go to step Step008;
Step011: if three-dimensional scenic draws control program A001 receive " stopping drawing " command messages, then go to step Step021, otherwise to the variables A 006 of each data structure BLOCK type in list A004, utilize three-dimensional scenic to draw control program A001 and perform following operation:
Step011-1: calculate the position number ID of variables A 006 in list A004;
Step011-2: the value of variables A 006 connected by TCP socket and send the ray trace drawing program A003 operated on ID GPU calculating crunode to, sends the request of drawing the picture subregion A007 determined by the value of the initial line number I1 member variable of variables A 006, end line number I2 member variable, initial row C1 member variable and end column C2 member variable to the ray trace drawing program A003 operated on ID GPU calculating crunode; The ray trace drawing program A003 operated on ID GPU calculating crunode calculates the color value of each pixel A 008 in picture subregion A007, and the ray traced depth that recording pixel A008 is corresponding; The ray trace drawing program A003 operated on ID GPU calculating crunode sends three-dimensional scenic by the connection of TCP socket to the color value of each pixel A 008 in picture subregion A007 and the ray traced depth of correspondence thereof and draws control program A001;
Step011-3: the operation for variables A 006 terminates;
Step012: three-dimensional scenic draws control program A001 obtains all pixels of three-dimensional scenic frame picture color value according to the color value of all pixels of all picture subregion A007 sent from the ray trace drawing program A003 operated on each GPU calculating crunode, and controlling display that node is connected shows three-dimensional scenic frame picture with load balancing accordingly; Three-dimensional scenic draws control program A001 obtains each pixel of three-dimensional scenic frame picture ray traced depth according to the ray traced depth of each pixel of all picture subregion A007 sent from the ray trace drawing program A003 operated on each GPU calculating crunode; Three-dimensional scenic is drawn control program A001, by the connection of TCP socket, the man-machine interaction message be currently received is sent to the ray trace drawing program A003 operated on each GPU calculating crunode, ray trace drawing program A003 carries out map function to the three-dimensional scene models be loaded in internal memory accordingly, and what realize between people and three-dimensional scenic is mutual;
Step013: utilize three-dimensional scenic to draw control program A001, controls the array A009 that establishment M in the internal memory of node is capable, N arranges in load balancing; Idx=1,2 ..., M; Idy=1,2 ..., N; It is the product of ray traced depth corresponding to the i-th dx of three-dimensional scenic frame picture pixel that is capable, the i-th dy row and 1.6 by element assignment that is capable for i-th dx of array A009, the i-th dy row;
Step014: empty list A004, empties list A005;
Step015: utilize three-dimensional scenic to draw control program A001, controls in load balancing to create the one-dimension array A010 that comprises M element in the internal memory of node; Id=1,2 ..., M; It is the value sum of all elements that i-th d of array A009 is capable by i-th d of an array A010 element assignment; Calculating makes function
minimum m, m are integer and 1≤m≤M, wherein a
jit is the value of a jth element of array A010;
Step016: utilize three-dimensional scenic to draw control program A001, the variables A 011 creating a data structure BLOCK type in the internal memory of node is controlled in load balancing, be 1 by the initial line number I1 member variable assignment of variables A 011, be m by the end line number I2 member variable assignment of variables A 011, being 1 by the initial row C1 member variable assignment of variables A 011, is N by the end column C2 member variable assignment of variables A 011; Variables A 011 is stored in list A004; Three-dimensional scenic is utilized to draw control program A001, the variables A 012 creating a data structure BLOCK type in the internal memory of node is controlled in load balancing, be m+1 by the initial line number I1 member variable assignment of variables A 012, be M by the end line number I2 member variable assignment of variables A 012, being 1 by the initial row C1 member variable assignment of variables A 012, is N by the end column C2 member variable assignment of variables A 012; Variables A 012 is stored in list A004;
Step017: make i=1;
Step018: if 2
i>=n, goes to step Step011;
Step019: to the variables A 013 of each data structure BLOCK type in list A004, utilizes three-dimensional scenic to draw control program A001 and is done as follows:
Step019-1: the difference making nRows equal the value of the value of the end line number I2 member variable of variables A 013 and the initial line number I1 member variable of variables A 013 adds 1, the difference making nCols equal the value of the value of the end column C2 member variable of variables A 013 and the initial row C1 member variable of variables A 013 adds 1; IdRB is made to equal the value of the initial line number I1 member variable of variables A 013, idRE is made to equal the value of the end line number I2 member variable of variables A 013, make idCB equal the value of the initial row C1 member variable of variables A 013, make idCE equal the value of the end column C2 member variable of variables A 013; If nRows < is nCols, go to step Step019-3;
Step019-2: create the one-dimension array A014 that comprises nRows element; J=1,2 ..., the jth of an array A014 element assignment is the value sum of all elements that i-th dRB+j-1 of array A009 is capable, the i-th dCB to the i-th dCE arranges by nRows; Calculating makes function
minimum m, m are integer and 1≤m≤nRows, wherein a
pit is the value of p the element of array A014; Create the variables A 0131 of a data structure BLOCK type, by the value that the initial line number I1 member variable assignment of variables A 0131 is the initial line number I1 member variable of variables A 013, be that value and the m sum of the initial line number I1 member variable of variables A 013 subtracts 1 by the end line number I2 member variable assignment of variables A 0131, by the value that the initial row C1 member variable assignment of variables A 0131 is the initial row C1 member variable of variables A 013, be the value of the end column C2 member variable of variables A 013 by the end column C2 member variable assignment of variables A 0131; Variables A 0131 is stored in list A005; Create the variables A 0132 of a data structure BLOCK type, by value and m sum that the initial line number I1 member variable assignment of variables A 0132 is the initial line number I1 member variable of variables A 013, by the value that the end line number I2 member variable assignment of variables A 0132 is the end line number I2 member variable of variables A 013, by the value that the initial row C1 member variable assignment of variables A 0132 is the initial row C1 member variable of variables A 013, be the value of the end column C2 member variable of variables A 013 by the end column C2 member variable assignment of variables A 0132; Variables A 0132 is stored in list A005; Go to step Step019-4;
Step019-3: create the one-dimension array A015 that comprises nCols element; J=1,2 ..., the jth of an array A015 element assignment is that i-th dRB to the i-th dRE of array A009 is capable, the value sum of all elements of the i-th dCB+j-1 row by nCols; Calculating makes function
minimum m, m are integer and 1≤m≤nCols, wherein a
iit is the value of t the element of array A015; Create the variables A 016 of a data structure BLOCK type, by the value that the initial line number I1 member variable assignment of variables A 016 is the initial line number I1 member variable of variables A 013, by the value that the end line number I2 member variable assignment of variables A 016 is the end line number I2 member variable of variables A 013, by the value that the initial row C1 member variable assignment of variables A 016 is the initial row C1 member variable of variables A 013, be that value and the m sum of the initial row C1 member variable of variables A 013 subtracts 1 by the end column C2 member variable assignment of variables A 016; Variables A 016 is stored in list A005; Create the variables A 017 of a data structure BLOCK type, by the value that the initial line number I1 member variable assignment of variables A 017 is the initial line number I1 member variable of variables A 013, by the value that the end line number I2 member variable assignment of variables A 017 is the end line number I2 member variable of variables A 013, by value and m sum that the initial row C1 member variable assignment of variables A 017 is the initial row C1 member variable of variables A 013, be the value of the end column C2 member variable of variables A 013 by the end column C2 member variable assignment of variables A 017; Variables A 017 is stored in list A005;
Step019-4: the operation for variables A 013 terminates;
Step020: empty list A004; The variable of all data structure BLOCK types in list A005 is stored in list A004; Empty list A005; I=i+1; Go to step Step018;
Step021: stop three-dimensional scenic and draw and load balancing operation.
Beneficial effect
The invention provides a kind of load-balancing method of the three-dimensional scenic GPU cluster drawing system based on ray trace.This method utilizes adjacent two frames of continually varying three-dimensional scenic to there is the feature of very strong temporal correlation, ray traced depth according to each pixel of present frame picture is divided into multiple subregion substantially identical in calculated amount next frame picture, and every sub regions is distributed to a GPU calculating crunode and draw, thus realize the load balancing of each GPU calculating crunode.This method can make the load of each GPU calculating crunode of the three-dimensional scenic GPU cluster drawing system based on ray trace substantially equal, thus reduce total drafting time span of three-dimensional scenic frame picture, improve the drawing frames speed of three-dimensional scenic, improve the interactive experience between people and three-dimensional scenic object.
Accompanying drawing explanation
Fig. 1 is the three-dimensional scenic GPU cluster drawing system hardware composition schematic diagram based on ray trace.Fig. 2 is the chief ray and derivative light schematic diagram thereof that send from viewpoint.
Embodiment
In order to make the feature and advantage of this method clearly understand, below in conjunction with specific embodiment, this method is further described.In the present embodiment, consider office's three-dimensional scenic, people is by controlling with load balancing the chair that keyboard that node is connected comes in mobile office three-dimensional scenic.Each GPU calculating crunode is provided with one piece of Nvidia Quadro K2000 video card, ray trace drawing program is based on the exploitation of OptiX storehouse, and three-dimensional scenic is drawn control program and utilized Visual Studio 2010 to develop.
This method for three-dimensional scenic GPU cluster drawing system hardware composition as shown in Figure 1, comprise n the identical GPU calculating crunode of software and hardware configuration and load balancing control node, n=2
k, k be greater than 0 integer; GPU calculating crunode and load balancing are controlled node and are interconnected by the network switch; GPU calculating crunode is one and is provided with the tall and handsome computing machine reaching GPU, and it is a computing machine that load balancing controls node; Load balancing controls node and is responsible for the frame picture of three-dimensional scenic to be divided into n sub regions, and each picture subregion is distributed to different GPU calculating crunode carries out ray trace drafting.This method for ray trace drawing program according to the global illumination effect of Whitted global illumination model drawing three-dimensional scene.If the three-dimensional geometry object of light and three-dimensional scenic intersects, then need to judge whether to need to produce derivative light in the point of intersection nearest from light starting point and make recurrence to follow the tracks of according to from the object material characteristic of the nearest point of intersection of light starting point and adaptive optical line following depth control method.If any three-dimensional geometry object passing the chief ray discord three-dimensional scenic of three-dimensional scenic frame picture pixel launched from viewpoint intersects, then the ray traced depth that this pixel is corresponding is 1.If the chief ray through three-dimensional scenic frame picture pixel launched from viewpoint and the three-dimensional geometry object of three-dimensional scenic intersect, then correspondence chief ray and ndRay bar are derived light by this pixel, ndRay >=0, as shown in Figure 2, the ray traced depth that this pixel of this method calculating is corresponding is ndRay+1.This method usage data structure BLOCK come the pixel of stored picture subregion initial line number, terminate line number, initial row number and end column number; Data structure BLOCK comprises initial line number I1, terminates line number I2, initial row C1, end column C2 totally four member variables.
The performing step of this method is as follows:
Step001: start the three-dimensional scenic be arranged on load balancing control node and draw control program A001;
Step002: three-dimensional scene models file A002 to be drawn is controlled node by network from load balancing and sends each GPU calculating crunode to, controls node by network from load balancing by initial virtual camera parameter configuration file CPARAMF and sends each GPU calculating crunode to;
Step003: start the ray trace drawing program A003 be arranged on each GPU calculating crunode, load three-dimensional scene models file A002, and the virtual camera parameter in ray trace drawing program A003 is set according to initial virtual camera parameter configuration file CPARAMF;
Step004: to the ray trace drawing program A003 operated on each GPU calculating crunode, sets up and is connected with the TCP socket that three-dimensional scenic is drawn between control program A001;
Step005: utilize three-dimensional scenic to draw control program A001, controls in load balancing to create list A004 and list A005 in the internal memory of node, arranges list A004 for empty, arranges list A005 for empty;
Step006: utilize three-dimensional scenic to draw control program A001, the variable V 1 creating a data structure BLOCK type in the internal memory of node is controlled in load balancing, be 1 by the initial line number I1 member variable assignment of variable V 1, by the end line number I2 member variable assignment of variable V 1 be
be 1 by the initial row C1 member variable assignment of variable V 1, the total line number of pixel of to be N, M by the end column C2 member variable assignment of variable V 1 be three-dimensional scenic frame picture, N is the total columns of pixel of three-dimensional scenic frame picture; Variable V 1 is stored in list A004; Utilize three-dimensional scenic to draw control program A001, control the variable V 2 creating a data structure BLOCK type in the internal memory of node in load balancing, by the initial line number I1 member variable assignment of variable V 2 be
be M by the end line number I2 member variable assignment of variable V 2, being 1 by the initial row C1 member variable assignment of variable V 2, is N by the end column C2 member variable assignment of variable V 2; Variable V 2 is stored in list A004;
Step007: make i=1;
Step008: if 2
i>=n, goes to step Step011;
Step009: to the variable V x of each data structure BLOCK type in list A004, utilizes three-dimensional scenic to draw control program A001 and is done as follows:
Step009-1: the difference making nRows equal the value of the value of the end line number I2 member variable of variable V x and the initial line number I1 member variable of variable V x adds 1, the difference making nCols equal the value of the value of the end column C2 member variable of variable V x and the initial row C1 member variable of variable V x adds 1; If nRows < is nCols, go to step Step009-3;
Step009-2: the variable V x1 creating a data structure BLOCK type, by the value that the initial line number I1 member variable assignment of variable V x1 is the initial line number I1 member variable of variable V x, by the end line number I2 member variable assignment of variable V x1 be the initial line number I1 member variable of variable V x value with
sum subtracts 1, is the value of the initial row C1 member variable of variable V x by the initial row C1 member variable assignment of variable V x1, is the value of the end column C2 member variable of variable V x by the end column C2 member variable assignment of variable V x1; Variable V x1 is stored in list A005; Create the variable V x2 of a data structure BLOCK type, by the initial line number I1 member variable assignment of variable V x2 be the initial line number I1 member variable of variable V x value with
sum, by the value that the end line number I2 member variable assignment of variable V x2 is the end line number I2 member variable of variable V x, by the value that the initial row C1 member variable assignment of variable V x2 is the initial row C1 member variable of variable V x, be the value of the end column C2 member variable of variable V x by the end column C2 member variable assignment of variable V x2; Variable V x2 is stored in list A005; Go to step Step009-4;
Step009-3: the variable V y1 creating a data structure BLOCK type, by the value that the initial line number I1 member variable assignment of variable V y1 is the initial line number I1 member variable of variable V x, by the value that the end line number I2 member variable assignment of variable V y1 is the end line number I2 member variable of variable V x, by the value that the initial row C1 member variable assignment of variable V y1 is the initial row C1 member variable of variable V x, by the end column C2 member variable assignment of variable V y1 be the initial row C1 member variable of variable V x value with
sum subtracts 1; Variable V y1 is stored in list A005; Create the variable V y2 of a data structure BLOCK type, by the value that the initial line number I1 member variable assignment of variable V y2 is the initial line number I1 member variable of variable V x, by the value that the end line number I2 member variable assignment of variable V y2 is the end line number I2 member variable of variable V x, by the initial row C1 member variable assignment of variable V y2 be the initial row C1 member variable of variable V x value with
the end column C2 member variable assignment of variable V y2 is the value of the end column C2 member variable of variable V x by sum; Variable V y2 is stored in list A005;
Step009-4: the operation for variable V x terminates;
Step010: empty list A004; The variable of all data structure BLOCK types in list A005 is stored in list A004; Empty list A005; I=i+1; Go to step Step008;
Step011: if three-dimensional scenic draws control program A001 receive " stopping drawing " command messages, then go to step Step021, otherwise to the variables A 006 of each data structure BLOCK type in list A004, utilize three-dimensional scenic to draw control program A001 and perform following operation:
Step011-1: calculate the position number ID of variables A 006 in list A004;
Step011-2: the value of variables A 006 connected by TCP socket and send the ray trace drawing program A003 operated on ID GPU calculating crunode to, sends the request of drawing the picture subregion A007 determined by the value of the initial line number I1 member variable of variables A 006, end line number I2 member variable, initial row C1 member variable and end column C2 member variable to the ray trace drawing program A003 operated on ID GPU calculating crunode; The ray trace drawing program A003 operated on ID GPU calculating crunode calculates the color value of each pixel A 008 in picture subregion A007, and the ray traced depth that recording pixel A008 is corresponding; The ray trace drawing program A003 operated on ID GPU calculating crunode sends three-dimensional scenic by the connection of TCP socket to the color value of each pixel A 008 in picture subregion A007 and the ray traced depth of correspondence thereof and draws control program A001;
Step011-3: the operation for variables A 006 terminates;
Step012: three-dimensional scenic draws control program A001 obtains all pixels of three-dimensional scenic frame picture color value according to the color value of all pixels of all picture subregion A007 sent from the ray trace drawing program A003 operated on each GPU calculating crunode, and controlling display that node is connected shows three-dimensional scenic frame picture with load balancing accordingly; Three-dimensional scenic draws control program A001 obtains each pixel of three-dimensional scenic frame picture ray traced depth according to the ray traced depth of each pixel of all picture subregion A007 sent from the ray trace drawing program A003 operated on each GPU calculating crunode; Three-dimensional scenic is drawn control program A001, by the connection of TCP socket, the man-machine interaction message be currently received is sent to the ray trace drawing program A003 operated on each GPU calculating crunode, ray trace drawing program A003 carries out map function to the three-dimensional scene models be loaded in internal memory accordingly, and what realize between people and three-dimensional scenic is mutual;
Step013: utilize three-dimensional scenic to draw control program A001, controls the array A009 that establishment M in the internal memory of node is capable, N arranges in load balancing; Idx=1,2 ..., M; Idy=1,2 ..., N; It is the product of ray traced depth corresponding to the i-th dx of three-dimensional scenic frame picture pixel that is capable, the i-th dy row and 1.6 by element assignment that is capable for i-th dx of array A009, the i-th dy row;
Step014: empty list A004, empties list A005;
Step015: utilize three-dimensional scenic to draw control program A001, controls in load balancing to create the one-dimension array A010 that comprises M element in the internal memory of node; Id=1,2 ..., M; It is the value sum of all elements that i-th d of array A009 is capable by i-th d of an array A010 element assignment; Calculating makes function
minimum m, m are integer and 1≤m≤M, wherein a
jit is the value of a jth element of array A010;
Step016: utilize three-dimensional scenic to draw control program A001, the variables A 011 creating a data structure BLOCK type in the internal memory of node is controlled in load balancing, be 1 by the initial line number I1 member variable assignment of variables A 011, be m by the end line number I2 member variable assignment of variables A 011, being 1 by the initial row C1 member variable assignment of variables A 011, is N by the end column C2 member variable assignment of variables A 011; Variables A 011 is stored in list A004; Three-dimensional scenic is utilized to draw control program A001, the variables A 012 creating a data structure BLOCK type in the internal memory of node is controlled in load balancing, be m+1 by the initial line number I1 member variable assignment of variables A 012, be M by the end line number I2 member variable assignment of variables A 012, being 1 by the initial row C1 member variable assignment of variables A 012, is N by the end column C2 member variable assignment of variables A 012; Variables A 012 is stored in list A004;
Step017: make i=1;
Step018: if 2
i>=n, goes to step Step011;
Step019: to the variables A 013 of each data structure BLOCK type in list A004, utilizes three-dimensional scenic to draw control program A001 and is done as follows:
Step019-1: the difference making nRows equal the value of the value of the end line number I2 member variable of variables A 013 and the initial line number I1 member variable of variables A 013 adds 1, the difference making nCols equal the value of the value of the end column C2 member variable of variables A 013 and the initial row C1 member variable of variables A 013 adds 1; IdRB is made to equal the value of the initial line number I1 member variable of variables A 013, idRE is made to equal the value of the end line number I2 member variable of variables A 013, make idCB equal the value of the initial row C1 member variable of variables A 013, make idCE equal the value of the end column C2 member variable of variables A 013; If nRows < is nCols, go to step Step019-3;
Step019-2: create the one-dimension array A014 that comprises nRows element; J=1,2 ..., the jth of an array A014 element assignment is the value sum of all elements that i-th dRB+j-1 of array A009 is capable, the i-th dCB to the i-th dCE arranges by nRows; Calculating makes function
minimum m, m are integer and 1≤m≤nRows, wherein a
pit is the value of p the element of array A014; Create the variables A 0131 of a data structure BLOCK type, by the value that the initial line number I1 member variable assignment of variables A 0131 is the initial line number I1 member variable of variables A 013, be that value and the m sum of the initial line number I1 member variable of variables A 013 subtracts 1 by the end line number I2 member variable assignment of variables A 0131, by the value that the initial row C1 member variable assignment of variables A 0131 is the initial row C1 member variable of variables A 013, be the value of the end column C2 member variable of variables A 013 by the end column C2 member variable assignment of variables A 0131; Variables A 0131 is stored in list A005; Create the variables A 0132 of a data structure BLOCK type, by value and m sum that the initial line number I1 member variable assignment of variables A 0132 is the initial line number I1 member variable of variables A 013, by the value that the end line number I2 member variable assignment of variables A 0132 is the end line number I2 member variable of variables A 013, by the value that the initial row C1 member variable assignment of variables A 0132 is the initial row C1 member variable of variables A 013, be the value of the end column C2 member variable of variables A 013 by the end column C2 member variable assignment of variables A 0132; Variables A 0132 is stored in list A005; Go to step Step019-4;
Step019-3: create the one-dimension array A015 that comprises nCols element; J=1,2 ..., the jth of an array A015 element assignment is that i-th dRB to the i-th dRE of array A009 is capable, the value sum of all elements of the i-th dCB+j-1 row by nCols; Calculating makes function
minimum m, m are integer and 1≤m≤nCols, wherein a
iit is the value of t the element of array A015; Create the variables A 016 of a data structure BLOCK type, by the value that the initial line number I1 member variable assignment of variables A 016 is the initial line number I1 member variable of variables A 013, by the value that the end line number I2 member variable assignment of variables A 016 is the end line number I2 member variable of variables A 013, by the value that the initial row C1 member variable assignment of variables A 016 is the initial row C1 member variable of variables A 013, be that value and the m sum of the initial row C1 member variable of variables A 013 subtracts 1 by the end column C2 member variable assignment of variables A 016; Variables A 016 is stored in list A005; Create the variables A 017 of a data structure BLOCK type, by the value that the initial line number I1 member variable assignment of variables A 017 is the initial line number I1 member variable of variables A 013, by the value that the end line number I2 member variable assignment of variables A 017 is the end line number I2 member variable of variables A 013, by value and m sum that the initial row C1 member variable assignment of variables A 017 is the initial row C1 member variable of variables A 013, be the value of the end column C2 member variable of variables A 013 by the end column C2 member variable assignment of variables A 017; Variables A 017 is stored in list A005;
Step019-4: the operation for variables A 013 terminates;
Step020: empty list A004; The variable of all data structure BLOCK types in list A005 is stored in list A004; Empty list A005; I=i+1; Go to step Step018;
Step021: stop three-dimensional scenic and draw and load balancing operation.
Claims (1)
1., based on the load-balancing method of the three-dimensional scenic GPU cluster drawing system of ray trace, it is characterized in that, required equipment and performing step as follows:
This method for three-dimensional scenic GPU cluster drawing system comprise n the identical GPU calculating crunode of software and hardware configuration and load balancing controls node, n=2
k, k be greater than 0 integer; All GPU calculating crunode and load balancing are controlled node and are interconnected by the network switch; GPU calculating crunode is one and is provided with the tall and handsome computing machine reaching GPU, and it is a computing machine that load balancing controls node; Load balancing controls node and is responsible for the frame picture of three-dimensional scenic to be divided into n sub regions, and each picture subregion is distributed to different GPU calculating crunode carries out ray trace drafting; This method for ray trace drawing program according to the global illumination effect of Whitted global illumination model drawing three-dimensional scene; If the three-dimensional geometry object of light and three-dimensional scenic intersects, then need to judge whether to need to produce derivative light in the point of intersection nearest from light starting point and make recurrence to follow the tracks of according to from the object material characteristic of the nearest point of intersection of light starting point and adaptive optical line following depth control method; If any three-dimensional geometry object passing the chief ray discord three-dimensional scenic of three-dimensional scenic frame picture pixel launched from viewpoint intersects, then the ray traced depth that this pixel is corresponding is 1; If the chief ray through three-dimensional scenic frame picture pixel launched from viewpoint and the three-dimensional geometry object of three-dimensional scenic intersect, then correspondence chief ray and ndRay bar are derived light by this pixel, ndRay>=0, the ray traced depth that this pixel of this method calculating is corresponding is ndRay+1; This method usage data structure BLOCK come the pixel of stored picture subregion initial line number, terminate line number, initial row number and end column number; Data structure BLOCK comprises initial line number I1, terminates line number I2, initial row C1, end column C2 totally four member variables;
The performing step of this method is as follows:
Step001: start the three-dimensional scenic be arranged on load balancing control node and draw control program A001;
Step002: three-dimensional scene models file A002 to be drawn is controlled node by network from load balancing and sends each GPU calculating crunode to, controls node by network from load balancing by initial virtual camera parameter configuration file CPARAMF and sends each GPU calculating crunode to;
Step003: start the ray trace drawing program A003 be arranged on each GPU calculating crunode, load three-dimensional scene models file A002, and the virtual camera parameter in ray trace drawing program A003 is set according to initial virtual camera parameter configuration file CPARAMF;
Step004: to the ray trace drawing program A003 operated on each GPU calculating crunode, sets up and is connected with the TCP socket that three-dimensional scenic is drawn between control program A001;
Step005: utilize three-dimensional scenic to draw control program A001, controls in load balancing to create list A004 and list A005 in the internal memory of node, arranges list A004 for empty, arranges list A005 for empty;
Step006: utilize three-dimensional scenic to draw control program A001, the variable V 1 creating a data structure BLOCK type in the internal memory of node is controlled in load balancing, be 1 by the initial line number I1 member variable assignment of variable V 1, by the end line number I2 member variable assignment of variable V 1 be
be 1 by the initial row C1 member variable assignment of variable V 1, the total line number of pixel of to be N, M by the end column C2 member variable assignment of variable V 1 be three-dimensional scenic frame picture, N is the total columns of pixel of three-dimensional scenic frame picture; Variable V 1 is stored in list A004; Utilize three-dimensional scenic to draw control program A001, control the variable V 2 creating a data structure BLOCK type in the internal memory of node in load balancing, by the initial line number I1 member variable assignment of variable V 2 be
be M by the end line number I2 member variable assignment of variable V 2, being 1 by the initial row C1 member variable assignment of variable V 2, is N by the end column C2 member variable assignment of variable V 2; Variable V 2 is stored in list A004;
Step007: make i=1;
Step008: if 2
i>=n, goes to step Step011;
Step009: to the variable V x of each data structure BLOCK type in list A004, utilizes three-dimensional scenic to draw control program A001 and is done as follows:
Step009-1: the difference making nRows equal the value of the value of the end line number I2 member variable of variable V x and the initial line number I1 member variable of variable V x adds 1, the difference making nCols equal the value of the value of the end column C2 member variable of variable V x and the initial row C1 member variable of variable V x adds 1; If nRows < is nCols, go to step Step009-3;
Step009-2: the variable V x1 creating a data structure BLOCK type, by the value that the initial line number I1 member variable assignment of variable V x1 is the initial line number I1 member variable of variable V x, by the end line number I2 member variable assignment of variable V x1 be the initial line number I1 member variable of variable V x value with
sum subtracts 1, is the value of the initial row C1 member variable of variable V x by the initial row C1 member variable assignment of variable V x1, is the value of the end column C2 member variable of variable V x by the end column C2 member variable assignment of variable V x1; Variable V x1 is stored in list A005; Create the variable V x2 of a data structure BLOCK type, by the initial line number I1 member variable assignment of variable V x2 be the initial line number I1 member variable of variable V x value with
sum, by the value that the end line number I2 member variable assignment of variable V x2 is the end line number I2 member variable of variable V x, by the value that the initial row C1 member variable assignment of variable V x2 is the initial row C1 member variable of variable V x, be the value of the end column C2 member variable of variable V x by the end column C2 member variable assignment of variable V x2; Variable V x2 is stored in list A005; Go to step Step009-4;
Step009-3: the variable V y1 creating a data structure BLOCK type, by the value that the initial line number I1 member variable assignment of variable V y1 is the initial line number I1 member variable of variable V x, by the value that the end line number I2 member variable assignment of variable V y1 is the end line number I2 member variable of variable V x, by the value that the initial row C1 member variable assignment of variable V y1 is the initial row C1 member variable of variable V x, by the end column C2 member variable assignment of variable V y1 be the initial row C1 member variable of variable V x value with
sum subtracts 1; Variable V y1 is stored in list A005; Create the variable V y2 of a data structure BLOCK type, by the value that the initial line number I1 member variable assignment of variable V y2 is the initial line number I1 member variable of variable V x, by the value that the end line number I2 member variable assignment of variable V y2 is the end line number I2 member variable of variable V x, by the initial row C1 member variable assignment of variable V y2 be the initial row C1 member variable of variable V x value with
the end column C2 member variable assignment of variable V y2 is the value of the end column C2 member variable of variable V x by sum; Variable V y2 is stored in list A005;
Step009-4: the operation for variable V x terminates;
Step010: empty list A004; The variable of all data structure BLOCK types in list A005 is stored in list A004; Empty list A005; I=i+1; Go to step Step008;
Step011: if three-dimensional scenic draws control program A001 receive " stopping drawing " command messages, then go to step Step021, otherwise to the variables A 006 of each data structure BLOCK type in list A004, utilize three-dimensional scenic to draw control program A001 and perform following operation:
Step011-1: calculate the position number ID of variables A 006 in list A004;
Step011-2: the value of variables A 006 connected by TCP socket and send the ray trace drawing program A003 operated on ID GPU calculating crunode to, sends the request of drawing the picture subregion A007 determined by the value of the initial line number I1 member variable of variables A 006, end line number I2 member variable, initial row C1 member variable and end column C2 member variable to the ray trace drawing program A003 operated on ID GPU calculating crunode; The ray trace drawing program A003 operated on ID GPU calculating crunode calculates the color value of each pixel A 008 in picture subregion A007, and the ray traced depth that recording pixel A008 is corresponding; The ray trace drawing program A003 operated on ID GPU calculating crunode sends three-dimensional scenic by the connection of TCP socket to the color value of each pixel A 008 in picture subregion A007 and the ray traced depth of correspondence thereof and draws control program A001;
Step011-3: the operation for variables A 006 terminates;
Step012: three-dimensional scenic draws control program A001 obtains all pixels of three-dimensional scenic frame picture color value according to the color value of all pixels of all picture subregion A007 sent from the ray trace drawing program A003 operated on each GPU calculating crunode, and controlling display that node is connected shows three-dimensional scenic frame picture with load balancing accordingly; Three-dimensional scenic draws control program A001 obtains each pixel of three-dimensional scenic frame picture ray traced depth according to the ray traced depth of each pixel of all picture subregion A007 sent from the ray trace drawing program A003 operated on each GPU calculating crunode; Three-dimensional scenic is drawn control program A001, by the connection of TCP socket, the man-machine interaction message be currently received is sent to the ray trace drawing program A003 operated on each GPU calculating crunode, ray trace drawing program A003 carries out map function to the three-dimensional scene models be loaded in internal memory accordingly, and what realize between people and three-dimensional scenic is mutual;
Step013: utilize three-dimensional scenic to draw control program A001, controls the array A009 that establishment M in the internal memory of node is capable, N arranges in load balancing; Idx=1,2 ..., M; Idy=1,2 ..., N; It is the product of ray traced depth corresponding to the i-th dx of three-dimensional scenic frame picture pixel that is capable, the i-th dy row and 1.6 by element assignment that is capable for i-th dx of array A009, the i-th dy row;
Step014: empty list A004, empties list A005;
Step015: utilize three-dimensional scenic to draw control program A001, controls in load balancing to create the one-dimension array A010 that comprises M element in the internal memory of node; Id=1,2 ..., M; It is the value sum of all elements that i-th d of array A009 is capable by i-th d of an array A010 element assignment; Calculating makes function
minimum m, m are integer and 1≤m≤M, wherein a
jit is the value of a jth element of array A010;
Step016: utilize three-dimensional scenic to draw control program A001, the variables A 011 creating a data structure BLOCK type in the internal memory of node is controlled in load balancing, be 1 by the initial line number I1 member variable assignment of variables A 011, be m by the end line number I2 member variable assignment of variables A 011, being 1 by the initial row C1 member variable assignment of variables A 011, is N by the end column C2 member variable assignment of variables A 011; Variables A 011 is stored in list A004; Three-dimensional scenic is utilized to draw control program A001, the variables A 012 creating a data structure BLOCK type in the internal memory of node is controlled in load balancing, be m+1 by the initial line number I1 member variable assignment of variables A 012, be M by the end line number I2 member variable assignment of variables A 012, being 1 by the initial row C1 member variable assignment of variables A 012, is N by the end column C2 member variable assignment of variables A 012; Variables A 012 is stored in list A004;
Step017: make i=1;
Step018: if 2
i>=n, goes to step Step011;
Step019: to the variables A 013 of each data structure BLOCK type in list A004, utilizes three-dimensional scenic to draw control program A001 and is done as follows:
Step019-1: the difference making nRows equal the value of the value of the end line number I2 member variable of variables A 013 and the initial line number I1 member variable of variables A 013 adds 1, the difference making nCols equal the value of the value of the end column C2 member variable of variables A 013 and the initial row C1 member variable of variables A 013 adds 1; IdRB is made to equal the value of the initial line number I1 member variable of variables A 013, idRE is made to equal the value of the end line number I2 member variable of variables A 013, make idCB equal the value of the initial row C1 member variable of variables A 013, make idCE equal the value of the end column C2 member variable of variables A 013; If nRows < is nCols, go to step Step019-3;
Step019-2: create the one-dimension array A014 that comprises nRows element; J=1,2 ..., the jth of an array A014 element assignment is the value sum of all elements that i-th dRB+j-1 of array A009 is capable, the i-th dCB to the i-th dCE arranges by nRows; Calculating makes function
minimum m, m are integer and 1≤m≤nRows, wherein a
pit is the value of p the element of array A014; Create the variables A 0131 of a data structure BLOCK type, by the value that the initial line number I1 member variable assignment of variables A 0131 is the initial line number I1 member variable of variables A 013, be that value and the m sum of the initial line number I1 member variable of variables A 013 subtracts 1 by the end line number I2 member variable assignment of variables A 0131, by the value that the initial row C1 member variable assignment of variables A 0131 is the initial row C1 member variable of variables A 013, be the value of the end column C2 member variable of variables A 013 by the end column C2 member variable assignment of variables A 0131; Variables A 0131 is stored in list A005; Create the variables A 0132 of a data structure BLOCK type, by value and m sum that the initial line number I1 member variable assignment of variables A 0132 is the initial line number I1 member variable of variables A 013, by the value that the end line number I2 member variable assignment of variables A 0132 is the end line number I2 member variable of variables A 013, by the value that the initial row C1 member variable assignment of variables A 0132 is the initial row C1 member variable of variables A 013, be the value of the end column C2 member variable of variables A 013 by the end column C2 member variable assignment of variables A 0132; Variables A 0132 is stored in list A005; Go to step Step019-4;
Step019-3: create the one-dimension array A015 that comprises nCols element; J=1,2 ..., the jth of an array A015 element assignment is that i-th dRB to the i-th dRE of array A009 is capable, the value sum of all elements of the i-th dCB+j-1 row by nCols; Calculating makes function
minimum m, m are integer and 1≤m≤nCols, wherein a
tit is the value of t the element of array A015; Create the variables A 016 of a data structure BLOCK type, by the value that the initial line number I1 member variable assignment of variables A 016 is the initial line number I1 member variable of variables A 013, by the value that the end line number I2 member variable assignment of variables A 016 is the end line number I2 member variable of variables A 013, by the value that the initial row C1 member variable assignment of variables A 016 is the initial row C1 member variable of variables A 013, be that value and the m sum of the initial row C1 member variable of variables A 013 subtracts 1 by the end column C2 member variable assignment of variables A 016; Variables A 016 is stored in list A005; Create the variables A 017 of a data structure BLOCK type, by the value that the initial line number I1 member variable assignment of variables A 017 is the initial line number I1 member variable of variables A 013, by the value that the end line number I2 member variable assignment of variables A 017 is the end line number I2 member variable of variables A 013, by value and m sum that the initial row C1 member variable assignment of variables A 017 is the initial row C1 member variable of variables A 013, be the value of the end column C2 member variable of variables A 013 by the end column C2 member variable assignment of variables A 017; Variables A 017 is stored in list A005;
Step019-4: the operation for variables A 013 terminates;
Step020: empty list A004; The variable of all data structure BLOCK types in list A005 is stored in list A004; Empty list A005; I=i+1; Go to step Step018;
Step021: stop three-dimensional scenic and draw and load balancing operation.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510254497.4A CN104835193B (en) | 2015-05-13 | 2015-05-13 | The load-balancing method of three-dimensional scenic GPU cluster drawing system based on ray trace |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510254497.4A CN104835193B (en) | 2015-05-13 | 2015-05-13 | The load-balancing method of three-dimensional scenic GPU cluster drawing system based on ray trace |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104835193A true CN104835193A (en) | 2015-08-12 |
CN104835193B CN104835193B (en) | 2017-08-25 |
Family
ID=53813057
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510254497.4A Active CN104835193B (en) | 2015-05-13 | 2015-05-13 | The load-balancing method of three-dimensional scenic GPU cluster drawing system based on ray trace |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104835193B (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109472854A (en) * | 2018-11-20 | 2019-03-15 | 长春理工大学 | The drafting task dynamic equalization distribution method of GPU parallel ray tracing cluster |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101982838A (en) * | 2010-11-02 | 2011-03-02 | 长春理工大学 | 3D virtual set ray tracking method for accelerating back light source irradiation |
US20120133654A1 (en) * | 2006-09-19 | 2012-05-31 | Caustic Graphics Inc. | Variable-sized concurrent grouping for multiprocessing |
CN103049927A (en) * | 2013-01-17 | 2013-04-17 | 浙江大学 | Real-time ray tracing and rendering method based on GPU (Graphics Processing Unit) aggregate |
US20140375643A1 (en) * | 2012-12-26 | 2014-12-25 | Reuven Bakalash | System for primary ray shooting having geometrical stencils |
-
2015
- 2015-05-13 CN CN201510254497.4A patent/CN104835193B/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120133654A1 (en) * | 2006-09-19 | 2012-05-31 | Caustic Graphics Inc. | Variable-sized concurrent grouping for multiprocessing |
CN101982838A (en) * | 2010-11-02 | 2011-03-02 | 长春理工大学 | 3D virtual set ray tracking method for accelerating back light source irradiation |
US20140375643A1 (en) * | 2012-12-26 | 2014-12-25 | Reuven Bakalash | System for primary ray shooting having geometrical stencils |
CN103049927A (en) * | 2013-01-17 | 2013-04-17 | 浙江大学 | Real-time ray tracing and rendering method based on GPU (Graphics Processing Unit) aggregate |
Non-Patent Citations (1)
Title |
---|
李华 等: "动态3D虚拟场景并行化光线跟踪加速结构设计", 《长春理工大学学报》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109472854A (en) * | 2018-11-20 | 2019-03-15 | 长春理工大学 | The drafting task dynamic equalization distribution method of GPU parallel ray tracing cluster |
CN109472854B (en) * | 2018-11-20 | 2022-10-21 | 长春理工大学 | GPU parallel ray tracing cluster rendering task dynamic equilibrium allocation method |
Also Published As
Publication number | Publication date |
---|---|
CN104835193B (en) | 2017-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111701238B (en) | Virtual picture volume display method, device, equipment and storage medium | |
CN106951583B (en) | Method for virtually arranging monitoring cameras on construction site based on BIM technology | |
CN105407259A (en) | Virtual camera shooting method | |
CN107369205B (en) | Mobile terminal city two-dimensional and three-dimensional linkage display method | |
CN104794752A (en) | Collaborative modeling method and system based on mobile terminal and holographic displayed virtual scene | |
CN102834849A (en) | Image drawing device for drawing stereoscopic image, image drawing method, and image drawing program | |
CN105808071A (en) | Display control method and device and electronic equipment | |
CN106204713B (en) | Static merging processing method and device | |
CN103472985A (en) | User editing method of three-dimensional (3D) shopping platform display interface | |
JP7432005B2 (en) | Methods, devices, equipment and computer programs for converting two-dimensional images into three-dimensional images | |
CN103632390A (en) | Method for realizing naked eye 3D (three dimensional) animation real-time making by using D3D (Direct three dimensional) technology | |
CN104850700B (en) | A kind of collaborative Visual Simulation System | |
CN106780704B (en) | The direct lighting effect proximity rendering method of three-dimensional scenic reused based on visibility | |
CN202694599U (en) | Digital three-dimensional sand table display device | |
CN104835193A (en) | Load balancing method of 3D scene GPU cluster rendering system based on ray tracing | |
CN100444203C (en) | Method and system of drawing lawn in 3D game | |
CN101840339B (en) | Method for constructing stereo scene developed based on Flex and applied to webpage | |
CN109615709B (en) | Multi-person cooperation three-dimensional scene modeling and drawing method based on cloud computing | |
CN103279268B (en) | A kind of interactive approach based on controlled terminal list and device | |
US20230401789A1 (en) | Methods and systems for unified rendering of light and sound content for a simulated 3d environment | |
CN102880470A (en) | Three-dimensional game engine kernel structure | |
CN101702243B (en) | Group movement implementation method based on key formation constraint and system thereof | |
CN103309444A (en) | Kinect-based intelligent panoramic display method | |
KR102190388B1 (en) | Method, system and non-transitory computer-readable recording medium for providing contents including augmented reality object using multi-devices | |
CN102193499A (en) | efficiency control method aiming at group drawing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220808 Address after: 130022 21 / F, Yuanchuang international, Weixing Road, Changchun City, Jilin Province Patentee after: Jilin Kasite Technology Co.,Ltd. Address before: 130022 No. 7089 Satellite Road, Jilin, Changchun Patentee before: CHANGCHUN University OF SCIENCE AND TECHNOLOGY |
|
TR01 | Transfer of patent right |