Blender Git Loki

Blenderin Git "master"-kehityshaaran kommitit.

Page: 716 / 5574

June 22, 2020, 11:28 (GMT)
Cycles: internal refactoring to make thick/ribbon curve separate primitives

Also removing the curve system manager which only stored a few curve intersection
settings. These are all changes towards making shape and subdivision settings
per-object instead of per-scene, but there is more work to do here.

Ref T73778

Depends on D8013

Maniphest Tasks: T73778

Differential Revision: https://developer.blender.org/D8014
June 22, 2020, 11:28 (GMT)
Cycles: port curve-ray intersection from Embree for use in Cycles GPU

This keeps render results compatible for combined CPU + GPU rendering.
Peformance and quality primitives is quite different than before. There
are now two options:

* Rounded Ribbon: render hair as flat ribbon with (fake) rounded normals, for
fast rendering. Hair curves are subdivided with a fixed number of user
specified subdivisions.

This gives relatively good results, especially when used with the Principled
Hair BSDF and hair viewed from a typical distance. There are artifacts when
viewed closed up, though this was also the case with all previous primitives
(but different ones).

* 3D Curve: render hair as 3D curve, for accurate results when viewing hair
close up. This automatically subdivides the curve until it is smooth.

This gives higher quality than any of the previous primitives, but does come
at a performance cost and is somewhat slower than our previous Thick curves.

The main problem here is performance. For CPU and OpenCL rendering performance
seems usually quite close or better for similar quality results.

However for CUDA and Optix, performance of 3D curve intersection is problematic,
with e.g. 1.45x longer render time in Koro (though there is no equivalent quality
and rounded ribbons seem fine for that scene). Any help or ideas to optimize this
are welcome.

Ref T73778

Depends on D8012

Maniphest Tasks: T73778

Differential Revision: https://developer.blender.org/D8013
June 22, 2020, 11:28 (GMT)
Cycles: remove SIMD BVH optimizations, to be replaced by Embree

Ref T73778

Depends on D8011

Maniphest Tasks: T73778

Differential Revision: https://developer.blender.org/D8012
June 22, 2020, 11:28 (GMT)
Cycles: remove __UV__ and __INSTANCING__ as kernel options

The kernel did not work correctly when these were disabled anyway. The
optimized BVH traversal for the no instances case was also only used on
the CPU, so no longer makes sense to keep.

Ref T73778

Depends on D8010

Maniphest Tasks: T73778

Differential Revision: https://developer.blender.org/D8011
June 22, 2020, 11:28 (GMT)
Cycles: always perform backface culling for curve, remove option

The hair BSDFs are already designed to assume this, and disabling backface
culling would break them in some cases.

Ref T73778

Depends on D8009

Maniphest Tasks: T73778

Differential Revision: https://developer.blender.org/D8010
June 22, 2020, 11:28 (GMT)
Cycles: remove support for rendering hair as triangle and lines

Triangles were very memory intensive. The only reason they were not removed yet
is that they gave more accurate results, but there will be an accurate 3D curve
primitive added for this.

Line rendering was always poor quality since the ends do not match up. To keep CPU
and GPU compatibility we just remove them entirely. They could be brought back if
an Embree compatible implementation is added, but it's not clear to me that there
is a use case for these that we'd consider important.

Ref T73778

Reviewers: #cycles

Subscribers:
June 22, 2020, 11:27 (GMT)
Cycles: use TBB for task pools and task scheduler

No significant performance improvement is expected, but it means we have a
single thread pool throughout Blender. And it should make adding more
parallellization in the future easier.

After previous refactoring commits this is basically a drop-in replacement.
One difference is that the task pool had a mechanism for scheduling tasks to
the front of the queue to minimize memory usage. TBB has a smarter algorithm
to balance depth-first and breadth-first scheduling of tasks and we assume that
removes the need to manually provide hints to the scheduler.

Fixes T77533
June 22, 2020, 11:06 (GMT)
Cleanup: remove task pool stop() and finished()
June 22, 2020, 11:06 (GMT)
Cleanup: use lambdas instead of functors for task pools, remove threadid
June 22, 2020, 11:06 (GMT)
Cycles: make TBB a required library dependency, and use in a few places

Now that the rest of Blender also relies on TBB, no point in maintaining custom
code for paraller_for and thread local storage.
June 22, 2020, 11:06 (GMT)
Cleanup: minor refactoring around DeviceTask
June 22, 2020, 11:06 (GMT)
Cleanup: use move semantics for task pool functions
June 22, 2020, 11:06 (GMT)
Cleanup: compiler warning
June 22, 2020, 11:06 (GMT)
Add undo step to Alembic and Collada importers...

Re T77754.
June 22, 2020, 10:54 (GMT)
Fix initialization of Edge Slide with Single Side

It was not being initialized.
Error introduced in cf42721fe28f
June 22, 2020, 10:54 (GMT)
Transform: Simplify and rearrange mirror code

No real functional changes.
June 22, 2020, 10:54 (GMT)
Transform: Do not compute island center when not used

No functional changes from the user's point of view.
June 22, 2020, 10:54 (GMT)
Cleanup: Remove goto in transform_convert_mesh code
June 22, 2020, 10:54 (GMT)
Cleanup: Rearrange transform_convert_mesh into doxy sections
June 22, 2020, 08:48 (GMT)
GPencil: Remove Fill selection with Tweak tool and fix bug

* Fixed selection of point in multiframe mode. The point was not selected.

* Removed the fill area selection because makes the tool imprecise, and for this tool need to be precise or the selection is impossible. Now only select if it's over the point, not over the filled area.
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021