Partial Visibility Estimation for Optical Transmission Simulation Using Particle Density
Through the exponential integral power series expansion method of particle density function, combined with the combination of power series expansion terms and function adjustment, the problems of large variance and long rendering time in existing transmittance estimation are solved, and a more efficient transmittance calculation and rendering process is achieved.
Patent Information
- Application Number
- CN202210093203.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-02-08
- Filing Date
- 2022-01-26
- Publication Date
- 2025-07-18
- Estimated Expiration
- 2042-01-26
AI Technical Summary
The existing transmittance estimation method has high computational cost in the rendering process and extends the rendering time due to the large amount of variance and the increase in the number of samples.
Using the exponential integral power series expansion method of particle density function, Monte Carlo estimation is performed by sampling the function and applying the sample to the power series expansion term, the variance is reduced by combining the power series expansion term, and the transmittance estimation is optimized by adjusting the function and pivot calculation.
It effectively reduces the variance of transmittance estimation, reduces the calculation cost, improves the rendering efficiency and reduces the rendering time.
Smart Images

Figure CN114910450B_ABST
Abstract
Description
Background Art
[0001] The world around us is filled with participating media that attenuate and scatter light as it travels from a light source to a surface and finally to our eyes. Simulating this transport in heterogeneous participating media, such as smoke, clouds, nuclear reactor containment vessels, biological tissue, or other volumetric data sets, is important in many fields, from neutron transport to medical physics, scientific visualization, and film and visual effects. At the heart of these simulations is the relatively expensive computation of the transmittance (partial visibility) through the media between two given points. In the context of graphics rendering, transmittance can be used for shadow connections between light and camera subpaths, for rendering colored media, or for evaluating the fractional visibility of solid surfaces.
[0002] Transmittance estimation has traditionally been expressed as the exponent of the optical thickness of the media along the line segment connecting the points, i.e., the integrated extinction. Most existing unbiased transmittance estimators are based on "zero-scattering" random walks - achieved by adding virtual matter in the media. A transmittance estimator that utilizes unbiased Monte Carlo estimation has been formed. However, due to the amount of variance in the estimation and the marginal effect of increasing the number of samples on reducing the variance, the estimator is limited. Therefore, using the estimator may require averaging multiple calls to the same estimator, resulting in an extended rendering time, and thus many computationally expensive value lookups in memory, resulting in an extended rendering time. Summary of the Invention
[0003] Embodiments of the present invention relate to partial visibility estimation for light transport simulation using particle density. Systems and methods for determining transmittance using a function corresponding to the particle density at a location in the environment are disclosed. The transmittance can be computed using a power series expansion of the exponential integral of the function, allowing for Monte Carlo estimation by sampling the function and applying the samples to the power series expansion terms.
[0004] Compared with traditional methods for calculating transmittance, at least one embodiment can evaluate at least one term of a power series expansion as a combination of values of terms of different orders of function samples in the power series expansion. The values of the power series expansion terms can be calculated using elementary symmetric methods, allowing for efficient evaluation of all potential orders, or a subset of the potential orders can be calculated. Additionally, compared with traditional methods for calculating transmittance, samples of a function can be calculated from combinations of values at intervals along the function. Discontinuities can be compensated for at least based on determining a version of the function that includes alignment of a first point and a second point of the function (e.g., using an affine control variable). One or more samples can be applied to the version of the function to produce an output that is adjusted to compensate for the alignment and determine the transmittance. Further contrary to traditional methods for calculating transmittance, rather than arbitrarily or manually selecting a pivot for expanding the power series, the pivot can be calculated as the mean of the function values. A transmittance estimate can be calculated from the power series expansion using one or more values for calculating the pivot (for a biased estimate), or using all the different values of the function for calculating the pivot (for an unbiased estimate). BRIEF DESCRIPTION OF THE DRAWINGS
[0005] The following describes in detail existing systems and methods for partial visibility estimation in optical transmission simulation using particle density with reference to the accompanying drawings, where:
[0006] Figure 1 is a block diagram of an example transmission estimation system according to at least one embodiment of the present disclosure;
[0007] Figure 2A is a graph of an example density function and its main part according to at least one embodiment of the present disclosure;
[0008] Figure 2B is a variance graph of different estimators according to at least one embodiment of the present disclosure with respect to the number of values used from an Figure 2A example density function in transmittance estimation;
[0009] Figure 3A is a graph of an example density function according to at least one embodiment of the present disclosure;
[0010] Figure 3B is an adjustment according to at least one embodiment of the present disclosure Figure 3A of an example density function to include an artificial discontinuity;
[0011] Figure 4A is a graph of an example density function and a control variable according to at least one embodiment of the present disclosure;
[0012] Figure 4B is according to at least one embodiment of the present disclosure Figure 4AThe density function and residual plots of control variables;
[0013] Figure 4C is a rearrangement of the density function of Figure 4A using the control variables according to at least one embodiment of the present disclosure and the average value of the control variables; Figure 4A an example version of the density function of
[0014] Figure 5 is a flowchart showing a method for calculating transmittance using a power series expansion of the exponential integral of a function according to some embodiments of the present disclosure, where one term is evaluated as a combination of values of samples of different orders in the power series expansion;
[0015] Figure 6 is a flowchart showing a method for calculating transmittance using a power series expansion of the exponential integral of a function according to some embodiments of the present disclosure, where the term is evaluated using samples determined from a combination of function values;
[0016] Figure 7 is a flowchart according to some embodiments of the present disclosure showing a method for calculating transmittance using a power series of the exponential integral of a function, where the power series is expanded using a pivot determined according to function values;
[0017] Figure 8 is a block diagram of an example computing device suitable for implementing some embodiments of the present disclosure; and
[0018] Figure 9 is a block diagram of an example data center suitable for implementing some embodiments of the present disclosure. Detailed Description
[0019] Systems and methods related to partial visibility estimation for optical transmission simulation using particle density are disclosed. More specifically, the present disclosure relates to methods that can be used to achieve low-variance estimates of transmittance and variance improvements as the number of samples used to calculate transmittance increases. According to various aspects of the present invention, a function corresponding to the particle density at a location in the environment can be used to determine transmittance. The transmittance can be calculated using a power series (e.g., Taylor series) expansion of the exponential integral of the function, allowing for Monte Carlo estimation by sampling the function and applying the samples to the power series expansion terms.
[0020] Compared to traditional methods for calculating transmittance, at least one embodiment can evaluate at least one term of a power series expansion as a combination of values of terms of different orders of function samples in the power series expansion. This method can be used to produce a value of a term that is effectively composed of a combination of multiple estimators, thereby reducing variance and allowing for fewer samples to be looked up in memory. For example, each term of the power series expansion can include one or more variables, where each variable corresponds to a respective sample from a density function. The order of the samples can correspond to a unique assignment of samples to the variables. Different orders of the samples can effectively provide another valid estimate of the transmittance and / or the terms of the power series expansion. For example, in embodiments where the samples are statistically independent (uncorrelated), the average of the terms of different orders of the samples can result in an unbiased estimate of the transmittance. Additionally, using the disclosed method, increasing the number of samples can have a significant impact on reducing variance because multiple samples can be applied to power series terms that have a significant impact on the transmittance (e.g., the first and / or second term or power of the power series).
[0021] In an embodiment, any number of potential orders of samples in a power series expansion and / or one or more of its specific terms can be used to calculate the transmittance. For example, all potential orders of the samples in each term being evaluated can be used to maximize the lookups for determining the samples, or a subset of the potential orders can be used. Given N terms of a power series expansion (e.g., determined by truncating the power series expansion using Russian roulette), evaluating each order can result in 2 N term value calculations, which increases the calculations rapidly with the number of terms. According to the present invention, various methods can be used to reduce the number of calculations for estimating the transmittance. In some examples, the elementary symmetric sum of multiple samples can be used to calculate the value of a power series expansion term. For example, the elementary symmetric sum can be used to calculate the elementary symmetric mean, allowing all potential orderings to be evaluated without using 2 N calculations. In a further example, a subset of the potential orders can be calculated. For example, multiple terms of the power series expansion can be evaluated by applying multiple samples to the power series expansion while at least based on the order of the multiple samples in a shifted power series expansion. Given variable slots, M samples can be moved or rotated M times (e.g., clockwise or counterclockwise) between the slots so that each sample occupies a different slot in each ordering.
[0022] Compared with traditional methods for calculating transmittance, samples of a function can also be calculated from a combination of values along intervals of the function. For example, values can be determined at equal intervals along the function, and the sample can be the average of the values. In at least one embodiment, the interval of the sample values can be moved and cycled through the function, which may result in discontinuities in the integration domain of the function due to differences between the values at the start and end of the function. For example, the Cranley-Patterson rotation can be used to generate a set of random low-discrepancy values, which, when used with equidistant sampling, can reduce the integration error to the square of the sample count. However, this assumes that the integrand has a finite maximum slope, which can be disrupted by discontinuities that significantly reduce the convergence rate. According to various aspects of the present disclosure, the discontinuities can be compensated for at least based on determining a version of the function that includes an alignment of a first point and a second point of the function to produce a new density function having the same integral as the original function. The samples can be applied to the version of the function to produce an output that is adjusted to compensate for the alignment and determine the transmittance. In at least one embodiment, the version of the function can include an affine control variable that performs the alignment. Another method of aligning function points includes taking an average in the case where the function itself is inverted. This can be used as an alternative to the control variable, for example, to avoid negative values that may result from using the control variable.
[0023] Compared with traditional methods for calculating transmittance, the present disclosure provides a method for determining an axis for expanding an exponential integral power series of a function. In a power series expansion, selecting an exact pivot can reduce the dependence of the transmittance estimate on higher-order terms. This can improve the computational efficiency by estimating fewer terms. Instead of arbitrarily or manually selecting the pivot, the pivot is calculated at least in part based on a combination of function values. For example, the pivot can correspond to the average of the function values. In at least one embodiment, one or more values used for calculating the pivot are used to calculate a transmittance estimate from the power series expansion. However, this may result in a biased estimate of the transmittance. For an unbiased estimate, the transmittance can be calculated using all the different values of the function used for calculating the pivot.
[0024] Reference Figure 1 , Figure 1An example transmittance estimation system 100 according to some embodiments of the present disclosure. It should be understood that this arrangement and other arrangements described herein are presented only as examples. In addition to the arrangements and components shown, other arrangements and components (e.g., machines, interfaces, functions, sequences, function groupings, etc.) may be used, or the shown arrangements and components may be replaced by other arrangements and components, and some components may be omitted entirely. Moreover, many of the components described herein are functional entities that may be implemented as discrete or distributed components, or in combination with other components, and may be implemented in any suitable combination and location. The various functions described herein as being performed by an entity may be performed by hardware, firmware, and / or software. For example, the various functions may be performed by a processor executing instructions stored in a memory.
[0025] In some embodiments, the features, functions, and / or components of the transmittance estimation system 100 may be similar to Figure 8 those of the computing device 800 and / or Figure 9 the data center 900. In one or more embodiments, the transmittance estimation system 100 may correspond to a simulation application, and the methods described herein may be performed by one or more servers to render a graphical output of the simulation application, such as for testing and validating the graphical output of an autonomous navigation machine or application, or for a content generation application, including animation and computer-aided design. The generated graphical output may be streamed or otherwise transmitted to one or more client devices, including but not limited to the client devices used in the simulation application, such as: one or more loop software components, one or more loop hardware components (HIL), one or more loop platform components (PIL), one or more loop in-system (SIL), or any combination thereof.
[0026] Among other things, the transmittance estimation system 100 may include an image renderer 102, a transmittance determiner 104, a value determiner 106, and a pivot determiner 108.
[0027] As an overview, the image renderer 102 can be configured to render an image (e.g., a frame) of a three-dimensional (3D) scene—such as the scene 110 of a virtual environment. To render an image of the 3D scene, the image renderer 102 can use a transmittance determiner 104, a value determiner 106, and a pivot determiner 108. For example, the image renderer 102 can use the transmittance determiner 104, which evaluates the transmittance of a heterogeneous participating medium in the scene, examples of which include the medium 120. The transmittance determiner 104 can determine the transmittance as a function of the particle density at a location in the 3D scene (e.g., within the medium 120). To do so, the transmittance determiner 104 can employ the value determiner 106, which determines one or more values of the function at the corresponding location in the 3D scene. For example, one or more values can be used to calculate the transmittance based on at least one term of a power series expansion of an exponential integral of applying the one or more values to the function. In at least one embodiment, the transmittance determiner 104 can also use the pivot determiner 108, which determines a pivot for expanding the power series to form a power series expansion. For example, the pivot determiner 108 can use one or more values from the value determiner 106 to calculate the pivot.
[0028] In various embodiments, the image renderer 102 can render a frame of the scene 110 using any suitable method that relies on determining the transmittance through one or more media. In some examples, the image renderer 102 samples the lighting conditions of the virtual environment using rays (e.g., generates a solution to the pixel rendering equation). One or more of these solutions can be determined based at least in part on the transmittance calculated using the transmittance determiner 104. In various embodiments, the image renderer 102 can use the transmittance determiner 104 to simulate the transmission of light through one or more media (e.g., the medium 120), examples of which include one or more of clouds, fog, smoke, mist, rain, or snow.
[0029] As described herein, the transmittance determiner 104 can determine the transmittance of a function corresponding to the particle density at a location in the 3D scene (e.g., within the medium 120). In at least one embodiment, the function μ(x) can be used to calculate the transmittance T within a finite interval between location a and location b using Equation (1):
[0030]
[0031] where x is the location along the straight line. The function μ(x) can be, for example, any non-negative function in (a, b), and can be deterministic (e.g., light transport in a classical inhomogeneous participating medium), or can be a deterministic function of a stochastic process (e.g., light transport in a non-classical stochastic medium useful in physical and financial applications).
[0032] The transmittance T(a, b) can represent the dimensionless probability of collisionless flight between positions a and b in the medium 120. When rendering the scene 110, a volume of non-uniform density given by a procedural noise function or values contained in a voxel grid structure can be provided to the image renderer 102. To determine the transmittance, it may be necessary to estimate the probability, for example, such that the image renderer 102 can partially attenuate visibility during next event estimation (NEE), or calculate the transmission probability through a non-scattering medium (such as black smoke) when forming a random walk through the scene 110. It may be desirable to perform the estimation using an unbiased framework or at least a framework capable of unbiased estimation. In various examples, the image renderer 102 can achieve this by applying Monte Carlo estimation to Equation (1). Specifically, one or more embodiments may employ Monte Carlo estimation of the exponential integral of Equation (1).
[0033] The transmittance determiner 104 can evaluate the estimator of Equation 1 as a power series expansion of the exponential integral of the function μ(x). The transmittance can be represented by Equation (2):
[0034]
[0035] where the function is a control variable for the integral of the function μ(x) and the integral belongs to the function The integral can be an analytical integral and serve as the pivot or expansion point of a power series (such as a Taylor series). The power series expansion can be based on, for example, Equation (3):
[0036]
[0037] where X i can refer to the i-th sample estimate of the integral τ n The fewer the converging terms of the power series, the closer the integral is to the real integral of the function μ(x). In at least one embodiment, an unbiased and independently selected algorithm (such as random selection) can be used to determine each sample.
[0038] Although the power series expansion may include an infinite number of terms, in practice, the transmittance determiner 104 can evaluate a finite number of terms. For example, without limitation, the transmittance determiner 104 can randomly truncate the power series expansion using Russian roulette integration in Monte Carlo integration.
[0039] The transmittance T can be sampled based on Equation (3) by roulette for the evaluation order N of the power series, and then Equation (4) can be evaluated to estimate:
[0040]
[0041] where p i is the probability of evaluating at least the i-th order. However, this expression does not maximize the use of samples because the weights of some samples are much larger than those of other samples. For example, the weight of sample X1 is significantly higher than that of any other sample because it is included in each term, and the denominators of the other terms increase with the order of the terms.
[0042] Combined estimator
[0043] According to various aspects of the present invention, by evaluating at least one term (e.g., each term) of the power series expansion as a combination of values of terms of different orders from multiple samples in the power series expansion, the sample weights in estimating the transmittance can be equally weighted, or at least more equally weighted. For example, in the first term a combination of at least two samples can be used instead of X1. In at least one embodiment, X1 can be replaced by the average m1 of the samples according to Equation (5):
[0044]
[0045] Similarly, a combination of at least two samples can be used instead of X2 and / or any other term in the power series. For example, in at least one embodiment, X2 can be replaced by the average m2 of all combinations of two sample products in the samples according to Equation (5):
[0046]
[0047] Generalizing this concept, where the term Y of the power series includes the product of the Z variables of the power series, the transmittance determiner 104 can evaluate the term Y as a combination (e.g., average value) of all possible Z products that can be formed by M samples. From another perspective, the power series expansion may include variable slots. The order of the samples can correspond to the unique assignment of samples to variables (e.g., sample 1 is X1 in one order and sample 1 is X2 in another order). For at least one term Y, the M samples can be assigned different orders, and the results can be combined to calculate the transmittance.
[0048] In an embodiment, the transmittance can correspond to the average value of all permutations of the Z variables of X1 in Equation (4). This forms the average value of several related estimators, reduces the variance while maintaining unbiasedness, and does not require additional lookups in the medium 120. The sum of the products of all combinations of a given length Y can be called the elementary symmetric sum and is denoted as e k . In mathematical form, the elementary symmetric sum can be represented using Equation (7):
[0049]
[0050] Assign e0 to 1. Basic symmetry means m k , and then it can be expressed using Equation (8):
[0051]
[0052] Then the combined transmittance estimator can be expressed using Equation (9)
[0053]
[0054] Use a selection method such as Russian roulette integration or another random or pseudo - random method to determine the evaluation order N.
[0055] Given N terms or orders of the power - series expansion, calculating Equation (9) may result in the calculation of 2 N term values, which increases the calculation rapidly as the number of terms increases. According to the present disclosure, various methods can be used to reduce the number of calculations for estimating transmittance. However, the Girard - Newton formula can be used to calculate the elementary symmetric sum. Wherein, P k can be the sum of the k - th powers of the samples, and e k can be the elementary symmetric sum, and the Girard - Newton formula can define Equation (10):
[0056]
[0057] where e k can be used to calculate the elementary symmetric sum of M samples to a given order N, thus avoiding the exponential growth of the order in the calculation. The elementary symmetric sum can be used to calculate the elementary symmetric mean, which can be used to calculate the transmittance (e.g., achieving O(NM) complexity instead of O(2 N ))
[0058] Now refer to Figure 2A and 2B , Figure 2A is FIG. 200A of the example density function μ(x). Wherein, according to at least one embodiment of the present disclosure, Figure 2B is FIG. 200B of the variance of different estimators with respect to the number of values (e.g., samples) of the example density function μ(x) used in transmittance estimation from at least one embodiment of the present disclosure Figure 2A .
[0059] It can be seen that using a non - combined estimator of a single order with samples and variable bins, the improvement in variance may be basically stabilized at about 4 values or samples due to the denominator of the power - series expansion term growing with the order of the term. In contrast, using, for example, considering one or more terms (e.g., Figure 2BA combined estimator of multiple orders (for all potential orders of all terms evaluated), the variance may continue to improve as the value or the number of samples increases.
[0060] In a further example, a subset of the potential orders of the samples in the power series expansion can be calculated to avoid exponential complexity in the transmittance calculation. For example but not limited to, in some methods, the expansion of multiple terms of the power series expansion can be evaluated based at least on applying multiple samples to the power series expansion while moving the order of multiple samples in the power series.. Given a variable slot, M samples can be moved or rotated (e.g., clockwise or counterclockwise) M times between the slots, so that each sample occupies a different slot in each ordering. For example, the calculated ordering sequence may be
[0061] (X1, X2, X3, …, X N ), (X2, X3, …, X N , X1), (X3, …, X N , X1, X2), …, (X N , X1, …, X N -1).
[0062] Multi-valued sampling
[0063] According to a further aspect of the present disclosure, a sample X i of the function μ(x) can be calculated according to a combination of values spaced at intervals along the function μ(x). This may result in a reduction in the variance of the sample X i , which is beneficial because even a small reduction in the variance in a single sample X i can have a large impact on the reduction of the variance of the higher-order terms of the power series expansion. In at least one embodiment, the values of the sample X i can be determined at equal intervals along the function μ(x), and the sample can be the average of these values
[0064] Without loss of generality, assuming that the integration interval of the function μ(x) is [0, L), one way to produce a sequence of unbiased independent estimators is to use i for each order, a single random number x i ∈ [0, L) to randomize the deterministic low-discrepancy set u1,..., u M ∈ [0, L) by Cranley-Patterson rotation, define the rotated set x i j = x i + u j mod L), and estimate the integral using equation (11):
[0065]
[0066] If the integrand is continuous, using a low-discrepancy set can reduce the integration error to O(log(M) / M). If the integrand is smooth enough, further error reduction can be obtained, which can be achieved, for example, by replacing the values in the low-discrepancy set with combinations of values, such as by equidistantly sampling the tuple u j = j / M. This can be used to potentially reduce the integration error to O(1 / M) and can be equivalent to convolving the integrand with an M-point Dirac comb represented by equation (12):
[0067]
[0068] where s is a random offset in the integration interval [0, L].
[0069] Using multiple values for a single sample may require the value determiner 106 to perform more lookups of the function μ(x) when estimating the transmittance (multiple lookups per sample). Nevertheless, the benefits of variance reduction may be greater than using these lookups as separate samples in a power series estimate, even when using the combined estimators described herein compared to single-lookup samples. Convergence may increase, for example, with the density of the sampling comb with large M. Large M may be to compensate for an aggressive truncation algorithm used for the evaluation order N to limit the total number of values that need to be looked up by the value determiner 106 for transmittance estimation.
[0070] The spacing of the sample values (using a Dirac comb or other method) may introduce artificial discontinuities in the integrand of the function μ(x). Now refer to Figure 3A and Figure 3B , Figure 3A is FIG. 300A of an example density function according to at least one embodiment of the present disclosure, Figure 3B is FIG. 300B of an example density function of Figure 3A adjusted to include artificial discontinuities according to at least one embodiment of the present invention. As Figure 3A shown, the function μ(x) can define a continuous integrand between the starting point and the ending point (0) and (L). However, multi-value sampling (e.g., using Cranley-Patterson rotation) may cause a discontinuity 302 to appear in the integration domain of the function μ(x) due to the difference between the values 304a and 304b. To illustrate the above, shifting a set of uniform samples by a random number x i modulo L is equivalent to shifting the integrand represented by equation (13)::
[0071] μ cp (s) = μ((x i + s) mod L) (13)
[0072] Through this transformation, the starting and ending points μ(0) and μ(L) are moved to the points xi, as represented by equation (14).
[0073]
[0074]
[0075] Thus, if the function μ(x) does have a bounded maximum slope, typically the shifted integrand being evaluated may not. Thus, while the Cranley-Patterson rotation using equidistant sampling can reduce the integration error as the square of the sample count, discontinuities (e.g., infinite slopes) will significantly reduce the convergence rate.
[0076] According to various aspects of the present disclosure, discontinuities (e.g., discontinuity 302) can be compensated for at least based on determining a version of the function μ(x), which includes aligning a first point and a second point of the function μ(x). A version of the function μ(x) can include, for example but not limited to, adding a step function μ(x) that linearly adjusts the function μ(x) to raise the first point and / or lower the second point to reduce or eliminate the discontinuity (e.g., to make the points match). In at least one embodiment, the discontinuity can be remedied by further rearranging the density using an affine control variable to match the discontinuous point. For example, a zero-mean affine control variable can be subtracted, as shown in equation (15):
[0077]
[0078] Using this method, samples can be applied to the adjusted version of the function μ(x) to produce an output that is adjusted to compensate for calibration and determine the transmittance. For example, mass can be added to the entire function to align it so that the integrals are the same. Similar methods can be used to move other locations of one or more discontinuities that may occur in other examples of the function μ(x).
[0079] Now refer to Figure 4A , which is FIG. 400A of an example density function μ(x) and a control variable according to at least one embodiment of the present disclosure. Figure 4B is FIG. 400B of the residuals of the density function μ(x) according to at least one embodiment of the present disclosure and Figure 4A the control variable. Figure 4C is FIG. 400C of an example version of the density function μ(x) according to at least one embodiment of the present disclosure, which uses Figure 4AThe control variables and the average value of the control variables are reshuffled. It can be seen that the reshuffled (and rotated in this example) version of the density function μ(x) does not include discontinuities (e.g., unbounded slopes), thus avoiding potential problems that may occur when generating samples from multiple values of the density function μ(x). It should be noted that the disclosed method can be used in other examples that do not necessarily generate samples from multiple sample values. For example, when sampling from the density function μ(x), regardless of whether the density function μ(x) is further reshuffled for another purpose, the disclosed method can generally reshuffle the density function μ(x) to account for one or more discontinuities, such as multi-valued sampling.
[0080] Pivot determination
[0081] As described herein, the pivot determiner 108 can determine a pivot or expansion point for a power series (e.g., Taylor series) used to calculate the transmittance. The closer the pivot is to the real integral of the function (x), the fewer terms the power series can converge with. This may be because different pivots correspond to different polynomial fits and result in different approximation errors, which are functions of the order N of the polynomial expansion of the power series. Different from arbitrarily or manually selecting a pivot, the pivot can be calculated at least partially based on a combination of function values. For example, the pivot can correspond to the average value or mean of the values of the function (x). When calculating the exponent of the integral of the function μ(x), the true mean may be the best possible pivot that sets the constant to the average value μ over the interval [a, b], such that the power series expansion can converge exactly, even at the zero order N = 0. However, knowing the true mean of μ may be equivalent to knowing the integral to be solved. Using the average value or mean of the values of the looked-up function μ(x) can be used as an approximation of the mean, which improves as the number of values increases and converges to the ideal result.
[0082] In at least one embodiment, the transmittance estimate is calculated from the power series expansion using one or more values for calculating the pivot. However, this may result in a biased estimate of the transmittance. For an unbiased estimate, the transmittance can be calculated using all different values of the function used to calculate the pivot. In at least one embodiment, a process similar to rotation (or using different possible orderings of the samples) can be used to effectively increase the total number of samples used to calculate the pivot, e.g., while maintaining an unbiased estimator. For example, consider adding a single sample to the original sample N used for estimation, where x is the entire sample set, then successively considering using each X i} of the sample X\{X i as the pivot for all N + 1 estimators obtained to construct a combined estimator and averaging the results (e.g., forming an average value) may be sufficient. The corresponding Nth-order unbiased estimator can have a shape represented by equation (16):
[0083]
[0084] where the function ∫ N is given by equation (17):
[0085]
[0086] where m k can be the k-th symmetric mean, and each X i is an independent and unbiased estimator of the integral of the function μ(x), and X - X p subtracts X from each element of the set p . Thus, instead of using a single sample as the pivot, the pivot can be evaluated for different orders of the samples.
[0087] Now referring to Figure 5 , each block of method 500 and the other methods described herein include computational processes that can be performed using any combination of hardware, firmware, and / or software. For example, the various functions can be performed by a processor executing instructions stored in a memory. The methods can also be implemented as computer-usable instructions stored on a computer storage medium. These methods can be provided by a stand-alone application, a service, or a hosted service (stand-alone or in combination with another hosted service) or a plug-in of another product. Additionally, as an example, these methods are described for the transmittance estimation system 100 for Figure 1 . However, these methods can additionally or alternatively be performed by any one system or any combination of systems, including but not limited to the systems described herein.
[0088] Figure 5 is a flowchart showing method 500 for calculating the transmittance using a power series expansion of the exponential integral of a function, in accordance with some embodiments of the present invention, where one term is evaluated as a combination of values of samples at different orders in the power series expansion. At block B502, method 500 includes determining samples of the function corresponding to a scene. For example, the transmittance determiner 104 can use the value determiner 106 to determine multiple samples X i of the function μ(x), which correspond to the particle density at the location in the scene 110.
[0089] At block B504, method 500 includes calculating the transmittance using a power series expansion of the exponential integral of the function, where at least one term of the power series expansion is evaluated as a combination of values of terms of samples at different orders in the power series expansion. For example, the transmittance determiner 104 can use the power series expansion of the exponential integral of the function μ(x) to calculate the transmittance through the location (e.g., using the combination estimator described herein), where at least one Y of the power series expansion is evaluated as coming from multiple samples X iCombinations of values of terms of samples in different orders.
[0090] In block B506, method 500 includes generating a scene rendering using transmittance. For example, image renderer 102 can render scene 110 using transmittance.
[0091] Figure 6 is a flowchart according to some embodiments of the present invention, showing a method 600 for calculating transmittance using a power series expansion of the exponential integral of a function, where terms are evaluated using samples determined from combinations of values of the function. At block B602, method 600 includes determining samples of the function corresponding to the scene from combinations of values along an interval of the function. For example, transmittance determiner 104 can use value determiner 106 to determine a plurality of samples Xi of function μ(x), where function μ(x) corresponds to the particle density at a location in scene 110. At least one sample Xi can be calculated from a plurality of values of function μ(x). i , for example, using equally spaced intervals determined by the Cranley-Patterson rotation of function μ(x). i
[0092] At block B604, method 600 includes calculating transmittance using a power series expansion of the exponential integral of the function, where for at least one term of the power series expansion, the value of the term is calculated from the samples. For example, transmittance determiner 104 can use a power series expansion of the exponential integral of function μ(x), where for at least one term Y of the power series expansion, the value of the term is calculated from the samples. In at least one embodiment, control variables can be used to adjust the function to account for discontinuities that may be caused by rotating or otherwise reordering function μ(x).
[0093] At block B606, method 600 includes generating a scene rendering using transmittance. For example, image renderer 102 can render scene 110 using transmittance.
[0094] Figure 7 is a flowchart showing a method 700 for calculating transmittance using a power series of the exponential integral of a function according to some embodiments of the present invention, where the power series is expanded using a pivot determined from function values. At block B702, method 700 includes determining a pivot of a power series expansion of the exponential integral of the function corresponding to the scene based at least on a combination of function values. For example, transmittance determiner 104 can use pivot determiner 108 to determine a pivot of a power series of the exponential integral of function μ(x) based at least on a combination of function values, where the function corresponds to the particle density at a location in scene 110.
[0095] Method 700 includes, at block B704, determining a power series expansion corresponding to a function based at least on expanding a power series at a pivot. For example, the transmittance determiner 104 may determine a power series expansion corresponding to the function μ(x) based at least on expanding a power series at a pivot.
[0096] At block B706, method 700 includes calculating a transmittance using the power series expansion corresponding to the function. For example, the transmittance determiner 104 may calculate the transmittance through a position using the power series expansion corresponding to the function μ(x).
[0097] At block B708, method 700 includes generating a scene rendering using the transmittance. For example, the image renderer 102 may render the scene 110 using the transmittance.
[0098] Example computing device
[0099] Figure 8 is a block diagram of an example computing device 800 suitable for implementing some embodiments of the present disclosure. The computing device 800 may include an interconnect system 802 that directly or indirectly couples the following devices: a memory 804, one or more central processing units (CPUs) 806, one or more graphics processing units (GPUs) 808, a communication interface 810, input / output (I / O) ports 812, input / output components 814, a power supply 816, one or more presentation components 818 (e.g., a display), and one or more logic units 820. In at least one embodiment, the computing device 800 may include one or more virtual machines (VMs), and / or any of its components may include virtual components (e.g., virtual hardware components). For non-limiting examples, one or more of the GPUs 808 may include one or more vGPUs, one or more of the CPUs 806 may include one or more vCPUs, and / or one or more of the logic units 820 may include one or more virtual logic units. Thus, the computing device 800 may include discrete components (e.g., a complete GPU dedicated to the computing device 800), virtual components (e.g., a portion of a GPU dedicated to the computing device 800), or a combination thereof.
[0100] Although Figure 8 the respective blocks in are shown as being connected by lines to the interconnect system 802, this is not intended to be limiting and is for clarity only. For example, in some embodiments, a presentation component 818 such as a display device may be considered an I / O component 814 (e.g., if the display is a touchscreen). As another example, the CPU 806 and / or the GPU 808 may include memory (e.g., in addition to the memory of the GPU 808, CPU 806, and / or other components, the memory 804 may represent a storage device). In other words, Figure 8The computing devices described are merely illustrative. There is no distinction made between "workstations", "servers", "laptop computers", "desktop computers", "tablet computers", "client devices", "mobile devices", "handheld devices", "gaming consoles", "electronic control units (ECUs)", "virtual reality systems", and / or other device or system types, as contemplated within the scope of Figure 8 the computing devices.
[0101] The interconnect system 802 can represent one or more links or buses, such as an address bus, a data bus, a control bus, or a combination thereof. The interconnect system 802 can include one or more bus or link types, such as an Industry Standard Architecture (ISA) bus, an Extended Industry Standard Architecture (EISA) bus, a Video Electronics Standards Association (VESA) bus, a Peripheral Component Interconnect (PCI) bus, a Peripheral Component Interconnect Express (PCIe) bus, and / or other types of buses or links. In some embodiments, there are direct connections between components. For example, the CPU 806 can be directly connected to the memory 804. Additionally, the CPU 806 can be directly connected to the GPU 808. In cases where there are direct or point-to-point connections between components, the interconnect system 802 can include PCIe links for implementing the connections. In these examples, a PCI bus need not be included in the computing device 800.
[0102] The memory 804 can include any of a variety of computer-readable media. The computer-readable media can be any available media that can be accessed by the computing device 800. The computer-readable media can include volatile and non-volatile media, as well as removable and non-removable media. By way of example and not limitation, the computer-readable media can include computer storage media and communication media.
[0103] Computer storage media can include volatile and non-volatile media and / or removable and non-removable media implemented in any method or technology for storing information such as computer-readable instructions, data structures, program modules, and / or other data types. For example, the memory 804 can store computer-readable instructions (e.g., instructions representing programs and / or program elements), such as an operating system. Computer storage media can include, but are not limited to, RAM, ROM, EEPROM, flash memory or other storage technologies, CD-ROM, digital versatile disks (DVDs) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and that can be accessed by the computing device 800. As used herein, computer storage media does not itself include signals.
[0104] A computer storage medium can embody computer-readable instructions, data structures, program modules, and / or other data types in a modulated data signal, such as a carrier wave or other transmission mechanism, and includes any information delivery medium. The term "modulated data signal" can refer to a signal that sets or changes one or more of its characteristics in a manner that encodes information in the signal. By way of example and not limitation, computer storage media can include wired media, such as a wired network or direct wired connection, and wireless media, such as acoustic, RF, infrared, and other wireless media. Any combination of the foregoing should also be included within the scope of computer-readable media.
[0105] The CPU 806 can be configured to execute at least some computer-readable instructions to control one or more components of the computing device 800 to perform one or more of the methods and / or processes described herein. Each of the CPUs 806 can include one or more cores (e.g., one, two, four, eight, twenty-eight, seventy-two, etc.) capable of simultaneously processing multiple software threads. The CPU 806 can include any type of processor and can include different types of processors depending on the type of computing device 800 being implemented (e.g., a processor with fewer cores for a mobile device and a processor with more cores for a server). For example, depending on the type of computing device 800, the processor can be an Advanced RISC Machine (ARM) processor implemented using Reduced Instruction Set Computing (RISC) or an x86 processor implemented using Complex Instruction Set Computing (CISC). In addition to one or more microprocessors or supplementary co-processors (such as a math co-processor), the computing device 800 can also include one or more CPUs 806.
[0106] In addition to, or alternatively from, the CPU 806, the GPU 808 can be configured to execute at least some of the computer-readable instructions to control one or more components of the computing device 800 to perform one or more of the methods and / or processes described herein. One or more GPUs 808 can be an integrated GPU (e.g., having one or more CPUs 806 and / or one or more GPUs 808 can be a discrete GPU). In an embodiment, one or more GPUs 808 can be a coprocessor of one or more CPUs 806. The computing device 800 can use the GPU 808 to render graphics (e.g., 3D graphics) or perform general-purpose computing. For example, the GPU 808 can be used for general-purpose computing on the GPU (GPGPU). The GPU 808 can include hundreds or thousands of cores that are capable of processing hundreds or thousands of software threads 808 simultaneously. The GPU 808 can generate pixel data for an output image in response to a rendering command (e.g., received from the CPU 806 via a host interface). The GPU 808 can include graphics memory, such as display memory, for storing pixel data or any other suitable data, such as GPGPU data. The display memory can be included as part of the memory 804. The GPU 808 can include two or more GPUs that work in parallel (e.g., via a link). The link can directly connect the GPUs (e.g., using NVLINK) or can connect the GPUs through a switch (e.g., using NVSwitch). When combined, each GPU 808 can generate pixel data or GPGPU data for different parts of the output or different outputs (e.g., a first GPU for a first image and a second GPU for a second image). Each GPU can include its own memory or can share memory with other GPUs.
[0107] In addition to, or selected from, the CPU 806 and / or the GPU 808, the logic unit 820 can be configured to execute at least some of the computer-readable instructions to control one or more components of the computing device 800 to perform one or more of the methods and / or processes described herein. In an embodiment, the CPU 806, the GPU 808, and / or the logic unit 820 can perform any combination of methods, processes, and / or portions thereof discretely or jointly. One or more logic units 820 can be part of and / or integrated in the CPU 806 and / or the GPU and / or one or more logic units 820 can be discrete components or external to the CPU 806 and / or the GPU 808. In an embodiment, one or more logic units 820 can be a coprocessor of one or more CPUs 806 and / or one or more GPUs 808.
[0108] Examples of the logic unit 820 include one or more processing cores and / or their components, such as tensor cores (TCs), tensor processing units (TPUs), data processing units (DPUs), pixel vision cores (PVCs), vision processing units (VPUs), graphics processing clusters (GPCs), texture processing clusters (TPCs), streaming multiprocessors (SMs), tree traversal units (TTUs), artificial intelligence accelerators (AIAs), deep learning accelerators (DLAs), arithmetic logic units
[0109] (ALUs), application specific integrated circuits (ASICs), floating point units (FPUs), input / output (I / O) elements, peripheral component interconnect (PCI) or peripheral component interconnect express (PCIe) elements, etc.
[0110] The communication interface 810 may include one or more receivers, transmitters, and / or transceivers that enable the computing device 800 to communicate with other computing devices via an electronic communication network including wired and / or wireless communication. The communication interface 810 may include components and functionality to support communication over any of a plurality of different networks, such as wireless networks (e.g., Wi-Fi, Z-Wave, Bluetooth, Bluetooth LE, ZigBee, etc.), wired networks (e.g., communicating via Ethernet or InfiniBand), low power wide area networks (such as LoRaWAN, SigFox, etc.), and / or the Internet.
[0111] The I / O port 812 can logically couple the computing device 800 with other devices, including the I / O component 814, the presentation component 818, and / or other components, some of which may be built into (e.g., integrated into) the computing device 800. Illustrative I / O components 814 include microphones, mice, keyboards, joysticks, game pads, game controllers, satellite dishes, scanners, printers, wireless devices, etc. The I / O component 814 can provide a natural user interface (NUI) that processes air gestures, sounds, or other physiological inputs generated by the user. In some instances, the input can be transmitted to an appropriate network element for further processing. The NUI can implement any combination of speech recognition, stylus recognition, face recognition, biometrics, on-screen and near-screen gesture recognition, air gestures, head and eye tracking, and touch recognition associated with the display of the computing device 800 (described in more detail below). The computing device 800 can include a depth camera, such as a stereo camera system, an infrared camera system, an RGB camera system, touch screen technology, and combinations of these technologies, for gesture detection and recognition. Additionally, the computing device 800 can include an accelerometer or gyroscope capable of detecting motion (e.g., as part of an inertial measurement unit (IMU)). In some examples, the computing device 800 can use the output of the accelerometer or gyroscope to render immersive augmented reality or virtual reality.
[0112] The power supply 816 can include a hard-wired power supply, a battery power supply, or a combination thereof. The power supply 816 can power the computing device 800 to enable the components of the computing device 800 to operate.
[0113] The presentation component 818 can include a display (e.g., a monitor, a touch screen, a television screen, a head-up display (HUD), other display types, or a combination thereof), speakers, and / or other presentation components. The presentation component 818 can receive data from other components (e.g., the GPU 808, the CPU 806, etc.) and output the data (e.g., as images, videos, sounds, etc.).
[0114] Example data center
[0115] Figure 9 An example data center 900 that can be used in at least one embodiment of the present disclosure is shown. The data center 900 can include a data center infrastructure layer 910, a framework layer 920, a software layer 930, and / or an application layer 940.
[0116] As Figure 9As shown, the data center infrastructure layer 910 may include a resource coordinator 912, grouped computing resources 914, and node computing resources (“node C.R”) 916(1)-916(N), where “N” represents any positive integer. In at least one embodiment, the node C.R 916(1)-916(N) may include, but is not limited to, any number of central processing units (“CPU”), any number of data processing units (“DPU”), or other processors (including accelerators, field programmable gate arrays (FPGA), graphics processors or graphics processing units (GPU), etc.), memory devices (e.g., dynamic read-only memory), storage devices (e.g., solid-state or disk drives), network input / output (“NW I / O”) devices, network switches, virtual machines (“VM”), power modules, and / or cooling modules, etc. In some embodiments, one or more of the node C.R. 916(1)-916(N) may correspond to a server having one or more of the above computing resources. Additionally, in some embodiments, the node C.R. 916(1)-9161(N) may include one or more virtual components, such as vGPU, vCPU, and / or the like, and / or one or more of the node C.R 916(1)-916(N) may correspond to a virtual machine (VM).
[0117] In at least one embodiment, the grouped computing resources 914 may include separate groupings of node C.R 916 located within one or more racks (not shown), or multiple racks within a data center located at different geographical locations (also not shown). A separate grouping of node C.R 916 within the grouped computing resources 914 may include grouped computing, network, storage, or storage resources, which may be configured or allocated to support one or more workloads. In at least one embodiment, multiple node C.R.s 916 including CPUs, DPUs, GPUs, and / or other processors may be grouped within one or more racks to provide computing resources to support one or more workloads. One or more racks may also include any number of power modules, cooling modules, and / or network switches (in any combination).
[0118] The resource coordinator 922 may configure or otherwise control one or more of the node C.R 916(1)-916(N) and / or the grouped computing resources 914. In at least one embodiment, the resource coordinator 922 may include a software design infrastructure (“SDI”) management entity of the data center 900. The resource coordinator 922 may include hardware, software, or some combination thereof.
[0119] In at least one embodiment, as Figure 9As shown, the framework layer 920 may include a job scheduler 944, a configuration manager 934, a resource manager 936, and / or a distributed file system 938. The framework layer 920 may include a framework for the software 932 that supports the software layer 930 and / or one or more applications 942 of the application layer 940. The software 932 or the application 942 may respectively include web-based service software or applications, such as the service software or applications provided by Amazon web Services, Google Cloud, and Microsoft Azure. The framework layer 920 may be (but is not limited to) a free and open-source software web application framework, such as Apache Spark TM (hereinafter referred to as "Spark"), which can utilize the distributed file system 938 for large-scale data processing (e.g., "big data"). In at least one embodiment, the job scheduler 944 may include a Spark driver to facilitate the scheduling of the workloads supported by the various layers of the data center 900. The configuration manager 934 may be able to configure different layers, such as the software layer 930 and the framework layer 920, including Spark and the distributed file system 938, to support large-scale data processing. The resource manager 936 may be able to manage the cluster or grouped computing resources mapped to or allocated for supporting the distributed file system 938 and the job scheduler 944. In at least one embodiment, the cluster or grouped computing resources may include the grouped computing resources 914 at the data center infrastructure layer 910. The resource manager 936 may coordinate with the resource coordinator 912 to manage these mapped or allocated computing resources.
[0120] In at least one embodiment, the software 932 included in the software layer 930 may include software used by at least a portion of the nodes C.R 916(1)-916(N), the grouped computing resources 914, and / or the distributed file system 938 of the framework layer 920. One or more types of software may include but are not limited to Internet web search software, email virus scanning software, database software, and streaming video content software.
[0121] In at least one embodiment, the applications 942 included in the application layer 940 may include one or more types of applications used by at least a portion of the nodes C.R 916(1)-916(N), the grouped computing resources 914, and / or the distributed file system 938 of the framework layer 920. One or more types of applications may include but are not limited to any number of genomics applications, cognitive computing, and machine learning applications, including training or inference software, machine learning framework software (e.g., PyTorch, TensorFlow, Caffe, etc.), and / or other machine learning applications used in conjunction with one or more embodiments.
[0122] In at least one embodiment, any one of the configuration manager 934, the resource manager 936, and the resource coordinator 912 can perform any number and type of self-modifying actions based on any amount and type of data obtained in any technically feasible manner. The self-modifying actions can save the data center operator of the data center 900 from making potentially incorrect configuration decisions and may avoid underutilized and / or poorly performing portions of the data center.
[0123] According to one or more embodiments described herein, the data center 900 can include tools, services, software, or other resources for training one or more machine learning models or using one or more machine learning models to predict or infer information. For example, a machine learning model can be trained by calculating weight parameters according to a neural network architecture by using the software and / or computing resources of the data center 900 described above. In at least one embodiment, a trained or deployed machine learning model corresponding to one or more neural networks can be used to infer or predict information by using the weight parameters calculated by one or more training techniques and using the resources of the data center 900 described above, such as but not limited to those described herein.
[0124] In at least one embodiment, the data center 900 can use a CPU, an application-specific integrated circuit (ASIC), a GPU, an FPGA, and / or other hardware (or corresponding virtual computing resources) to perform training and / or inference by using the resources described above. In addition, the one or more software and / or hardware resources described above can be configured as services to allow users to train or perform information inference, such as image recognition, speech recognition, or other artificial intelligence services.
[0125] Example Network Environment
[0126] A network environment suitable for implementing the embodiments of the present invention can include one or more client devices, servers, network-attached storage (NAS), other backend devices, and / or other device types. The client devices, servers, and / or other device types (e.g., each device) can be implemented on one or more instances of the Figure 8 computing device 800 - for example, each device can include similar components, features, and / or functions of the computing device 800. In addition, in the case of implementing a backend device (e.g., a server, NAS, etc.), the backend device can be included as part of the data center 900, and an example of the data center 900 is described in more detail herein with reference to Figure 9 more details.
[0127] Components of a network environment can communicate with each other via wired, wireless, or both networks. The network can include multiple networks, or a network of networks. For example, the network can include one or more wide area networks (WANs), one or more local area networks (LANs), one or more public networks (such as the Internet and / or the Public Switched Telephone Network (PSTN)), and / or one or more private networks. In the case where the network includes a wireless telecommunications network, components such as base stations, communication towers, or even access points (and other components) can provide wireless connectivity.
[0128] Compatible network environments can include one or more peer-to-peer network environments—in which case, servers may not be included in the network environment—and one or more client-server network environments—in which case, one or more servers may be included in the network environment. In a peer-to-peer network environment, the functions described herein with respect to servers can be implemented on any number of client devices.
[0129] In at least one embodiment, the network environment can include one or more cloud-based network environments, distributed computing environments, combinations thereof, and the like. A cloud-based network environment can include a framework layer, a job scheduler, a resource manager, and a distributed file system implemented on one or more servers, which can include one or more core network servers and / or edge servers. The framework layer can include a framework that supports software layers and / or one or more applications of an application layer. The software or application can respectively include web-based service software or applications. In an embodiment, one or more client devices can use web-based service software or applications (e.g., by accessing the service software and / or applications via one or more application programming interfaces (APIs)). The framework layer can be, but is not limited to, a free and open-source software web application framework, for example, which can use a distributed file system for large-scale data processing (e.g., “big data”).
[0130] A cloud-based network environment can provide any combination of cloud computing and / or cloud storage for performing the computing and / or data storage functions (or one or more parts thereof) described herein. Any of these various functions can be distributed from a central or core server (e.g., a server in one or more data centers), which can be distributed across a state, a region, a country, globally, and the like, to multiple locations. If the connection to a user (e.g., a client device) is relatively close to an edge server, the core server can assign at least a portion of the function to the edge server. A cloud-based network environment can be private (e.g., limited to a single organization), public (e.g., available to many organizations), and / or a combination thereof (e.g., a hybrid cloud environment).
[0131] A client device may include at least some components, features, and functions of the example computing device 800 described herein Figure 8 As an example and not a limitation, a client device may be implemented as a personal computer (PC), laptop computer, mobile device, smartphone, tablet computer, smartwatch, wearable computer, personal digital assistant (PDA), MP3 player, virtual reality headset, global positioning system (GPS) or device, video player, camera, surveillance device or system, vehicle, boat, airship, virtual machine, drone, robot, handheld communication device, hospital device, gaming device or system, entertainment system, vehicle computer system, embedded system controller, remote control, device, consumer electronic device, workstation, edge device, any combination of these delineated devices, or any other suitable device.
[0132] The present invention may be described in the general context of computer code or machine - usable instructions, including computer - executable instructions, such as program modules, executed by a computer or other machine, such as a personal data assistant or other handheld device. Generally, program modules include routines, programs, objects, components, data structures, etc., which refer to code that performs a particular task or implements a particular abstract data type. The present disclosure may be implemented in a variety of system configurations, including handheld devices, consumer electronics, general - purpose computers, more specialized computing devices, etc. The present disclosure may also be implemented in a distributed computing environment where tasks are performed by remote processing devices linked through a communication network.
[0133] As used herein, the recitation of "and / or" with respect to two or more elements should be interpreted to mean only one element or a combination of elements. For example, "element A, element B, and / or element C" may include only element A, element B, element C, element A and element B, element A and element C, element B and element C, or element A, element B, and element C. Further, "at least one of element A or element B" may include at least one of element A, at least one of element B, or at least one of element A and at least one of element B. Additionally, "at least one of element A and element B" may include at least one of element A, at least one of element B, or at least one of element A and at least one of element B.
[0134] To meet statutory requirements, the subject matter of this disclosure has been described in detail herein. However, the description itself is not intended to limit the scope of the disclosure. On the contrary, the inventors have contemplated that the claimed subject matter might be embodied in other ways, including different steps or combinations of steps similar to the ones described in this document, as well as other present or future technologies. Additionally, although the terms "step" and / or "block" may be used herein to imply different elements of a method employed, the terms should not be construed as implying any particular order among the various steps disclosed herein unless the order of individual steps is explicitly described.
Claims
1. A method, comprising: Determining samples of a function corresponding to a particle density in a three-dimensional (3D) scene; Calculating a transmittance corresponding to a partial visibility of the particles using a power series expansion associated with the function, wherein at least one value of the terms of the power series expansion is calculated using a combination of values corresponding to different orderings of the samples in the terms of the power series expansion; And Generating a rendering of the 3D scene using the transmittance.
2. The method according to claim 1, wherein the terms are calculated using an average value of the samples.
3. The method according to claim 1, wherein, For each of a plurality of terms of the power series expansion, the term is calculated as a combination of values of the term for different sets of the samples.
4. The method according to claim 1, wherein the transmittance corresponds to a combination of solutions of the power series expansion, the combination of solutions taking into account each potential ordering of the samples in the power series expansion.
5. The method according to claim 1, wherein values of the terms of the power series expansion are calculated using elementary symmetric sums of the samples.
6. The method according to claim 1, wherein the different orderings are in a portion of the terms calculating a product of the samples.
7. The method according to claim 1, wherein the calculation of the transmittance is from a plurality of terms of the power series expansion, and the plurality of terms are evaluated based at least on applying the samples to the power series expansion using each possible permutation of the order of the samples.
8. The method according to claim 1, wherein the calculation of the transmittance is from a plurality of terms of the power series expansion, and the plurality of terms are evaluated based at least on applying the samples to the power series expansion while shifting one or more orders of the samples in the power series expansion.
9. The method according to claim 1, wherein each ordering of the different orderings corresponds to an exclusive assignment of the samples for a portion of the terms.
10. A system, comprising: One or more processing units configured to perform operations including: Determining samples of a function corresponding to a particle density in a three-dimensional (3D) scene using a statistical combination of values spaced apart at one or more intervals along the function; Calculating a transmittance using a power series expansion associated with the function, wherein the power series expansion is calculated based on the samples; And Generating a rendering of the 3D scene using the transmittance, wherein the transmittance corresponds to a partial visibility of one or more particles in the 3D scene.
11. The system according to claim 10, wherein the combination includes an average value of the values.
12. The system according to claim 10, wherein the samples correspond to optical thickness and the values correspond to extinction coefficients along the function.
13. The system according to claim 10, wherein the result of the function is calculated based at least on: Determining a version of the function including an alignment of a first point and a second point of the function; and Apply the sample to the version of the function to produce an output of the version of the function, wherein the transmittance is at least based on adjusting the output to compensate for the alignment.
14. The system according to claim 10, wherein the terms in the power series expansion are calculated based on one or more values of the terms for one or more different orderings of one or more samples of the function in the power series expansion.
15. The system according to claim 10, wherein the system is included in at least one of the following: A system for performing simulation operations; A system for performing deep learning operations; A system implemented using an edge device; A system that combines one or more virtual machines VM; A system at least partially implemented in a data center; or A system at least partially implemented using cloud computing resources.
16. A processor, comprising one or more circuits for: Determine a pivot of a power series associated with the function, at least based on a combination of values of the function, the function corresponding to a particle density in a three-dimensional 3D scene; Determine a power series expansion at least based on expanding the power series at the pivot; Calculate a transmittance using the power series expansion, the transmittance corresponding to a partial visibility of one or more particles in the 3D scene; and Generate a rendering of the 3D scene using the transmittance.
17. The processor according to claim 16, wherein the transmittance is calculated using all different values of the function used to determine the pivot.
18. The processor according to claim 16, wherein the transmittance is calculated using at least one of the values used to determine the pivot.
19. The processor according to claim 16, wherein the combination includes an average value of the values.
20. The processor according to claim 16, wherein the transmittance passes through one or more of clouds, haze, smoke, fog, rain, or snow in the 3D scene.
Citation Information
Patent Citations
Computationally Efficient Volume Rendering in Computer-Generated Graphics
US20180114355A1