Eevee: Fix volume rendering glitches.
The bug was due to the Halton function returning uninitialized value for 0 iteration.
This commit is contained in:
parent
aa07660201
commit
cfba75a21a
|
@ -386,6 +386,8 @@ void BLI_halton_1D(unsigned int prime, double offset, int n, double *r)
|
|||
{
|
||||
const double invprime = 1.0 / (double)prime;
|
||||
|
||||
*r = 0.0;
|
||||
|
||||
for (int s = 0; s < n; s++) {
|
||||
*r = halton_ex(invprime, &offset);
|
||||
}
|
||||
|
@ -395,6 +397,8 @@ void BLI_halton_2D(unsigned int prime[2], double offset[2], int n, double *r)
|
|||
{
|
||||
const double invprimes[2] = {1.0 / (double)prime[0], 1.0 / (double)prime[1]};
|
||||
|
||||
r[0] = r[1] = 0.0;
|
||||
|
||||
for (int s = 0; s < n; s++) {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
r[i] = halton_ex(invprimes[i], &offset[i]);
|
||||
|
@ -406,6 +410,8 @@ void BLI_halton_3D(unsigned int prime[3], double offset[3], int n, double *r)
|
|||
{
|
||||
const double invprimes[3] = {1.0 / (double)prime[0], 1.0 / (double)prime[1], 1.0 / (double)prime[2]};
|
||||
|
||||
r[0] = r[1] = r[2] = 0.0;
|
||||
|
||||
for (int s = 0; s < n; s++) {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
r[i] = halton_ex(invprimes[i], &offset[i]);
|
||||
|
|
Loading…
Reference in New Issue