Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-09-28Cycles: Fix compilation error of CUDA kernelSergey Sharybin
Was caused by previous commit.
2018-09-28Cycles: Fix crash with BVH8 on certain scenesSergey Sharybin
The crash was caused by BVH traversal stack being overflowed. That overflow was caused by lots of false-positive intersections for rays originating on a non-finite location. Not sure why those rays will be existing in the first place, this is to be investigated separately. This commit moves pre-SSE4.1 check to a higher level function and enables it for all miroarchitectures.
2018-08-29Cycles: Add BVH8 and packeted triangle intersectionSergey Sharybin
This is an initial implementation of BVH8 optimization structure and packated triangle intersection. The aim is to get faster ray to scene intersection checks. Scene BVH4 BVH8 barbershop_interior 10:24.94 10:10.74 bmw27 02:41.25 02:38.83 classroom 08:16.49 07:56.15 fishy_cat 04:24.56 04:17.29 koro 06:03.06 06:01.45 pavillon_barcelona 09:21.26 09:02.98 victor 23:39.65 22:53.71 As memory goes, peak usage raises by about 4.7% in a complex scenes. Note that BVH8 is disabled when using OSL, this is because OSL kernel does not get per-microarchitecture optimizations and hence always considers BVH3 is used. Original BVH8 patch from Anton Gavrikov. Batched triangles intersection from Victoria Zhislina. Extra work and tests and fixes from Maxym Dmytrychenko.
2018-06-15Cycles: change Ambient Occlusion shader to output colors.Lukas Stockner
This means the shader can now be used for procedural texturing. New settings on the node are Samples, Inside, Local Only and Distance. Original patch by Lukas with further changes by Brecht. Differential Revision: https://developer.blender.org/D3479
2018-06-07Revert "Cycles: Cleanup: Don't use return on function returning void"Sergey Sharybin
Not sure why exactly it is called a cleanup, the code was much more clear and robust against possible missing return statements which are MANDATORY. Missing return statement will: - Cause two different BVH traversals to be run. Not is happening currently, but if more BVH layouts are added, it will become a problem. - It is already causing assert() statements to fail, since functions are no longer returning when they are supposed to. If there is any measurable reason to keep this change, let me know. Otherwise just stick to reliable/tested/robust code. This reverts commit ba65f7093b39a8e5f1fb869cbc347fb810a05ab9.
2018-06-04Cycles: Cleanup: Don't use return on function returning voidLukas Stockner
2017-11-08Code refactor: rename subsurface to local traversal, for reuse.Brecht Van Lommel
2017-08-07Fix Cycles shadow catcher objects influencing each other.Brecht Van Lommel
Since all the shadow catchers are already assumed to be in the footage, the shadows they cast on each other are already in the footage too. So don't just let shadow catchers skip self, but all shadow catchers. Another justification is that it should not matter if the shadow catcher is modeled as one object or multiple separate objects, the resulting render should be the same. Differential Revision: https://developer.blender.org/D2763
2017-03-29Cycles: Make all #include statements relative to cycles source directorySergey Sharybin
The idea is to make include statements more explicit and obvious where the file is coming from, additionally reducing chance of wrong header being picked up. For example, it was not obvious whether bvh.h was refferring to builder or traversal, whenter node.h is a generic graph node or a shader node and cases like that. Surely this might look obvious for the active developers, but after some time of not touching the code it becomes less obvious where file is coming from. This was briefly mentioned in T50824 and seems @brecht is fine with such explicitness, but need to agree with all active developers before committing this. Please note that this patch is lacking changes related on GPU/OpenCL support. This will be solved if/when we all agree this is a good idea to move forward. Reviewers: brecht, lukasstockner97, maiself, nirved, dingto, juicyfruit, swerner Reviewed By: lukasstockner97, maiself, nirved, dingto Subscribers: brecht Differential Revision: https://developer.blender.org/D2586
2017-03-27Cycles: First implementation of shadow catcherSergey Sharybin
It uses an idea of accumulating all possible light reachable across the light path (without taking shadow blocked into account) and accumulating total shaded light across the path. Dividing second figure by first one seems to be giving good estimate of the shadow. In fact, to my knowledge, it's something really similar to what is happening in the denoising branch, so we are aligned here which is good. The workflow is following: - Create an object which matches real-life object on which shadow is to be catched. - Create approximate similar material on that object. This is needed to make indirect light properly affecting CG objects in the scene. - Mark object as Shadow Catcher in the Object properties. Ideally, after doing that it will be possible to render the image and simply alpha-over it on top of real footage.
2017-03-24Cycles: Workaround incorrect SSS with CUDA toolkit 8.0.61Sergey Sharybin
2017-02-13Cycles: Optimize sorting of transparent intersections on CUDASergey Sharybin
2017-02-13Cycles: Fix wrong transparent shadows with CUDASergey Sharybin
Was a bug in recent optimization commit.
2017-02-08Cycles: Fix compilation error on OpenCLSergey Sharybin
2017-02-08Cycles: Implement record-all transparent shadow function for GPUSergey Sharybin
The idea is to record all possible transparent intersections when shooting transparent ray on GPU (similar to what we were doing on CPU already). This avoids need of doing whole ray-to-scene intersections queries for each intersection and speeds up a lot cases like transparent hair in the cost of extra memory. This commit is a base ground for now and this feature is kept disabled for until some further tweaks.
2016-10-03Fix Cycles CUDA performance on CUDA 8.0.Brecht Van Lommel
Mostly this is making inlining match CUDA 7.5 in a few performance critical places. The end result is that performance is now better than before, possibly due to less register spilling or other CUDA 8.0 compiler improvements. On benchmarks scenes, there are 3% to 35% render time reductions. Stack memory usage is reduced a little too. Reviewed By: sergey Differential Revision: https://developer.blender.org/D2269
2016-09-29Cycles: Cleanup file headersSergey Sharybin
Some of the files were wrongly attributing code to some other organizations and in few places proper attribution was missing. This is mainly either a copy-paste error (when new file was created from an existing one and header wasn't updated) or due to some refactor which split non-original-BF code with purely BF code. Should solve some confusion around.
2016-09-20Cycles: Re-group ifdef so we check for particular feature only onceSergey Sharybin
2016-09-19Cycles: Move BVH constants to an own files, so they are easily re-usableSergey Sharybin
2016-07-11Cycles: Add _all suffix to shadow traversal fileSergey Sharybin
Matches better naming of volume traversal files, where we've got optimized versions of a single step of volume intersection and traversal which will gather all volume intersections.
2016-07-11Cycles: Move BVK kernel files to own directorySergey Sharybin
BVH traversal is not really that much a geometry and we've got quite some traversals now. Makes sense to keep them separate in the name of source structure clarity.