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. |
|
|
|


Master Commits
MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021