January 13, 2017, 01:41 (GMT) |
Cycles: Overload DeviceTask::update_progress to take multiple tiles `update_progress` will only update the tile sample once every second, which is a problem when there are multiple tiles and calls to this function. The overload allows for multiple tiles to be updated at once by getting around the rate limit with a single call. |
January 13, 2017, 01:40 (GMT) |
Cycles: Add SampleRange struct This struct will be used to describe the ranges of tile samples passed to the kernel when rendering multiple tiles samples at once. |
January 13, 2017, 01:40 (GMT) |
Cycles: Have CPU devices use new the acquire_tiles function This is mostly for testing at the moment, as the default work request sizes should result in only one tile being acquired at once. May need to tweak the request sizes later, but for now this should do. |
January 13, 2017, 01:40 (GMT) |
Cycles: Add functions to acquire multiple tiles at once Devices will render multiple smallish tiles (and eventually multiple samples) at once to keep busy. Using smaller tiles has a few benefits: there's less of an issue of tiles being cropped at image edges, multiple devices can share work better, and we may even be able to increase coherency from rendering multiple samples. |
January 13, 2017, 00:41 (GMT) |
Apply collision responce on state before pre-collision solve (breaks selfcol) This uses the pre-collision solve result only to find the collisions and calculate the responce impulses, but rolls back to before the pre-collision solve when it is time to actually apply the responce. This prevents the cloth from undergoing a double solve per time-step, which essentially made colliding clothes move much faster than non-colliding clothes. |
January 12, 2017, 23:09 (GMT) |
Cycles: Implement new NLM kernels for CUDA |
January 12, 2017, 18:28 (GMT) |
Dynamic Paint: recursively search for island border edges. It is quite likely in a triangulated mesh that the actual island edge belongs to a different triangle than the current pixel; for example consider corners of a triangulated axis aligned rectangle face that have the additional edge: a pixel there will have to be assigned to one of the triangles, but one of the edges of the original rectangle can only be accessed through the other triangle. Thus for robust operation it is necessary to do a recursive search. The search is limited by requiring that it only goes through edges that bring it closer to the target point, and also by depth as a safeguard. Differential Revision: https://developer.blender.org/D2409 |
January 12, 2017, 18:28 (GMT) |
Dynamic Paint: provide margin of error for linking neighbors across seams. The code requires the pixel on the other side of the seam to be assigned precisely to the expected triangle. This can cause false negatives around vertices, where a pixel is likely to touch multiple triangles and thus cannot be said to unambiguously belong to any one of them, so check distance to the intended triangle and accept the result if it's close. |
January 12, 2017, 18:28 (GMT) |
Dynamic Paint: improve UV island border handling in effects. 1. Forcibly symmetrize the neighbor relations, so that if A is neighbor of B, B is neighbor of A. The existing code is guaranteed to violate this if texture resolution is different between the sides of a seam. 2. In texture mode dynamic paint adds a 1 pixel wide border around the islands. These pixels aren't really part of the dynamic paint domain and thus by design can't have symmetrical neighbor relations. This means they can't be treated by effects like normal pixels. The simplest way to handle it in a consistent way is to exclude them from effects, but add an additional pass that recomputes them as average of their non-border neighbors, located on both sides of the seam. |
January 12, 2017, 17:23 (GMT) |
Cycles: Allow up to 4 motion curve primitives per BVH node This avoids intersection AABB of different curve primitives which makes it less ray-to-primitive intersections. This gives about 30% speedup of hair rendering in the barber shop scenes here. There is still some work to be done on those files to solve major speed issues on certain frames. |
January 12, 2017, 17:23 (GMT) |
Remove Bases onces and for all This officially makes the viewport not draw anything, until we get the new ObjectBase * to use. This is easily revertable, but for now I prefer to make sure this is not in the way of refactoring. |
January 12, 2017, 17:20 (GMT) |
Cycles: Prepare BVH traversal code to work with multiple curve primitives per node |
January 12, 2017, 16:54 (GMT) |
Remove weird impulse scaling |
January 12, 2017, 16:51 (GMT) |
Updated python files to use select_get/_set() [not addons] |
January 12, 2017, 16:38 (GMT) |
Cycles: Correct assert() for cases when there are multiple curves per BVH node |
January 12, 2017, 15:54 (GMT) |
Cycles: Use separate limit for motion primitives for BVH node limits This way we can have different limits for regular and motion curves which we'll do in one of the upcoming commits in order to gain some percents of speedup. The reasoning here is that motion curves are usually intersecting lots of others bounding boxes, which makes it inefficient to have single primitive in the leaf node. |
January 12, 2017, 15:33 (GMT) |
Cycles: Change confusing logic of max leaf size check Maximal number of elements is supposed to be inclusive. That is what it was always meant in this file and what @brecht considered still the case in 6974b69c6172. In fact, the commit message to that change mentions that we allowed up to 2 curve primitives per leaf while in fact it was doing up to 1 curve primitive. Making it real 2 primitives at a max gives about 5% slowdown for the koro.blend scene. This is a reason why BVHParams.max_curve_leaf_size was changed to 1 by this change. |
January 12, 2017, 14:31 (GMT) |
Cycles: Cleanup, space prior to semicolon We don't have that in Blender style, no reason to violate it here. |
January 12, 2017, 14:28 (GMT) |
Cycles: Cleanup, make curve functions private Not only they don't really follow naming convention (we don't use camel case) but also was not necessary to keep them in the global symbol table. |
January 12, 2017, 14:22 (GMT) |
Cycles: Make it more clear message why curve motion attribute was removed |
|
|
|


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