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 PDF

Info

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
Application number
CN201510254497.4A
Other languages
Chinese (zh)
Other versions
CN104835193B (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.)
Jilin Kasite Technology Co ltd
Original Assignee
Changchun University of Science and Technology
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 Changchun University of Science and Technology filed Critical Changchun University of Science and Technology
Priority to CN201510254497.4A priority Critical patent/CN104835193B/en
Publication of CN104835193A publication Critical patent/CN104835193A/en
Application granted granted Critical
Publication of CN104835193B publication Critical patent/CN104835193B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

Based on the load-balancing method of the three-dimensional scenic GPU cluster drawing system of ray trace
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.
CN201510254497.4A 2015-05-13 2015-05-13 The load-balancing method of three-dimensional scenic GPU cluster drawing system based on ray trace Active CN104835193B (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
李华 等: "动态3D虚拟场景并行化光线跟踪加速结构设计", 《长春理工大学学报》 *

Cited By (2)

* Cited by examiner, † Cited by third party
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