Blender Git Commits

Blender Git "fracture_modifier" branch commits.

Page: 41 / 130

January 20, 2017, 10:26 (GMT)
Cycles: Move object culling helper to own files

This is a stand-alone logic, which becomes quite comprehensive now.
January 20, 2017, 10:26 (GMT)
Cycles: Fix indendation
January 20, 2017, 10:26 (GMT)
Cycles: Consider GGX/Beckmann/Ashikhmin of 0 roughness a singular ray

This matches behavior of Multiscatter GGX and could become handy later on
when/if we decide it would be beneficial to replace on closure with another.

Reviewers: lukasstockner97, brecht

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D2413
January 20, 2017, 10:26 (GMT)
Cycles: Tweak curve segment (un)pack to handle more curve segments

There was 16 bits reserved for primitive type, while we only need 4.

Reviewers: brecht

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D2401
January 20, 2017, 10:26 (GMT)
Cycles: Cleanup, variable names

Use underscore again and also solve confusing part then in BVH smae
thing is called prim_addr but in intersection funcitons it was called
triAddr.
January 20, 2017, 10:26 (GMT)
Cycles: Cleanup, variables names

Use underscore instead of camel case.
January 20, 2017, 10:26 (GMT)
Land D2339 by bliblu bli
January 20, 2017, 10:26 (GMT)
Cycles :Cleanup, indentation
January 20, 2017, 10:26 (GMT)
Fix emissive volumes generates unexpected fireflies around intersections

Discard the whole volume stack on the last bounce (but keep
world volume if present).

Volumes are expected to be closed manifol meshes, meaning if
ray entered the volume there should be an intersection event
of ray exisintg the volume. Case when ray hit nothing and
there are still non-world volumes in the stack can happen in
either of cases.

1. Mesh is not closed manifold.

Such configurations are not really supported anyway and should
not be used.

Previous code would have consider the infinite length of the
ray to sample across, so render result wasn't really correct
anyway.

2. Exit intersection is more far away than the camera far
clip distance.

This case also will behave differently now, but previously it
wasn't really correct either, so it's not like we're breaking
something which was working as expected.

3. We missed exit event due to intersection precision issues.

This is exact the case which this patch fixes and avoid
fireflies.

4. Volume has Camera only visibility (all the rest visibility
is set to off)

This is what could be considered a regression but could be
solved quite easily by checking volume stack's objects flags
and keep entries which doesn't have Volume Scatter visibility
(or even better: ensure Volume Scatter visibility for objects
with volume closure),

Fixes T46108: Cycles - Overlapping emissive volumes generates unexpected bright hotspots around the intersection
Also fixes fireflies appearing on the edges of cube with
emissive volue.

Reviewers: juicyfruit, brecht

Reviewed By: brecht

Maniphest Tasks: T46108

Differential Revision: https://developer.blender.org/D2212
January 20, 2017, 10:26 (GMT)
Cycles: Implement AVX2 path for curve intersection functions

Gives little performance improvement on Linux and gives up to 2%
speedup on koro.blend on Windows.

Inspired by Maxym Dmytrychenko, thanks!
January 20, 2017, 10:26 (GMT)
Cycles: Add AVX intrinsics helpers

They are defined for MSVC but seems to be missing in GCC and CLang-3.8.

Maybe some further tweaks to policy when to define those functions is
needed, but should be fine for now.
January 20, 2017, 10:26 (GMT)
Cycles: Disable AVX2 crash workarounds

I can no longer reproduce crash with neither of the files where
the crash was originally visible. This is something where other
changes (light threshold, sampling) had an effect and made code
to work as it is supposed to. Could have been optimizator issue
or something like that.

Let's see if we hit same issue again.
January 20, 2017, 10:26 (GMT)
Fix T50116: Light threshold broke branched path tracer

In fact, the issue was caused by light threshold being too high for
certain scenes. Lowered it down to 0.01.
January 20, 2017, 10:26 (GMT)
Cycles: Refactor Progress system to provide better estimates

The Progress system in Cycles had two limitations so far:
- It just counted tiles, but ignored their size. For example, when rendering a 600x500 image with 512x512 tiles, the right 88x500 tile would count for 50% of the progress, although it only covers 15% of the image.
- Scene update time was incorrectly counted as rendering time - therefore, the remaining time started very long and gradually decreased.

This patch fixes both problems:
First of all, the Progress now has a function to ignore time spans, and that is used to ignore scene update time.
The larger change is the tile size: Instead of counting samples per tile, so that the final value is num_samples*num_tiles, the code now counts every sample for every pixel, so that the final value is num_samples*num_pixels.

Along with that, some unused variables were removed from the Progress and Session classes.

Reviewers: brecht, sergey, #cycles

Subscribers: brecht, candreacchio, sergey

Differential Revision: https://developer.blender.org/D2214
January 20, 2017, 10:26 (GMT)
Cycles: Fix correlation issues in certain cases

There were two cases where correlation issues were obvious:

- File from T38710 was giving issues in 2.78a again
- File from T50116 was having totally different shadow between
sample 1 and sample 32.

Use some more simplified version of CMJ hash which seems to give
nice randomized value which solves the correlation.

This commit will break all unit test files, but it's a bug fix
so perhaps OK to commit this.

This also fixes T41143: Sobol gives nonuniform noise

Proper science paper about hash function is coming.

Reviewers: brecht

Reviewed By: brecht

Subscribers: lukasstockner97

Differential Revision: https://developer.blender.org/D2385
January 20, 2017, 10:26 (GMT)
Fix T50075: Assert during debug render of hair_geom_transmission.blend
January 20, 2017, 10:26 (GMT)
Cycles: Pass extra array size argument to builtin image pixels functions

This is a way to avoid possible memory corruption when render threads works
in parallel with UI thread.

Not guarantees complete safe, but makes things easier to check anyway.
January 20, 2017, 10:26 (GMT)
Fix T50104, Race condition in SVMShaderManager::device_update_shader
January 20, 2017, 10:26 (GMT)
Cycles: Avoid divisions by zero in volume sampling code

Was giving huge artifacts in the barber shop file here in the studio,

Maybe not fully optimal solution, but committing it for now to have
closer look later.
January 20, 2017, 10:26 (GMT)
Fix T50100: Cycles SeparateRGBNode Red socket defined wrong

Spotted by David (bocs), thanks!
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021