Blender Git Loki

Blender Git commits from all branches.

Page: 410 / 2888

April 20, 2021, 13:34 (GMT)
Added detail_size to local dyntopo brush settings
April 20, 2021, 12:30 (GMT)
Added final keyword to concrete color classes.
April 20, 2021, 12:25 (GMT)
Changed templates to concrete classes.
April 20, 2021, 12:15 (GMT)
progress
April 20, 2021, 11:22 (GMT)
Refactor Alembic data reading

The logic to read data is now separated from the AlembicObject and moved to a
separate file to help separating concerns.

We use structures to gather which data to read from the Alembic schemas. Those
structures are a bit redundant with the actual schemas, however they allow us
to read data of one schema type as if it were of another type. For now this is
only used to treat subdivision objects as regular polygon meshes, but in the
future it could be used to treat curves or meshes as point clouds when rendering
points is supported.

This centralizes the logic to read data based on the frame range. Instead of
writing one loop for each schema type and requested attributes, we only have
two functions which abstract the logic to gather the relevant frame times and
to lookup the right sample for the time. It would be nice to go a step further
and only have a single entry point, but the differences in handling between
attributes and regular data makes this a bit tricky but not impossible. Those
loops also handle setting up the time sampling information in the cache to make
sure that we never forget to do so, as this was quite a source of bugs.

This solves a few design issues, and allows to deduplicate data across frames
for all types (thus reducing memory usage) and to read arbitrary attributes for
polygon and subdivision meshes. The code for curves attributes is already in
place, but will not work, that would have to wait until example files are made
available. For attribute types, we support bool, int, float, vectors, and colors.
If need be we could also support matrices and quaternions.
April 20, 2021, 11:20 (GMT)
progress
April 20, 2021, 11:00 (GMT)
Cycles: Refactor adaptive sampling filtering work

Move the code to own function and own section of RenderWork.
Preparing for a more comprehensive logic which will progressively
be bringing down noise floor in viewport.

There could be some performance impact due to an extra parallel
for call over the render works, but in practice it should not be
measurable.
April 20, 2021, 11:00 (GMT)
Cycles: Move adaptive filter check to own function

No functional changes, just makes some development easier.
April 20, 2021, 11:00 (GMT)
Cycles: Report render scheduler information

Allows to have access to timing about how long specific tasks took
in terms of wall time and in average (per task, or per sample).

Helps with profiling, bottlenecks detection, time improvements
investigation of various steps.

Example report:

Render Scheduler Summary

Adaptive sampling:
Use: True
Step: 16
Min Samples: 18
Threshold: 0.002809

Denoiser:
Use: True
Type: OpenImageDenoise
Start Sample: 0
Passes: Color, Albedo, Normal

Time (in seconds):
Wall Average
Path Tracing 6.769805 0.019016
Adaptive Filter 0.044594 0.000133
Denoiser 0.634125 0.634125
Display Update 0.333205 0.066641

Total: 7.781729
April 20, 2021, 10:53 (GMT)
progress
April 20, 2021, 10:37 (GMT)
cleanup
April 20, 2021, 10:14 (GMT)
initial transfer from pointcloud
April 20, 2021, 10:02 (GMT)
Merge branch 'master' into cycles_texture_cache
April 20, 2021, 10:02 (GMT)
Merge branch 'master' into cycles_texture_cache
April 20, 2021, 09:40 (GMT)
Cycles: Remove unused accumulation function
April 20, 2021, 09:40 (GMT)
Fix adaptive sampling never stopping on NaN pixels

Clamp all passes in a way that they are finite. Fixes both adaptive
sampling and makes results usable for post-processing.

There is no speed regression with Classroom scene on GPU, so performance
is not expected to suffer from this change.
April 20, 2021, 09:25 (GMT)
Merge branch 'master' into temp-attribute-transfer-node
April 20, 2021, 08:56 (GMT)
Cycles: Use per-pixel sample for convergence check

Currently there should be no functional changes, but this allows to
resume rendering once pixels converged to some threshold.
April 20, 2021, 08:56 (GMT)
Cycles: Pass adaptive sampling threshold to filter kernel

Before the threshold was used from the KernelIntegrator, which makes it
very tricky to modify on runtime. The only other place in the kernel
which was checking for the threshold is passes write code, which should
be possible to only check for existence of passes.

The change moves forward with the allowance of progressively lowering
the noise floor in the viewport render.

So far should be no functional changes.
April 20, 2021, 08:56 (GMT)
Cycles: Allow resetting convergence flag of pixel

This way it is possible to resume rendering with lower adaptive
sampling threshold.

Done as an extra argument to the convergence check function instead
of always re-calculating the flag based on the following ideas:

- The reset flag is the same for all threads, so it should not harm
coherency of GPU threads.

- Reset is not always used, and in cases when it is not used it is
cheaper to check boolean flag than to calculate the error norm.

So far again should be no functional changes, preparing for the new
development in the viewport.
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021