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
2020-06-22Cleanup: minor refactoring around DeviceTaskBrecht Van Lommel
2020-04-07Cleanup: refactor adaptive sampling to more easily change some parametersBrecht Van Lommel
No functional changes yet, this is work towards making CPU and GPU results match more closely.
2020-03-19Cleanup: `make format` after SortedIncludes changeDalai Felinto
2020-03-18Cycles: change volume step size controls, auto adjust based on voxel sizeBrecht Van Lommel
By default it will now set the step size to the voxel size for smoke and volume objects, and 1/10th the bounding box for procedural volume shaders. New settings are: * Scene render/preview step rate: to globally adjust detail and performance * Material step rate: multiplied with auto detected per-object step size * World step size: distance to steo for world shader Differential Revision: https://developer.blender.org/D1777
2020-03-05Adaptive Sampling for Cycles.Stefan Werner
This feature takes some inspiration from "RenderMan: An Advanced Path Tracing Architecture for Movie Rendering" and "A Hierarchical Automatic Stopping Condition for Monte Carlo Global Illumination" The basic principle is as follows: While samples are being added to a pixel, the adaptive sampler writes half of the samples to a separate buffer. This gives it two separate estimates of the same pixel, and by comparing their difference it estimates convergence. Once convergence drops below a given threshold, the pixel is considered done. When a pixel has not converged yet and needs more samples than the minimum, its immediate neighbors are also set to take more samples. This is done in order to more reliably detect sharp features such as caustics. A 3x3 box filter that is run periodically over the tile buffer is used for that purpose. After a tile has finished rendering, the values of all passes are scaled as if they were rendered with the full number of samples. This way, any code operating on these buffers, for example the denoiser, does not need to be changed for per-pixel sample counts. Reviewed By: brecht, #cycles Differential Revision: https://developer.blender.org/D4686
2020-03-02Cycles: add Progressive Multi-Jitter sampling patternStefan Werner
This sampling pattern is particularly suited to adaptive sampling, and will be used for that upcoming feature. Based on "Progressive Multi-Jittered Sample Sequences" by Per Christensen, Andrew Kensler and Charlie Kilpatrick. Ref D4686
2019-12-12Cycles: perform clamping per light contribution instead of whole pathLukas Stockner
With upcoming light group passes, for them to sum up correctly to the combined pass the clamping must be more fine grained. This also has the advantage that if one light is particularly noisy, it does not diminish the contribution from other lights which do not need as much clamping. Clamp values on existing scenes will need to be tweaked to get similar results, there is no automatic conversion possible which would give the same results as before. Implemented by Lukas, with tweaks by Brecht. Part of D4837
2019-08-21Shading: Add White Noise node.OmarSquircleArt
The White Noise node hashes the input and returns a random number in the range [0, 1]. The input can be a 1D, 2D, 3D, or a 4D vector. Reviewers: brecht, JacquesLucke Differential Revision: https://developer.blender.org/D5550
2019-06-28Cycles: add back control to render first N bounces with path terminationBrecht Van Lommel
It's found in the Sampling > Advanced panel and 0 by default. This helps to reduce noise in some scenes, while making others slower.
2019-04-17ClangFormat: apply to source, most of internCampbell Barton
Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat
2018-07-06Cleanup: strip trailing space for cyclesCampbell Barton
2018-03-19Fix T54317: overlapping volume render bug after recent changes.Brecht Van Lommel
Increasing the samplig dimensions like this is not optimal, I'm looking into some deeper changes to reuse the random number and change the RR probabilities, but this should fix the bug for now.
2018-02-09Cycles: random walk subsurface scattering.Brecht Van Lommel
It is basically brute force volume scattering within the mesh, but part of the SSS code for faster performance. The main difference with actual volume scattering is that we assume the boundaries are diffuse and that all lighting is coming through this boundary from outside the volume. This gives much more accurate results for thin features and low density. Some challenges remain however: * Significantly more noisy than BSSRDF. Adding Dwivedi sampling may help here, but it's unclear still how much it helps in real world cases. * Due to this being a volumetric method, geometry like eyes or mouth can darken the skin on the outside. We may be able to reduce this effect, or users can compensate for it by reducing the scattering radius in such areas. * Sharp corners are quite bright. This matches actual volume rendering and results in some other renderers, but maybe not so much real world objects. Differential Revision: https://developer.blender.org/D3054
2017-10-25Cycles: use AO factor to let user adjust intensity of AO bounces.Brecht Van Lommel
We are already using the AO distance, so might as well offer this extra control over the intensity. Useful when an interior scene is supposed to be significantly darker than the background shader.
2017-10-24Code refactor: move more memory allocation logic into device API.Brecht Van Lommel
* Remove tex_* and pixels_* functions, replace by mem_*. * Add MEM_TEXTURE and MEM_PIXELS as memory types recognized by devices. * No longer create device_memory and call mem_* directly, always go through device_only_memory, device_vector and device_pixels.
2017-10-24Code refactor: store device/interp/extension/type in each device_memory.Brecht Van Lommel
2017-10-08Code refactor: use DeviceInfo to enable QBVH and decoupled volume shading.Brecht Van Lommel
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-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-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
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-07-14Cycles: Fix wrong size of sobol textureSergey Sharybin
After reformulation of SSS indirect rays it became possible to try accessing dimension higher than was pre-calculated on scene preparation. This is because we're traversing rays backwards, which means we are using higher dimensions first now.
2016-05-29Code refactor: minor node and node type utility functions and changes.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-22Code refactor: nodify Cycles integrator.Brecht Van Lommel
Differential Revision: https://developer.blender.org/D2016
2016-05-13Fix T48421: AO pass broken, only works when AO in cycles is enabledSergey Sharybin
2016-04-13Fix T47813: Cycles Standalone not respecting integrator sample_clamp_directSergey Sharybin
2015-11-20Cycles: Fix filter glossy being broken after recent changesSergey Sharybin
Basically we can not use sharp closure as a substitude when filter glossy is used. This is because we can not blur sharp reflection/refraction. This is quite quick and not really clean implementation. Not really happy with manual handling of original settings, but this is as good as we can do in the quick patch. It's a good acknowledgment and we now can re-consider some aspects of graph simplification to make such cases more natively supported. P.S. This failure would have been shown by our regression tests, so please, bother a bit to run Cycles's test sweep before doing such optimizations.
2015-09-08Cycles: Correction to integrator's transparent shadowsSergey Sharybin
It was possible that deleting transparent BSDF from shader wouldn't disable transparent shadows in integrator when doing viewport render.
2015-03-27Cycles: Code cleanup, prepare for strict C++ flagsSergey Sharybin
2014-12-25Cleanup: Fix Cycles Apache header.Thomas Dinges
This was already mixed a bit, but the dot belongs there.
2014-12-18Cycles: Add missing entries in the Integrator constructor and some updatesThomas Dinges
to the XML API. (Changes from the standalone repo)
2014-11-16Cycles: Remove Integrator volume sampling flag, that was moved to Shader.Thomas Dinges
2014-09-11Followup for last commit, we can break the loop, once we have a match.Thomas Dinges
2014-09-11Fix T41784, Re-enabling transparent shadows in Cycles doesn't work correctlyThomas Dinges
2014-09-05Cycles: Split caustics option, to allow separate control for Reflection and ↵Thomas Dinges
Refraction caustics. This way artists can only disable/enable refraction or reflection caustics. See Cycles logs for an example: http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.72/Cycles Differential revision: https://developer.blender.org/D766
2014-08-31Cycles: Always assign the proper value for volume bounces.Thomas Dinges
I don't see a reason not to do this, and this also fixes update problems when 3D View rendering is running (no volume shader), and then a volume shader gets added.
2014-06-14Cycles: volume sampling method can now be set per material/world.Brecht Van Lommel
This gives you "Multiple Importance", "Distance" and "Equiangular" choices. What multiple importance sampling does is make things more robust to certain types of noise at the cost of a bit more noise in cases where the individual strategies are always better. So if you've got a pretty dense volume that's lit from far away then distance sampling is usually more efficient. If you've got a light inside or near the volume then equiangular sampling is better. If you have a combination of both, then the multiple importance sampling will be better.
2014-06-14Cycles: volume light samplingBrecht Van Lommel
* Volume multiple importace sampling support to combine equiangular and distance sampling, for both homogeneous and heterogeneous volumes. * Branched path "Sample All Direct Lights" and "Sample All Indirect Lights" now apply to volumes as well as surfaces. Implementation note: For simplicity this is all done with decoupled ray marching, the only case we do not use decoupled is for distance only sampling with one light sample. The homogeneous case should still compile on the GPU because it only requires fixed size storage, but the heterogeneous case will be trickier to get working.
2014-06-01Cycles: Small optimization for scenes without Transparent Shaders, helps a ↵Thomas Dinges
few percent. Differential Revision: https://developer.blender.org/D570
2014-05-12Cleanup: Remove unused hardcoded variables in the integrator.Thomas Dinges
Differential Revision: https://developer.blender.org/D525
2014-05-03Code cleanup: Add -Werror=float-conversion to CyclesCampbell Barton
2014-03-23Code cleanup: Move AA Samples variable, this is not exclusive to Branched Path.Thomas Dinges
2014-03-15Cycles: Direct multi light sampling in the Branched Path Integrator is ↵Thomas Dinges
optional now. Disabling this can improve performance, when we need a lot of AA Samples anyway, to clear up the render. Simple example .blend: http://www.pasteall.org/blend/27582 Differential Revision: https://developer.blender.org/D392
2014-03-10Cycles: Option to Sample all Lights in the Branched Path integrator for ↵Thomas Dinges
indirect samples This adds a new option "Sample All Lights" to the Sampling panel in Cycles (Branched Path). When enabled, Cycles will sample all the lights in the scene for the indirect samples, instead of randomly picking one. This is already happening for direct samples, now you can optionally enable it for indirect. Example file and renders: Blend file: http://www.pasteall.org/blend/27411 Random: http://www.pasteall.org/pic/show.php?id=68033 All: http://www.pasteall.org/pic/show.php?id=68034 Sampling all lights is a bit slower, but there is less variance, so it should help in situations with many lights. Patch by myself with some tweaks by Brecht. Differential Revision: https://developer.blender.org/D391
2014-02-14Cycles: equi-angular sampling for homogeneous volumesBrecht Van Lommel
This adds an option in the Volume Sampling panel, which helps rendering lamps inside or near volumes with less noise. It can also increase noise though and needs improvements to support MIS and heterogeneous volumes, but since it's useful in some cases already (especially world volumes) it's there now. Based on the code in the old branch by Stuart, with modifications by Thomas and Brecht. Differential Revision: https://developer.blender.org/D291
2014-02-11Cycles: Separation of Indirect and Direct clamping.Thomas Dinges
Indirect and Direct samples can now be clamped individually. This way we can clamp the indirect samples (fireflies), while keeping the direct highlights. Example render: http://www.pasteall.org/pic/show.php?id=66586 WARNING: This breaks backwards compatibility. If you had Clamping enabled in an old file, you must re-enable either Direct/Indirect clamping or both again. Reviewed by: brecht Differential Revision: https://developer.blender.org/D303
2014-01-07Cycles Volume Render: scattering support.Brecht Van Lommel
This is done by adding a Volume Scatter node. In many cases you will want to add together a Volume Absorption and Volume Scatter node with the same color and density to get the expected results. This should work with branched path tracing, mixing closures, overlapping volumes, etc. However there's still various optimizations needed for sampling. The main missing thing from the volume branch is the equiangular sampling for homogeneous volumes. The heterogeneous scattering code was arranged such that we can use a single stratified random number for distance sampling, which gives less noise than pseudo random numbers for each step. For volumes where the color is textured there still seems to be something off, needs to be investigated.