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-01-22Cycles: Replace use_qbvh boolean flag with an enum-based propertySergey Sharybin
This was we can introduce other types of BVH, for example, wider ones, without causing too much mess around boolean flags. Thoughs: - Ideally device info should probably return bitflag of what BVH types it supports. It is possible to implement based on simple logic in device/ and mesh.cpp, rest of the changes will stay the same. - Not happy with workarounds in util_debug and duplicated enum in kernel. Maybe enbum should be stores in kernel, but then it's kind of weird to include kernel types from utils. Soudns some cyclkic dependency. Reviewers: brecht, maxim_d33 Reviewed By: brecht Differential Revision: https://developer.blender.org/D3011
2018-01-13Code cleanup: remove test code to disable motion blur, no longer useful.Brecht Van Lommel
2017-11-17Cycles: Add per-tile render time debug passLukas Stockner
Reviewers: sergey, brecht Differential Revision: https://developer.blender.org/D2920
2017-11-17Cycles: Add Volume Direct and Volume Indirect passes for volume-scattered lightLukas Stockner
No color pass because it's hard to define what to use as color in a volume. Reviewers: sergey, brecht Differential Revision: https://developer.blender.org/D2903
2017-11-07Cycles: Cleanup, styleSergey Sharybin
2017-10-21Cycles: disable progressive refine if denoising or save buffers is used.Brecht Van Lommel
Progressive refine undoes memory saving from save buffers, so enabling both does not make much sense. Previously enabling progressive refine would disable denoising, but it should be the other way around since denoise actually affects the render result. Includes some code refactor for progressive refine render buffers, and avoids recomputing tiles for each progressive sample.
2017-10-21Cycles: combined CPU + GPU rendering support.Brecht Van Lommel
CPU rendering will be restricted to a BVH2, which is not ideal for raytracing performance but can be shared with the GPU. Decoupled volume shading will be disabled to match GPU volume sampling. The number of CPU rendering threads is reduced to leave one core dedicated to each GPU. Viewport rendering will also only use GPU rendering still. So along with the BVH2 usage, perfect scaling should not be expected. Go to User Preferences > System to enable the CPU to render alongside the GPU. Differential Revision: https://developer.blender.org/D2873
2017-10-08Code refactor: use DeviceInfo to enable QBVH and decoupled volume shading.Brecht Van Lommel
2017-08-21Cycles: reorganize Performance panel layout, move viewport BVH type to debug.Brecht Van Lommel
2017-08-21Revert "Cycles: remove square samples option."Brecht Van Lommel
This reverts commit 757c24b6bceaeeae95f743b72b6a7040880a0ebf. We'll revisit this when doing deeper sampling changes.
2017-08-15Cycles/BI: Add a pixel size option for speeding up viewport renderingLukas Stockner
This patch adds "Pixel Size" to the performance options, which allows to render in a smaller resolution, which is especially useful for displays with high DPI. Reviewers: Severin, dingto, sergey, brecht Reviewed By: brecht Subscribers: Severin, venomgfx, eyecandy, brecht Differential Revision: https://developer.blender.org/D1619
2017-08-11Cycles: remove square samples option.Brecht Van Lommel
It doesn't seem that useful in practice, was mostly added to match some other renderers but also seems to be causing user confusing and accidental long render times. So let's just keep the UI simple and remove this. Differential Revision: https://developer.blender.org/D2768
2017-08-07Cycles: remove option to disable transparent shadows globally.Brecht Van Lommel
We already detect this automatically based on shading nodes and per shader settings, and performance of this option is ok now all devices. Differential Revision: https://developer.blender.org/D2767
2017-08-05Cycles: remove min bounces, modify RR to terminate less.Brecht Van Lommel
Differential Revision: https://developer.blender.org/D2766
2017-06-10Cycles: Fix denoising passes being written when they're not actually generatedLukas Stockner
2017-05-26Cycles: Cleanup: b_srlay is always used now, no more need to silence warningLukas Stockner
2017-05-23Fix T51592: Simplify AO Cycles setting remains active while Simplify is disabledSergey Sharybin
2017-05-07Cycles: Implement denoising option for reducing noise in the rendered imageLukas Stockner
This commit contains the first part of the new Cycles denoising option, which filters the resulting image using information gathered during rendering to get rid of noise while preserving visual features as well as possible. To use the option, enable it in the render layer options. The default settings fit a wide range of scenes, but the user can tweak individual settings to control the tradeoff between a noise-free image, image details, and calculation time. Note that the denoiser may still change in the future and that some features are not implemented yet. The most important missing feature is animation denoising, which uses information from multiple frames at once to produce a flicker-free and smoother result. These features will be added in the future. Finally, thanks to all the people who supported this project: - Google (through the GSoC) and Theory Studios for sponsoring the development - The authors of the papers I used for implementing the denoiser (more details on them will be included in the technical docs) - The other Cycles devs for feedback on the code, especially Sergey for mentoring the GSoC project and Brecht for the code review! - And of course the users who helped with testing, reported bugs and things that could and/or should work better!
2017-05-04Cycles: Fix unused argument warning when building without debug passesSergey Sharybin
2017-05-03Render API/Cycles: Identify Render Passes by their name instead of a type flagLukas Stockner
Previously, every RenderPass would have a bitfield that specified its type. That limits the number of passes to 32, which was reached a while ago. However, most of the code already supported arbitrary RenderPasses since they were also used to store Multilayer EXR images. Therefore, this commit completely removes the passflag from RenderPass and changes all code to use the unique pass name for identification. Since Blender Internal relies on hardcoded passes and to preserve compatibility, 32 pass names are reserved for the old hardcoded passes. To support these arbitrary passes, the Render Result compositor node now adds dynamic sockets. For compatibility, the old hardcoded sockets are always stored and just hidden when the corresponding pass isn't available. To use these changes, the Render Engine API now includes a function that allows render engines to add arbitrary passes to the render result. To be able to add options for these passes, addons can now add their own properties to SceneRenderLayers. To keep the compositor input node updated, render engine plugins have to implement a callback that registers all the passes that will be generated. From a user perspective, nothing should change with this commit. Differential Revision: https://developer.blender.org/D2443 Differential Revision: https://developer.blender.org/D2444
2017-05-03Cycles: Use render visibility for duplis when Render Layer option in ↵Sergey Sharybin
viewport is used Previously the logic was different for duplis and regular objects: regular objects were using render visibility when Render Layer option is enabled which duplis were always using viewport visibility when rendering from the viewport. This was quite confusing because caused different results in viewport and render when artists were expecting them to match 1:1.
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-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-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.
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-16Cycles: Fix different noise pattern from fix in T49838:Sergey Sharybin
No need to hash subframe == 0.
2016-11-08Fix T49838: Noise randomization for frame should be done per interframes as wellSergey Sharybin
Add subframe to the animated seed hash calculation. Should be no difference for the regular files, only for cases when scene is rendered from sequencer with a speed effect, which is not really a common thing.
2016-11-07Cycles: Refactor Device selection to allow individual GPU compute device ↵Lukas Stockner
selection Previously, it was only possible to choose a single GPU or all of that type (CUDA or OpenCL). Now, a toggle button is displayed for every device. These settings are tied to the PCI Bus ID of the devices, so they're consistent across hardware addition and removal (but not when swapping/moving cards). From the code perspective, the more important change is that now, the compute device properties are stored in the Addon preferences of the Cycles addon, instead of directly in the User Preferences. This allows for a cleaner implementation, removing the Cycles C API functions that were called by the RNA code to specify the enum items. Note that this change is neither backwards- nor forwards-compatible, but since it's only a User Preference no existing files are broken. Reviewers: #cycles, brecht Reviewed By: #cycles, brecht Subscribers: brecht, juicyfruit, mib2berlin, Blendify Differential Revision: https://developer.blender.org/D2338
2016-10-30Cycles: Add optional probabilistic termination of light samples based on ↵Lukas Stockner
their expected contribution In scenes with many lights, some of them might have a very small contribution to some pixels, but the shadow rays are traced anyways. To avoid that, this patch adds probabilistic termination to light samples - if the contribution before checking for shadowing is below a user-defined threshold, the sample will be discarded with probability (1 - (contribution / threshold)) and otherwise kept, but weighted more to remain unbiased. This is the same approach that's also used in path termination based on length. Note that the rendering remains unbiased with this option, it just adds a bit of noise - but if the setting is used moderately, the speedup gained easily outweighs the additional noise. Reviewers: #cycles Subscribers: sergey, brecht Differential Revision: https://developer.blender.org/D2217
2016-09-18Cycles: Fix update of subdivision meshes when global dice rates changeMai Lavelle
When subdivision settings were moved from meshes to objects this was missed, should work fine now.
2016-07-15Cycles: Add option to disable new Hair BVHSergey Sharybin
While it's an extra option added to the interface which might not be fully obvious for artists, it allows to save up to 20% of memory in hairy scenes. This is high enough memory saver in my opinion which might become handy for some production files where it's more important to make scene to fit into memory rather than trying to use more optimal BVH structure but go into swap or crash. Reviewers: dingto, brecht Reviewed By: dingto, brecht Differential Revision: https://developer.blender.org/D2090
2016-05-22Fix Cycles compile errors with GCC due to double promotion as errors.Brecht Van Lommel
2016-05-22Cleanup: remove Cycles layer bits checking in the kernel.Brecht Van Lommel
At some point the idea was that we could have an optimization where we could render multiple render layers without re-exporting the scene, by just updating the layer bits. We are not doing this now and in practice with the available render layer control like exclude layers it's not always possible anyway. This makes it easier to support an arbitrary number of layers in the future (hopefully this summer), and frees up some useful bits in the kernel. Reviewed By: sergey, dingto Differential Revision: https://developer.blender.org/D2020
2016-05-17Code refactor: use shader pointers rather than shader indexes.Brecht Van Lommel
2016-04-18Cycles microdisplacement: add max subdivision settingMai Lavelle
This is to prevent situations such as when the camera gets very close to a mesh and causes it to be tessellated into an excessive amount of micropolygons. In REYES this is known as the eye-splits problem. Reviewed By: brecht Differential Revision: https://developer.blender.org/D1922
2016-04-17Cycles microdisplacement: scene level render and preview dicing ratesMai Lavelle
This makes it easier to control overall dicing rate without having to tweak every object. The preview rate makes viewport editing more interactive. The default preview rate of 8 is roughly 64 times faster for some operations. Reviewed By: brecht Differential Revision: https://developer.blender.org/D1919
2016-04-13Fix T47813: Cycles Standalone not respecting integrator sample_clamp_directSergey Sharybin
2016-03-28Fix T47931: Missed world shader update when having object dependencySergey Sharybin
2016-03-11Cycles: Do no limit viewport samples to USHRT_MAX when value is at 0.Thomas Dinges
We don't limit manually setting higher values, this was probably overlooked here. Found by @Blendify in IRC.
2016-02-12Cycles: Make Blender importer more forward compatibleSergey Sharybin
Basically the idea is to make code robust against extending enum options in the future by falling back to a known safe default setting when RNA is set to something unknown. While this approach solves the issues similar to T47377, but it wouldn't really help when/if any of the RNA values gets ever deprecated and removed. There'll be no simple solution to that apart from defining explicit mapping from RNA value to Cycles one. Another part which isn't so great actually is that we now have to have some enum guards and give some explicit values to the enum items, but we can live with that perhaps. Reviewers: dingto, juicyfruit, lukasstockner97, brecht Reviewed By: brecht Differential Revision: https://developer.blender.org/D1785
2016-02-10Fix T47377: Newer file crashes at render on official 2.76b versionSergey Sharybin
Really annoying bug, the code was not forward compatible at all and resulted in crash. And it is really good to keep at least one release forward compatibility so possible regressions could be verified easily. The idea now is to use new property name for the pixel filter type, but keep old property around for a couple of releases, so we have at least some forward compatibility. Don't like this situation at all, but seems it's least of the evil we can choose. Thanks Brecht for the review!
2016-02-10Cycles: Cleanp, avoid direct calls of RNA_enum_get, we've got utility for thatSergey Sharybin
2016-01-30Cycles: Pass Blender's C++ RNA structures by referenceSergey Sharybin
This way we avoid passing structures which could be up to few hundred bytes by value to the utility functions. Ideally we'll also have to add `const` qualifier in majority of the calls, but C++ RNA does not allow us to do that because it does not know if some function modifies contents or not.
2016-01-19Cycles: Add a debug flag to disable QBVHSergey Sharybin
2016-01-02Cycles: Force bottom-to-top tile order for viewport renderingLukas Stockner
This commit overrides the user's choice of tile order in the case of viewport rendering and always uses bottom-to-top instead. This was already done until the TileManager redesign, but since it removed the distinction between viewport and regular rendering in the manager, the viewport was now also using the selected order. Since this requires sorting of the generated tiles, it slows down rendering a bit. With the forced bottom-to-top order, this sorting step can now be avoided again. Since the tile order is invisible anyways for viewport rendering, this commit won't have any impact on users (apart from a slight speedup).
2015-11-24Cycles: Support per-render layer world AO settingsSergey Sharybin
This is sort of extension of existing Use Environment option which now allows to disable AO on the render layer basis. Useful in cases like disabling AO for the background because it might make it too flat and so. Reviewers: juicyfruit, dingto, brecht Reviewed By: brecht Subscribers: eyecandy, venomgfx Differential Revision: https://developer.blender.org/D1633
2015-10-13Cycles: Add support for motion blur positionSergey Sharybin
This adds an option to control at what time relative to the current frame the shutter is fully opened. Supported options are: - Shutter is starting to open at the current frame - Shutter is fully opened at the current frame - Shutter is fully closed at the current frame Custom shutter time offset is possible, same as custom curve for shutter openness but those are considered nice things to have rather than something crucial. Reviewers: juicyfruit, dingto Subscribers: venomgfx, hjalti Differential Revision: https://developer.blender.org/D1380
2015-09-24Cycles: Remove the BVH cache featureThomas Dinges
This removes the BVH cache feature from the UI, underlying code will be removed in a separate commit. The BVH cache was added before we had a multi-threaded BVH build, and a lot of other optimizations were done since then, which makes this not useful anymore. Fix T46162.
2015-07-21Cycles: Implement camera zoom motion blurSergey Sharybin
Works totally similar to camera motion blur and majority of the changes are related on just passing extra arguments to sync() functions. Couple of things still to look into: - Motion pass will not include motion caused by the zoom. - Only perspective cameras are supported currently. - Motion is being interpolated on projected coordinates, which might give different results from constructing projection matrix from interpolated field of view. This could be good enough for us, but we need to consider improving this at some point. Reviewers: juicyfruit, dingto Reviewed By: dingto Differential Revision: https://developer.blender.org/D1383