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
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-29Cycles: Attempt to workaround compilation error on new CUDA toolkit and sm_2xSergey Sharybin
2017-03-29Cycles: Bring back preview AA samples when using BPTSergey Sharybin
This was removed in 93426cb. Please be more accurate when changing interface.
2017-03-28Fix T51068: Place props in their own rowAaron Carlisle
This allows the props to extend into the blank space that is to the right.
2017-03-28Cycles: Switch to reformulated Pluecker ray/triangle intersectionSergey Sharybin
The intention of this commit it to address issues mentioned in the reports T43865,T50164 and T50452. The code is based on Embree code with some extra vectorization to speed up single ray to single triangle intersection. Unfortunately, such a fix is not coming for free. There is some slowdown for AVX2 processors, mainly due to different vectorization code, which caused different number of instructions to be executed and different instructions-per-cycle counters. But on another hand this commit makes pre-AVX2 platforms such as AVX and SSE4.1 a bit faster. The prerformance goes as following: 2.78c AVX2 2.78c AVX Patch AVX2 Patch AVX BMW 05:21.09 06:05.34 05:32.97 (+3.5%) 05:34.97 (-8.5%) Classroom 16:55.36 18:24.51 17:10.41 (+1.4%) 17:15.87 (-6.3%) Fishy Cat 08:08.49 08:36.26 08:09.19 (+0.2%) 08:12.25 (-4.7% Koro 11:22.54 11:45.24 11:13.25 (-1.5%) 11:43.81 (-0.3%) Barcelone 14:18.32 16:09.46 14:15.20 (-0.4%) 14:25.15 (-10.8%) On GPU the performance is about 1.5-2% slower in my tests on GTX1080 but afraid we can't do much as a part of this chaneg here and consider it a price to pay for more proper intersection check. Made in collaboration with Maxym Dmytrychenko, big thanks to him! Reviewers: brecht, juicyfruit, lukasstockner97, dingto Differential Revision: https://developer.blender.org/D1574
2017-03-28Cycles: Pass m128 vectors by const referenceSergey Sharybin
2017-03-27Cleanup: Use upper case consistently in adaptive feature compile logging.Thomas Dinges
2017-03-27Cleanup: Resolve todo in CUDA voxel image code.Thomas Dinges
2017-03-27Cycles UI: Avoid abreviation for Hair Extension.Thomas Dinges
Since 2.5x we should try to avoid such abreviations in the UI, except for common terms like Min / Max as much as possible.
2017-03-27Cycles: Move Shadow Catcher UI option next to Ray Visibility.Thomas Dinges
Previously it was beneath the Performance UI label, which was incorrect. It's better suited next to Ray Visibility.
2017-03-27Cycles: Correct ifdef around float3 intrinsicsSergey Sharybin
2017-03-27Cycles: Make shadow catcher an optional feature for OpenCLSergey Sharybin
Solves majority of speed regression on AMD OpenCL.
2017-03-27Cycles: Add OpenCL support for shadow catcher featureHristo Gueorguiev
The title says it all actually.
2017-03-27Cycles: Remove ccl_addr_space from RNG passed to functionsHristo Gueorguiev
Simplifies code quite a bit, making it shorter and easier to extend. Currently no functional changes for users, but is required for the upcoming work of shadow catcher support with OpenCL.
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-27Cycles: Optimize shaders earlier to skip unneccessary attributes for ↵Lukas Stockner
noninteractive rendering Before, Cycles would first sync the shader exactly as shown in the UI, then determine and sync the used attributes and later optimize the shader. Therefore, even completely unconnected nodes would cause unneccessary attributes to be synced. The reason for this is to avoid frequent resyncs when editing shaders interactively, but it can still be avoided for noninteractive renders - which is what this commit does. Reviewed by: sergey Differential Revision: https://developer.blender.org/D2285
2017-03-24Cycles: Remove obsolete variable from the TileManagerLukas Stockner
2017-03-24Cycles: Correct isfinite check used in integratorSergey Sharybin
Use fast-math friendly version of this function. We should probably avoid unsafe fast math, but this is to be done with real care with all the benchmarks properly done. For now comitting much safer fix.
2017-03-24Cycles: Workaround incorrect SSS with CUDA toolkit 8.0.61Sergey Sharybin
2017-03-23Cycles: Remove old non-optimized triangle intersection functionSergey Sharybin
It is unused now and if we want similar function we should use Pluecker intersection which is same performance with SSE optimization but which is more watertight.
2017-03-23Cycles: Remove unused macroSergey Sharybin
2017-03-23Cycles: Use SSE-optimized version of triangle intersection for motion trianglesSergey Sharybin
The title says it all actually. Gives up to 10% speedup on test scenes here on i7-6800K. Render times on GPU are unreliable here, but there might be some slowdown caused by watertight nature of intersections.
2017-03-23Cycles: Fix speed regression on GPUSergey Sharybin
Avoid construction of temporary array and make utility function force-inlined. Additionally avoid calling float4_to_float3 twice. This brings render times to the same values as before current patch series.
2017-03-23Cycles: Use utility function for SSS triangle intersectionSergey Sharybin
This effectively de-duplicates triangle intersection logic implemented for both regular triangle and SSS triangle.
2017-03-23Cycles: Move watertight triangle intersection to an utility fileSergey Sharybin
This way the code can be reused more easily.
2017-03-23Cycles: Move triangle intersection precalc to an util fileSergey Sharybin
This is a preparation work for the followup commit which wil l move remaining parts of Woop intersection logic to an utility file. Doing it as a separate commit to keep changes more atomic and easier to bisect when/if needed.
2017-03-23Cycles: Cleanup, move utility function to utility fileSergey Sharybin
Was an old TODO, this function is handy for some math utilities as well.
2017-03-23Cycles: Cleanup, code style and commentsSergey Sharybin
2017-03-23Cycles: Move intersection math to own header fileSergey Sharybin
There are following benefits: - Modifying intersection algorithm will not cause so much re-compilation. - It works around header dependency hell and allows us to use vectorization types much easier in there.
2017-03-23Cycles: Cleanup, inline AVX register construction from kernel global dataSergey Sharybin
Currently should be no functional changes, preparing for some upcoming refactor.
2017-03-23Cycles: Cleanup, remove unused functionSergey Sharybin
2017-03-23Cycles: Fix building for some compilersMai Lavelle
2017-03-22Cycles: fixed warningsStefan Werner
2017-03-22Fix/workaround T50533: Transparency shader doesn't cast shadows with curve ↵Sergey Sharybin
segments There seems to be a compiler bug of MSVC2013. The issue does not happen on Linux and does not happen on Windows when building with MSVC2015. Since it's reallly a pain to debug release builds with MSVC2013 the AVX2 optimization is disabled for curve sergemnts for this compiler.
2017-03-21Cycles: Use more friendly GPU device name for AMD cardsSergey Sharybin
For example, for RX480 you'll no longer see "Ellesmere" but will see "AMD Radeon RX 480 Graphics" which makes more sense and allows to easily distinguish which exact card it is when having multiple different cards of Ellesmere codenames (i.e. RX480 and WX7100) in the same machine.
2017-03-21Cycles: Simplify some extra OpenCL query codeSergey Sharybin
2017-03-21Cycles: Cleanup, add some utility functions to shorten access to low level APISergey Sharybin
Should be no functional changes.
2017-03-21Cycles: Fix wrong vector allocation in the mesh sync codeLukas Stockner
2017-03-21Cycles: Fix building of OpenCL kernelsMai Lavelle
Theres no overloading of functions in OpenCL so we can't make use of `safe_normalize` with `float2`.
2017-03-20Fix T50268: Cycles allows to select un supported GPUs for OpenCLSergey Sharybin
2017-03-20Cycles: Update remaining time once per second without waiting for a tile changeLukas Stockner
Previously, the code would only update the status string if the main status changed. However, the main status did not include the remaining time, and therefore it wasn't updated until the amount of rendered tiles (which is part of the main status) changed. This commit therefore makes the BlenderSession remember the time of the last status update and forces a status update if the last one was more than a second ago. Reviewers: sergey Differential Revision: https://developer.blender.org/D2465
2017-03-20Fix T50975: Cycles: Light sampling threshold inadvertently clamps negative lampsSergey Sharybin
2017-03-20Fix T50990: Random black pixels in Cycles when rendering material with ↵Sergey Sharybin
Multiscatter GGX
2017-03-20Remove register_module use in CyclesCampbell Barton
2017-03-17Fix T50968: Cycles crashes when image datablock points to a directorySergey Sharybin
See more details about root of the cause there: https://github.com/OpenImageIO/oiio/pull/1640
2017-03-17Cycles: Fix mistake in previous split kernel commitsSergey Sharybin
Own stupid mistake. Reported by nirved in IRC, thanks!
2017-03-17Cycles: Cleanup, indentationSergey Sharybin
2017-03-17Cycles: Fix compilation error of LCG RNGSergey Sharybin
2017-03-17Cycles: Silence strict compiler warningSergey Sharybin
2017-03-17Cycles: Improve memory usage of CPU split kernel by using smaller global sizeMai Lavelle