Skip to content

Commit 56186b3

Browse files
Merge pull request #52 from buggy213/next
use copysign when making onb
2 parents 58b7dc4 + 015b532 commit 56186b3

2 files changed

Lines changed: 4 additions & 4 deletions

File tree

src/integrators/mega_path.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ class MegakernelPathTracingInstance final : public ProgressiveIntegrator::Instan
5757
auto swl = spectrum->sample(spectrum->node()->is_fixed() ? 0.f : sampler()->generate_1d());
5858
SampledSpectrum beta{swl.dimension(), camera_weight};
5959
SampledSpectrum Li{swl.dimension()};
60+
Float eta_scale = def(1.f);
6061

6162
auto ray = camera_ray;
6263
auto pdf_bsdf = def(1e16f);
@@ -109,7 +110,6 @@ class MegakernelPathTracingInstance final : public ProgressiveIntegrator::Instan
109110

110111
// evaluate material
111112
auto surface_tag = it->shape().surface_tag();
112-
auto eta_scale = def(1.f);
113113

114114
$outline {
115115
PolymorphicCall<Surface::Closure> call;
@@ -137,8 +137,8 @@ class MegakernelPathTracingInstance final : public ProgressiveIntegrator::Instan
137137
// apply eta scale
138138
auto eta = closure->eta().value_or(1.f);
139139
$switch(surface_sample.event) {
140-
$case(Surface::event_enter) { eta_scale = sqr(eta); };
141-
$case(Surface::event_exit) { eta_scale = sqr(1.f / eta); };
140+
$case(Surface::event_enter) { eta_scale *= sqr(eta); };
141+
$case(Surface::event_exit) { eta_scale *= sqr(1.f / eta); };
142142
};
143143
});
144144
};

src/util/frame.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Frame::Frame() noexcept
1919
_n{make_float3(0.f, 0.f, 1.f)} {}
2020

2121
Frame Frame::make(Expr<float3> n) noexcept {
22-
auto sgn = sign(n.z);
22+
auto sgn = copysign(1.f, n.z);
2323
auto a = -1.f / (sgn + n.z);
2424
auto b = n.x * n.y * a;
2525
auto s = make_float3(1.f + sgn * sqr(n.x) * a, sgn * b, -sgn * n.x);

0 commit comments

Comments
 (0)