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-27Cycles: Make shadow catcher an optional feature for OpenCLSergey Sharybin
Solves majority of speed regression on AMD 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-22Cycles: fixed warningsStefan Werner
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-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-08Cycles: Seperate kernel loading time from render timeMai Lavelle
2017-03-08Cycles: Add names to buffer allocationsMai Lavelle
This is to help debug and track memory usage for generic buffers. We have similar for textures already since those require a name, but for buffers the name is only for debugging proposes.
2017-03-08Cycles: Expose passes size to device tasksMai Lavelle
This is needed so devices can know the size of a tile buffer before any tiles are acquired.
2017-03-06Cycles: Fix strict -Wpedantic warnings with GCCSergey Sharybin
Patch by Stefan Werner, thanks!
2017-03-03Cycles: Fix possibly uninitialized variableSergey Sharybin
Hopefully this was a reason of randomly disappearing textures in our renders.
2017-02-27Cycles: Forgot this in previous commitSergey Sharybin
2017-02-27Cycles: Add more logs about what's going on in shader optimizationSergey Sharybin
2017-02-27Cycles: Experiment with replacing Sharp Glossy with GGX when Filter Glossy ↵Sergey Sharybin
is used The idea is to make it simpler to remove noise from scenes when some prop uses Sharp glossy closure and causes noise in certain cases. Previously Sharp Glossy was not affected by Filter Glossy at all, which was quite confusing. Here is a file which demonstrates the issue: {F417797} After applying the patch all the noise from the scene is gone. This change also solves fireflies reported in T50700. Reviewers: brecht, lukasstockner97 Differential Revision: https://developer.blender.org/D2416
2017-02-23Fix T50748: Render Time incorrect when refreshing rendered preview in GPU modeSergey Sharybin
2017-02-16Fix T50687: Cycles baking time estimate and progress bar doesn't work / ↵Sergey Sharybin
progress when baking with high samples
2017-02-15Cycles: Pass special flag whether BVH motion steps are usedSergey Sharybin
Doesn't currently change anything, but would need for some future work here. It uses existing padding in kernel BVH structure, so there is nothing changed memory-wise.
2017-02-15Cycles: Fix wrong hair render results when using BVH motion stepsSergey Sharybin
The issue here was mainly coming from minimal pixel width feature which is quite commonly enabled in production shots. This feature will use some probabilistic heuristic in the curve intersection function to check whether we need to return intersection or not. This probability is calculated for every intersection check. Now, when we use multiple BVH nodes for curve primitives we increase probability of that primitive to be considered a good intersection for us. This is similar to increasing minimal width of curve. What is worst here is that change in the intersection probability fully depends on exact layout of BVH, meaning probability might change differently depending on a view angle, the way how builder binned the primitives and such. This makes it impossible to do simple check like dividing probability by number of BVH steps. Other solution might have been to split BVH into fully independent trees, but that will increase memory usage of all the static objects in the scenes, which is also not something desirable. For now used most simple but robust approach: store BVH primitives time and test it in curve intersection functions. This solves the regression, but has two downsides: - Uses more memory. which isn't surprising, and ANY solution to this problem will use more memory. What we still have to do is to avoid this memory increase for cases when we don't use BVH motion steps. - Reduces number of maximum available textures on pre-kepler cards. There is not much we can do here, hardware gets old but we need to move forward on more modern hardware..
2017-02-13Cycles: Fix wrong shading on GPU when background has NaN pixels and MIS enabledSergey Sharybin
Quite simple fix for now which only deals with this case. Maybe we want to do some "clipping" on image load time so regular textures wouldn't give NaN as well.
2017-02-01Cycles: Fix rng_state initialization when using resumable renderingLukas Stockner
2017-01-27Cycles: Add option to replace GI with AO approximation after certain amount ↵Sergey Sharybin
of bounces This is a speed up option which is mainly useful for viewport. Gives nice speedup in the barbershop scene of 2x when replacing GI with AO after 2nd bounce without loosing too much details. Reviewers: brecht Subscribers: eyecandy, venomgfx Differential Revision: https://developer.blender.org/D2383
2017-01-25Fix T50032: Wrong render result when same image is used with and without alphaSergey Sharybin
2017-01-25Fix T50517: Rendering expecting time is negativeSergey Sharybin
2017-01-23Cycles: Make object flag names more obvious that hey are object and not shaderSergey Sharybin
2017-01-20Cycles: Add option to split triangle motion primitives by time stepsSergey Sharybin
Similar to the previous commit, the statistics goes as: BVH Steps Render time (sec) Memory usage (MB) 0 46 260 1 27 373 2 18 598 3 15 826 Scene used for the tests is the agent's body from one of the barber shop scenes (no textures or anything, just a diffuse material). Once again this is limited to regular (non-spatial split) BVH, Support of spatial split to this feature will come later.
2017-01-20Cycles: Add option to split curve motion primitives by time stepsSergey Sharybin
The idea is to create several smaller BVH nodes for each of the motion curve primitives. This acts as a forced spatial split for the single primitive. This gives up render time speedup of motion blurred hair in the cost of extra memory usage. The numbers goes as: BVH Steps Render time (sec) Memory usage (MB) 0 258 191 1 123 278 2 69 453 3 43 627 Scene used for the tests is the agent's hair from one of the barber shop scenes. Currently it's only limited to scenes without spatial split enabled, since the spatial split builder requires some changes to work properly with motion steps coordinates.
2017-01-20Cycles: Add utility function to calculate curve boundbox from given 4 keysSergey Sharybin
Also fixed some issues with motion keys calculation: - Clamp lower and upper limits of curves so we can safely call those functions for the very first and very last curve segment. - Fixed wrong indexing for the curve radius array. - Fixed wrong motion attribute offset calculation.
2017-01-20Cycles: Add utility function to fetch motion keys while on CPU sideSergey Sharybin
2017-01-20Cycles: Cleanup, commentsSergey Sharybin
2017-01-20Cycles: Add utility function to fetch motion triangle when on CPU sideSergey Sharybin
2017-01-20Cycles: Cleanup, delete trailing whitespaceSergey Sharybin
2017-01-20Fix compile error (-Werror=float-conversion).Thomas Dinges
2017-01-19Cycles: Expose diffuse and glossy depth to Light Path nodeSergey Sharybin
Was a bit confusing to have transparent and translucent depth exposed but no diffuse or glossy. Reviewers: brecht Subscribers: eyecandy Differential Revision: https://developer.blender.org/D2399
2017-01-19Cycles: Remove using namespace hellSergey Sharybin
Please NEVER EVER use such a statement, it's only causing HUGE issues. What is even worse: it's not always possible to immediately see that the hell is coming from such a statement. There is still some statements in the existing code, will leave those for a later cleanup.
2017-01-19Cycles: Fix amount of rendered samples not being shown while rendering the ↵Lukas Stockner
last tile on CPU
2017-01-13Cycles: Cleanup, styleSergey Sharybin
2017-01-12Cycles: Use dedicated debug passes for traversed nodes and intersection testsSergey Sharybin
This way it's more clear whether some issue is caused by lots of geometry in the node or by lots of "transparent" BVH nodes.
2017-01-12Cycles: Remove more duplicated code in debug passes logicSergey Sharybin
2017-01-12Cycles: Fix wrong scaling of traversed instances debug passSergey Sharybin
2017-01-12Cycles: Cleanup, remove duplicated codeSergey Sharybin
2016-12-09Land D2339 by bliblu blilazydodo
2016-12-06Cycles :Cleanup, indentationSergey Sharybin
2016-12-03Cycles: Refactor Progress system to provide better estimatesLukas Stockner
The Progress system in Cycles had two limitations so far: - It just counted tiles, but ignored their size. For example, when rendering a 600x500 image with 512x512 tiles, the right 88x500 tile would count for 50% of the progress, although it only covers 15% of the image. - Scene update time was incorrectly counted as rendering time - therefore, the remaining time started very long and gradually decreased. This patch fixes both problems: First of all, the Progress now has a function to ignore time spans, and that is used to ignore scene update time. The larger change is the tile size: Instead of counting samples per tile, so that the final value is num_samples*num_tiles, the code now counts every sample for every pixel, so that the final value is num_samples*num_pixels. Along with that, some unused variables were removed from the Progress and Session classes. Reviewers: brecht, sergey, #cycles Subscribers: brecht, candreacchio, sergey Differential Revision: https://developer.blender.org/D2214
2016-11-29Cycles: Pass extra array size argument to builtin image pixels functionsSergey Sharybin
This is a way to avoid possible memory corruption when render threads works in parallel with UI thread. Not guarantees complete safe, but makes things easier to check anyway.
2016-11-25Fix T50104, Race condition in SVMShaderManager::device_update_shaderlazydodo
2016-11-23Fix T50100: Cycles SeparateRGBNode Red socket defined wrongSergey Sharybin
Spotted by David (bocs), thanks!
2016-11-22Cycles: Implement texture size limit simplify optionSergey Sharybin
Main intention is to give some quick way to control scene's memory usage by clamping textures which are too big. This is really handy on the early production stages when you first create really nice looking hi-res textures and only when it all works and approved start investing time on optimizing your scene. This is a new option in Scene Simplify panel and it acts as following: when texture size is bigger than the given value it'll be scaled down by half for until it fits into given limit. There are various possible improvements, such as: - Use threaded scaling using our own task manager. This is actually one of the main reasons why image resize is manually-implemented instead of using OIIO's resize. Other reason here is that API seems limited to construct 3D texture description easily. - Vectorization of uchar4/float4/half4 textures. - Use something smarter than box filter. Was playing with some other filters, but not sure they are really better: they kind of causes more fuzzy edges. Even with such a TODOs in the code the option is already quite useful. Reviewers: brecht Reviewed By: brecht Subscribers: jtheninja, Blendify, gregzaal, venomgfx Differential Revision: https://developer.blender.org/D2362
2016-11-20Cycles: Don't shadow loop variableMai Lavelle