提交 30f4c9d0 编写于 作者: M Matt Pharr

clang-format run in wavefront/

上级 bd0e8574
......@@ -597,9 +597,8 @@ void WavefrontPathIntegrator::HandleEscapedRays() {
L[2], L[3], w.beta[0], w.beta[1], w.beta[2], w.beta[3],
Le[0], Le[1], Le[2], Le[3]);
PBRT_DBG("pdf uni %f %f %f %f pdf nee %f %f %f %f", w.inv_w_u[0],
w.inv_w_u[1], w.inv_w_u[2], w.inv_w_u[3],
w.inv_w_l[0], w.inv_w_l[1], w.inv_w_l[2],
w.inv_w_l[3]);
w.inv_w_u[1], w.inv_w_u[2], w.inv_w_u[3], w.inv_w_l[0],
w.inv_w_l[1], w.inv_w_l[2], w.inv_w_l[3]);
if (w.depth == 0 || w.specularBounce) {
L += w.beta * Le / w.inv_w_u.Average();
......@@ -607,8 +606,8 @@ void WavefrontPathIntegrator::HandleEscapedRays() {
// Compute MIS-weighted radiance contribution from infinite light
LightSampleContext ctx = w.prevIntrCtx;
Float lightChoicePDF = lightSampler.PMF(ctx, light);
SampledSpectrum inv_w_l = w.inv_w_l * lightChoicePDF *
light.PDF_Li(ctx, w.rayd, true);
SampledSpectrum inv_w_l =
w.inv_w_l * lightChoicePDF * light.PDF_Li(ctx, w.rayd, true);
L += w.beta * Le / (w.inv_w_u + inv_w_l).Average();
}
}
......
......@@ -38,9 +38,9 @@ inline PBRT_CPU_GPU void RecordShadowRayResult(const ShadowRayWorkItem w,
SampledSpectrum Ld = w.Ld / (w.inv_w_u + w.inv_w_l).Average();
PBRT_DBG("Unoccluded shadow ray. Final Ld %f %f %f %f "
"(sr.Ld %f %f %f %f inv_w_u %f %f %f %f inv_w_l %f %f %f %f)\n",
Ld[0], Ld[1], Ld[2], Ld[3], w.Ld[0], w.Ld[1], w.Ld[2], w.Ld[3],
w.inv_w_u[0], w.inv_w_u[1], w.inv_w_u[2], w.inv_w_u[3],
w.inv_w_l[0], w.inv_w_l[1], w.inv_w_l[2], w.inv_w_l[3]);
Ld[0], Ld[1], Ld[2], Ld[3], w.Ld[0], w.Ld[1], w.Ld[2], w.Ld[3], w.inv_w_u[0],
w.inv_w_u[1], w.inv_w_u[2], w.inv_w_u[3], w.inv_w_l[0], w.inv_w_l[1],
w.inv_w_l[2], w.inv_w_l[3]);
SampledSpectrum Lpixel = pixelSampleState->L[w.pixelIndex];
pixelSampleState->L[w.pixelIndex] = Lpixel + Ld;
......@@ -101,10 +101,9 @@ inline PBRT_CPU_GPU void EnqueueWorkAfterIntersection(
PBRT_DBG("Enqueuing into medium transition queue: pixel index %d \n",
r.pixelIndex);
Ray newRay = intr.SpawnRay(r.ray.d);
nextRayQueue->PushIndirectRay(newRay, r.depth, r.prevIntrCtx, r.beta,
r.inv_w_u, r.inv_w_l, r.lambda, r.etaScale,
r.specularBounce, r.anyNonSpecularBounces,
r.pixelIndex);
nextRayQueue->PushIndirectRay(newRay, r.depth, r.prevIntrCtx, r.beta, r.inv_w_u,
r.inv_w_l, r.lambda, r.etaScale, r.specularBounce,
r.anyNonSpecularBounces, r.pixelIndex);
return;
}
......@@ -113,10 +112,9 @@ inline PBRT_CPU_GPU void EnqueueWorkAfterIntersection(
r.pixelIndex);
Ray ray = r.ray;
// TODO: intr.wo == -ray.d?
hitAreaLightQueue->Push(
HitAreaLightWorkItem{intr.areaLight, intr.p(), intr.n, intr.uv, intr.wo,
r.lambda, r.depth, r.beta, r.inv_w_u, r.inv_w_l,
r.prevIntrCtx, (int)r.specularBounce, r.pixelIndex});
hitAreaLightQueue->Push(HitAreaLightWorkItem{
intr.areaLight, intr.p(), intr.n, intr.uv, intr.wo, r.lambda, r.depth, r.beta,
r.inv_w_u, r.inv_w_l, r.prevIntrCtx, (int)r.specularBounce, r.pixelIndex});
}
FloatTexture displacement = material.GetDisplacement();
......@@ -232,8 +230,8 @@ inline PBRT_CPU_GPU void TraceTransmittance(ShadowRayWorkItem sr,
PBRT_DBG("T_ray %f %f %f %f inv_w_l %f %f %f %f inv_w_u %f "
"%f %f %f\n",
T_ray[0], T_ray[1], T_ray[2], T_ray[3], inv_w_l[0],
inv_w_l[1], inv_w_l[2], inv_w_l[3],
inv_w_u[0], inv_w_u[1], inv_w_u[2], inv_w_u[3]);
inv_w_l[1], inv_w_l[2], inv_w_l[3], inv_w_u[0], inv_w_u[1],
inv_w_u[2], inv_w_u[3]);
if (!T_ray)
return false;
......@@ -255,27 +253,21 @@ inline PBRT_CPU_GPU void TraceTransmittance(ShadowRayWorkItem sr,
PBRT_DBG("Final T_ray %.9g %.9g %.9g %.9g sr.inv_w_u %.9g %.9g %.9g %.9g "
"inv_w_u %.9g %.9g %.9g %.9g\n",
T_ray[0], T_ray[1], T_ray[2], T_ray[3], sr.inv_w_u[0], sr.inv_w_u[1],
sr.inv_w_u[2], sr.inv_w_u[3], inv_w_u[0], inv_w_u[1],
inv_w_u[2], inv_w_u[3]);
sr.inv_w_u[2], sr.inv_w_u[3], inv_w_u[0], inv_w_u[1], inv_w_u[2],
inv_w_u[3]);
PBRT_DBG("sr.inv_w_l %.9g %.9g %.9g %.9g inv_w_l %.9g %.9g %.9g %.9g\n",
sr.inv_w_l[0], sr.inv_w_l[1], sr.inv_w_l[2],
sr.inv_w_l[3], inv_w_l[0], inv_w_l[1], inv_w_l[2],
inv_w_l[3]);
sr.inv_w_l[0], sr.inv_w_l[1], sr.inv_w_l[2], sr.inv_w_l[3], inv_w_l[0],
inv_w_l[1], inv_w_l[2], inv_w_l[3]);
PBRT_DBG("scaled throughput %.9g %.9g %.9g %.9g\n",
T_ray[0] /
(sr.inv_w_u * inv_w_u + sr.inv_w_l * inv_w_l).Average(),
T_ray[1] /
(sr.inv_w_u * inv_w_u + sr.inv_w_l * inv_w_l).Average(),
T_ray[2] /
(sr.inv_w_u * inv_w_u + sr.inv_w_l * inv_w_l).Average(),
T_ray[3] /
(sr.inv_w_u * inv_w_u + sr.inv_w_l * inv_w_l).Average());
T_ray[0] / (sr.inv_w_u * inv_w_u + sr.inv_w_l * inv_w_l).Average(),
T_ray[1] / (sr.inv_w_u * inv_w_u + sr.inv_w_l * inv_w_l).Average(),
T_ray[2] / (sr.inv_w_u * inv_w_u + sr.inv_w_l * inv_w_l).Average(),
T_ray[3] / (sr.inv_w_u * inv_w_u + sr.inv_w_l * inv_w_l).Average());
if (T_ray) {
// FIXME/reconcile: this takes inv_w_l as input while
// e.g. VolPathIntegrator::SampleLd() does not...
Ld *= T_ray /
(sr.inv_w_u * inv_w_u + sr.inv_w_l * inv_w_l).Average();
Ld *= T_ray / (sr.inv_w_u * inv_w_u + sr.inv_w_l * inv_w_l).Average();
PBRT_DBG("Setting final Ld for shadow ray pixel index %d = as %f %f %f %f\n",
sr.pixelIndex, Ld[0], Ld[1], Ld[2], Ld[3]);
......
......@@ -47,8 +47,8 @@ void WavefrontPathIntegrator::SampleMediumInteraction(int wavefrontDepth) {
PBRT_DBG("Medium sample beta %f %f %f %f inv_w_u %f %f %f %f "
"inv_w_l %f %f %f %f\n",
beta[0], beta[1], beta[2], beta[3], inv_w_u[0], inv_w_u[1],
inv_w_u[2], inv_w_u[3], inv_w_l[0], inv_w_l[1],
inv_w_l[2], inv_w_l[3]);
inv_w_u[2], inv_w_u[3], inv_w_l[0], inv_w_l[1], inv_w_l[2],
inv_w_l[3]);
// Sample the medium according to T_maj, the homogeneous
// transmission function based on the majorant.
......@@ -79,7 +79,7 @@ void WavefrontPathIntegrator::SampleMediumInteraction(int wavefrontDepth) {
// Update _L_ for medium emission
if (inv_w_e)
L += beta * mp.sigma_a * T_maj * mp.Le /
(pr * inv_w_e.Average());
(pr * inv_w_e.Average());
}
// Compute probabilities for each type of scattering.
......@@ -110,8 +110,8 @@ void WavefrontPathIntegrator::SampleMediumInteraction(int wavefrontDepth) {
using PhaseFunction = typename std::remove_const_t<
std::remove_reference_t<decltype(*ptr)>>;
mediumScatterQueue->Push(MediumScatterWorkItem<PhaseFunction>{
p, w.depth, lambda, beta, inv_w_u, ptr, -ray.d,
ray.time, w.etaScale, ray.medium, w.pixelIndex});
p, w.depth, lambda, beta, inv_w_u, ptr, -ray.d, ray.time,
w.etaScale, ray.medium, w.pixelIndex});
};
DCHECK_RARE(1e-6f, !beta);
if (beta && inv_w_u)
......@@ -146,8 +146,8 @@ void WavefrontPathIntegrator::SampleMediumInteraction(int wavefrontDepth) {
L[1], L[2], L[3], beta[0], beta[1], beta[2], beta[3]);
PBRT_DBG("Post ray medium sample inv_w_u %f %f %f %f inv_w_l %f %f "
"%f %f\n",
inv_w_u[0], inv_w_u[1], inv_w_u[2], inv_w_u[3],
inv_w_l[0], inv_w_l[1], inv_w_l[2], inv_w_l[3]);
inv_w_u[0], inv_w_u[1], inv_w_u[2], inv_w_u[3], inv_w_l[0],
inv_w_l[1], inv_w_l[2], inv_w_l[3]);
// Add any emission found to its pixel sample's L value.
if (L) {
......@@ -192,10 +192,9 @@ void WavefrontPathIntegrator::SampleMediumInteraction(int wavefrontDepth) {
Interaction intr(w.pi, w.n);
intr.mediumInterface = &w.mediumInterface;
Ray newRay = intr.SpawnRay(ray.d);
nextRayQueue->PushIndirectRay(newRay, w.depth, w.prevIntrCtx, beta,
inv_w_u, inv_w_l, lambda,
w.etaScale, w.specularBounce,
w.anyNonSpecularBounces, w.pixelIndex);
nextRayQueue->PushIndirectRay(
newRay, w.depth, w.prevIntrCtx, beta, inv_w_u, inv_w_l, lambda,
w.etaScale, w.specularBounce, w.anyNonSpecularBounces, w.pixelIndex);
return;
}
......@@ -204,10 +203,9 @@ void WavefrontPathIntegrator::SampleMediumInteraction(int wavefrontDepth) {
"Ray hit an area light: adding to hitAreaLightQueue pixel index %d "
"depth %d\n",
w.pixelIndex, w.depth);
hitAreaLightQueue->Push(
HitAreaLightWorkItem{w.areaLight, Point3f(w.pi), w.n, w.uv, -ray.d,
lambda, w.depth, beta, inv_w_u, inv_w_l,
w.prevIntrCtx, w.specularBounce, w.pixelIndex});
hitAreaLightQueue->Push(HitAreaLightWorkItem{
w.areaLight, Point3f(w.pi), w.n, w.uv, -ray.d, lambda, w.depth, beta,
inv_w_u, inv_w_l, w.prevIntrCtx, w.specularBounce, w.pixelIndex});
}
FloatTexture displacement = material.GetDisplacement();
......@@ -287,8 +285,8 @@ void WavefrontPathIntegrator::SampleMediumScattering(int wavefrontDepth) {
Vector3f wi = ls->wi;
SampledSpectrum beta = w.beta * w.phase->p(wo, wi);
PBRT_DBG("Phase phase beta %f %f %f %f\n", beta[0], beta[1],
beta[2], beta[3]);
PBRT_DBG("Phase phase beta %f %f %f %f\n", beta[0], beta[1], beta[2],
beta[3]);
// Compute PDFs for direct lighting MIS calculation.
Float lightPDF = ls->pdf * sampledLight->p;
......@@ -302,16 +300,15 @@ void WavefrontPathIntegrator::SampleMediumScattering(int wavefrontDepth) {
// Enqueue shadow ray
shadowRayQueue->Push(ShadowRayWorkItem{ray, 1 - ShadowEpsilon,
w.lambda, Ld, inv_w_u,
inv_w_l, w.pixelIndex});
w.lambda, Ld, inv_w_u, inv_w_l,
w.pixelIndex});
PBRT_DBG("Enqueued medium shadow ray depth %d "
"Ld %f %f %f %f inv_w_u %f %f %f %f "
"inv_w_l %f %f %f %f pixel index %d\n",
w.depth, Ld[0], Ld[1], Ld[2], Ld[3], inv_w_u[0],
inv_w_u[1], inv_w_u[2], inv_w_u[3], inv_w_l[0],
inv_w_l[1], inv_w_l[2], inv_w_l[3],
w.pixelIndex);
w.depth, Ld[0], Ld[1], Ld[2], Ld[3], inv_w_u[0], inv_w_u[1],
inv_w_u[2], inv_w_u[3], inv_w_l[0], inv_w_l[1], inv_w_l[2],
inv_w_l[3], w.pixelIndex);
}
}
......@@ -345,9 +342,9 @@ void WavefrontPathIntegrator::SampleMediumScattering(int wavefrontDepth) {
bool anyNonSpecularBounces = true;
// Spawn indirect ray.
nextRayQueue->PushIndirectRay(
ray, w.depth + 1, ctx, beta, inv_w_u, inv_w_l, w.lambda,
w.etaScale, specularBounce, anyNonSpecularBounces, w.pixelIndex);
nextRayQueue->PushIndirectRay(ray, w.depth + 1, ctx, beta, inv_w_u, inv_w_l,
w.lambda, w.etaScale, specularBounce,
anyNonSpecularBounces, w.pixelIndex);
PBRT_DBG("Enqueuing indirect medium ray at depth %d pixel index %d\n",
w.depth + 1, w.pixelIndex);
});
......
......@@ -38,9 +38,9 @@ void WavefrontPathIntegrator::SampleSubsurface(int wavefrontDepth) {
pstd::optional<BSSRDFProbeSegment> probeSeg = bssrdf.SampleSp(uc, u);
if (probeSeg)
subsurfaceScatterQueue->Push(
probeSeg->p0, probeSeg->p1, w.depth, material, bssrdf, lambda,
w.beta, w.inv_w_u, w.mediumInterface, w.etaScale, w.pixelIndex);
subsurfaceScatterQueue->Push(probeSeg->p0, probeSeg->p1, w.depth,
material, bssrdf, lambda, w.beta, w.inv_w_u,
w.mediumInterface, w.etaScale, w.pixelIndex);
});
aggregate->IntersectOneRandom(maxQueueSize, subsurfaceScatterQueue);
......@@ -84,7 +84,8 @@ void WavefrontPathIntegrator::SampleSubsurface(int wavefrontDepth) {
bsdf.Sample_f<ConcreteBxDF>(wo, uc, u);
if (bsdfSample) {
Vector3f wi = bsdfSample->wi;
SampledSpectrum beta = betap * bsdfSample->f * AbsDot(wi, intr.ns) / bsdfSample->pdf;
SampledSpectrum beta =
betap * bsdfSample->f * AbsDot(wi, intr.ns) / bsdfSample->pdf;
SampledSpectrum indir_inv_w_u = inv_w_u;
PBRT_DBG("%s f*cos[0] %f bsdfSample->pdf %f f*cos/pdf %f\n",
......@@ -127,9 +128,9 @@ void WavefrontPathIntegrator::SampleSubsurface(int wavefrontDepth) {
LightSampleContext ctx(intr.pi, intr.n, intr.ns);
nextRayQueue->PushIndirectRay(
ray, w.depth + 1, ctx, beta, indir_inv_w_u, inv_w_l,
lambda, etaScale, bsdfSample->IsSpecular(),
anyNonSpecularBounces, w.pixelIndex);
ray, w.depth + 1, ctx, beta, indir_inv_w_u, inv_w_l, lambda,
etaScale, bsdfSample->IsSpecular(), anyNonSpecularBounces,
w.pixelIndex);
PBRT_DBG("Spawned indirect ray at depth %d. "
"Specular %d T_Hat %f %f %f %f indir_inv_w_u %f %f %f "
......@@ -138,9 +139,8 @@ void WavefrontPathIntegrator::SampleSubsurface(int wavefrontDepth) {
"beta/indir_inv_w_u %f %f %f %f\n",
w.depth + 1, int(bsdfSample->IsSpecular()), beta[0],
beta[1], beta[2], beta[3], indir_inv_w_u[0],
indir_inv_w_u[1], indir_inv_w_u[2],
indir_inv_w_u[3], inv_w_l[0], inv_w_l[1],
inv_w_l[2], inv_w_l[3],
indir_inv_w_u[1], indir_inv_w_u[2], indir_inv_w_u[3],
inv_w_l[0], inv_w_l[1], inv_w_l[2], inv_w_l[3],
SafeDiv(beta, indir_inv_w_u)[0],
SafeDiv(beta, indir_inv_w_u)[1],
SafeDiv(beta, indir_inv_w_u)[2],
......@@ -173,8 +173,8 @@ void WavefrontPathIntegrator::SampleSubsurface(int wavefrontDepth) {
PBRT_DBG(
"depth %d beta %f %f %f %f f %f %f %f %f ls.L %f %f %f %f ls.pdf "
"%f\n",
w.depth, beta[0], beta[1], beta[2], beta[3], f[0], f[1], f[2],
f[3], ls->L[0], ls->L[1], ls->L[2], ls->L[3], ls->pdf);
w.depth, beta[0], beta[1], beta[2], beta[3], f[0], f[1], f[2], f[3],
ls->L[0], ls->L[1], ls->L[2], ls->L[3], ls->pdf);
Float lightPDF = ls->pdf * sampledLight->p;
// This causes inv_w_u to be zero for the shadow ray, so that
......@@ -186,15 +186,13 @@ void WavefrontPathIntegrator::SampleSubsurface(int wavefrontDepth) {
SampledSpectrum Ld = beta * ls->L;
PBRT_DBG(
"depth %d Ld %f %f %f %f "
"new beta %f %f %f %f beta/uni %f %f %f %f Ld/uni %f %f %f %f\n",
w.depth, Ld[0], Ld[1], Ld[2], Ld[3], beta[0], beta[1], beta[2],
beta[3], SafeDiv(beta, inv_w_u)[0],
SafeDiv(beta, inv_w_u)[1], SafeDiv(beta, inv_w_u)[2],
SafeDiv(beta, inv_w_u)[3], SafeDiv(Ld, inv_w_u)[0],
SafeDiv(Ld, inv_w_u)[1], SafeDiv(Ld, inv_w_u)[2],
SafeDiv(Ld, inv_w_u)[3]);
PBRT_DBG("depth %d Ld %f %f %f %f "
"new beta %f %f %f %f beta/uni %f %f %f %f Ld/uni %f %f %f %f\n",
w.depth, Ld[0], Ld[1], Ld[2], Ld[3], beta[0], beta[1], beta[2],
beta[3], SafeDiv(beta, inv_w_u)[0], SafeDiv(beta, inv_w_u)[1],
SafeDiv(beta, inv_w_u)[2], SafeDiv(beta, inv_w_u)[3],
SafeDiv(Ld, inv_w_u)[0], SafeDiv(Ld, inv_w_u)[1],
SafeDiv(Ld, inv_w_u)[2], SafeDiv(Ld, inv_w_u)[3]);
Ray ray = SpawnRayTo(intr.pi, intr.n, time, ls->pLight.pi, ls->pLight.n);
if (haveMedia)
......@@ -203,8 +201,7 @@ void WavefrontPathIntegrator::SampleSubsurface(int wavefrontDepth) {
: w.mediumInterface.inside;
shadowRayQueue->Push(ShadowRayWorkItem{ray, 1 - ShadowEpsilon, lambda, Ld,
inv_w_u, inv_w_l,
w.pixelIndex});
inv_w_u, inv_w_l, w.pixelIndex});
}
});
......
......@@ -166,7 +166,8 @@ void WavefrontPathIntegrator::EvaluateMaterialAndBSDF(MaterialEvalQueue *evalQue
if (bsdfSample) {
// Compute updated path throughput and PDFs and enqueue indirect ray
Vector3f wi = bsdfSample->wi;
SampledSpectrum beta = w.beta * bsdfSample->f * AbsDot(wi, ns) / bsdfSample->pdf;
SampledSpectrum beta =
w.beta * bsdfSample->f * AbsDot(wi, ns) / bsdfSample->pdf;
SampledSpectrum inv_w_u = w.inv_w_u, inv_w_l;
PBRT_DBG("%s f*cos[0] %f bsdfSample->pdf %f f*cos/pdf %f\n",
......@@ -220,18 +221,17 @@ void WavefrontPathIntegrator::EvaluateMaterialAndBSDF(MaterialEvalQueue *evalQue
// NOTE: slightly different than context below. Problem?
LightSampleContext ctx(w.pi, w.n, ns);
nextRayQueue->PushIndirectRay(
ray, w.depth + 1, ctx, beta, inv_w_u, inv_w_l,
lambda, etaScale, bsdfSample->IsSpecular(),
anyNonSpecularBounces, w.pixelIndex);
PBRT_DBG(
"Spawned indirect ray at depth %d from w.index %d. "
"Specular %d beta %f %f %f %f inv_w_u %f %f %f %f "
"inv_w_l %f %f %f %f\n",
w.depth + 1, w.pixelIndex, int(bsdfSample->IsSpecular()),
beta[0], beta[1], beta[2], beta[3], inv_w_u[0],
inv_w_u[1], inv_w_u[2], inv_w_u[3], inv_w_l[0],
inv_w_l[1], inv_w_l[2], inv_w_l[3]);
ray, w.depth + 1, ctx, beta, inv_w_u, inv_w_l, lambda,
etaScale, bsdfSample->IsSpecular(), anyNonSpecularBounces,
w.pixelIndex);
PBRT_DBG("Spawned indirect ray at depth %d from w.index %d. "
"Specular %d beta %f %f %f %f inv_w_u %f %f %f %f "
"inv_w_l %f %f %f %f\n",
w.depth + 1, w.pixelIndex, int(bsdfSample->IsSpecular()),
beta[0], beta[1], beta[2], beta[3], inv_w_u[0],
inv_w_u[1], inv_w_u[2], inv_w_u[3], inv_w_l[0],
inv_w_l[1], inv_w_l[2], inv_w_l[3]);
}
}
}
......@@ -270,8 +270,8 @@ void WavefrontPathIntegrator::EvaluateMaterialAndBSDF(MaterialEvalQueue *evalQue
PBRT_DBG(
"me index %d depth %d beta %f %f %f %f f %f %f %f %f ls.L %f %f %f "
"%f ls.pdf %f\n",
w.pixelIndex, w.depth, beta[0], beta[1], beta[2], beta[3], f[0],
f[1], f[2], f[3], ls->L[0], ls->L[1], ls->L[2], ls->L[3], ls->pdf);
w.pixelIndex, w.depth, beta[0], beta[1], beta[2], beta[3], f[0], f[1],
f[2], f[3], ls->L[0], ls->L[1], ls->L[2], ls->L[3], ls->pdf);
Float lightPDF = ls->pdf * sampledLight->p;
// This causes inv_w_u to be zero for the shadow ray, so that
......@@ -290,14 +290,12 @@ void WavefrontPathIntegrator::EvaluateMaterialAndBSDF(MaterialEvalQueue *evalQue
: w.mediumInterface.inside;
shadowRayQueue->Push(ShadowRayWorkItem{ray, 1 - ShadowEpsilon, lambda, Ld,
inv_w_u, inv_w_l,
w.pixelIndex});
inv_w_u, inv_w_l, w.pixelIndex});
PBRT_DBG(
"w.index %d spawned shadow ray depth %d Ld %f %f %f %f "
"new beta %f %f %f %f\n",
w.pixelIndex, w.depth, Ld[0], Ld[1], Ld[2], Ld[3], beta[0], beta[1],
beta[2], beta[3]);
PBRT_DBG("w.index %d spawned shadow ray depth %d Ld %f %f %f %f "
"new beta %f %f %f %f\n",
w.pixelIndex, w.depth, Ld[0], Ld[1], Ld[2], Ld[3], beta[0],
beta[1], beta[2], beta[3]);
}
});
}
......
......@@ -351,9 +351,9 @@ class RayQueue : public WorkQueue<RayWorkItem> {
PBRT_CPU_GPU
int PushIndirectRay(const Ray &ray, int depth, const LightSampleContext &prevIntrCtx,
const SampledSpectrum &beta, const SampledSpectrum &inv_w_u,
const SampledSpectrum &inv_w_l,
const SampledWavelengths &lambda, Float etaScale,
bool specularBounce, bool anyNonSpecularBounces, int pixelIndex);
const SampledSpectrum &inv_w_l, const SampledWavelengths &lambda,
Float etaScale, bool specularBounce, bool anyNonSpecularBounces,
int pixelIndex);
};
// RayQueue Inline Methods
......@@ -413,8 +413,8 @@ class EscapedRayQueue : public WorkQueue<EscapedRayWorkItem> {
inline int EscapedRayQueue::Push(RayWorkItem r) {
return Push(EscapedRayWorkItem{r.ray.o, r.ray.d, r.depth, r.lambda, r.pixelIndex,
r.beta, (int)r.specularBounce, r.inv_w_u,
r.inv_w_l, r.prevIntrCtx});
r.beta, (int)r.specularBounce, r.inv_w_u, r.inv_w_l,
r.prevIntrCtx});
}
// GetBSSRDFAndProbeRayQueue Definition
......@@ -500,9 +500,8 @@ class MediumSampleQueue : public WorkQueue<MediumSampleWorkItem> {
PBRT_CPU_GPU
int Push(RayWorkItem r, Float tMax) {
return Push(r.ray, tMax, r.lambda, r.beta, r.inv_w_u, r.inv_w_l,
r.pixelIndex, r.prevIntrCtx, r.specularBounce,
r.anyNonSpecularBounces, r.etaScale);
return Push(r.ray, tMax, r.lambda, r.beta, r.inv_w_u, r.inv_w_l, r.pixelIndex,
r.prevIntrCtx, r.specularBounce, r.anyNonSpecularBounces, r.etaScale);
}
};
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册