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-08-17Cycles: Calculate correct remaining time when using a larger pixel sizeLukas Stockner
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-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-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-24Cycles: Remove obsolete variable from the TileManagerLukas Stockner
2017-01-25Fix T50517: Rendering expecting time is negativeSergey 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-03-30Cycles: Resumable render implementation for CyclesSergey Sharybin
This feature is also known by the name Samples Offset, which allows artists to render animation with given amount of samples N, but then render more samples, starting from N and ending with M (where M > N) and merge renders together as if they rendered exactly M samples. Surely such effect could be achieved by changing Seed variable, but that has possible issues with correlation artifacts and requiring to manually deal with per render layer samples and such. While we can't support all possible renderfarm-related features in Cycles it's nice to support really commonly used stuff. Here's a command how to run Blender with the new feature enabled: blender -- --cycles-resumable-num-chunks 24 --cycles-resumable-current-chunk 2 This command will divide samples range in 24 parts and render range #2 (chunk number is 1-based). This feature might be changed a bit after we'll do some tests here in the studio with it.
2016-01-10Cycles: Adding Hilbert Spiral as a tile order for renderingLukas Stockner
This patch adds the "Hilbert Spiral", a custom-designed continuous space-filling curve, as a tile order for rendering in Cycles. It essentially works by dividing the tiles into tile blocks which are processed in a spiral outwards from the center. Inside each block, the tiles are processed in a regular Hilbert curve pattern. By rotating that pattern according to the spiral direction, a continuous curve is obtained, which helps with cache coherency and therefore rendering speed. The curve is a compromise between the faster-rendering Bottom-to-Top etc. orders and the Center order, which is a bit slower, but starts with the more important areas. The Hilbert Spiral also starts in the center (unless huge tiles are used) and is still marginally slower than Bottom-to-Top, but noticeably faster than Center. Reviewers: sergey, #cycles, dingto Reviewed By: #cycles, dingto Subscribers: iscream, gregzaal, sergey, mib2berlin Differential Revision: https://developer.blender.org/D1166
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-12-31Cycles: Fix viewport rendering with multiple GPU devicesSergey Sharybin
2015-12-24Cycles: Fix Tile access in the TileManager for viewport renderingLukas Stockner
- When rendering in the Viewport, next_tile is sometimes called after a reset has been performed, but before new tiles were generated. In that case, the tile list would be invalid, causing Blender to crash randomly. - When generating new tiles, the TileManager would not clear the tile lists before re-generating them, leading to some tiles being skipped during viewport rendering. - When popping the next tile from a tile list, a reference to the just-deleted object would be returned, now the object is copied before deleting it.
2015-12-23Cycles: Sort tiles in rendering order at construction timeLukas Stockner
This commit modifies the TileManager to sort render tiles once after tiling the image, instead of searching the next tile every time a new tile is acquired by a device. This makes acquiring a tile run in constant time, therefore the render time is linear w.r.t. the amount of tiles, instead of the quadratic dependency before. Furthermore, each (logical) device now has its own Tile list, which makes acquiring a tile for a specific device easier. Also, some code in the TileManager was deduplicated. Reviewers: dingto, sergey Differential Revision: https://developer.blender.org/D1684
2015-10-08Cycles: Cleanup, whitespace around keywordsSergey Sharybin
2015-03-27Cycles: Code cleanup, spaces around keywordsSergey Sharybin
This inconsistency drove me totally crazy, it's really confusing when it's inconsistent especially when you work on both Cycles and Blender sides. Shouldn;t cause merge PITA, it's whitespace changes only, Git should be able to merge it nicely.
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-10-05Cycles: Center Tile order had a slight offset to the left.Greg Zaal
Signed-off-by: Thomas Dinges
2014-06-13Cycles Refactor: Add SSE Utility code from Embree for cleaner SSE code.Thomas Dinges
This makes the code a bit easier to understand, and might come in handy if we want to reuse more Embree code. Differential Revision: https://developer.blender.org/D482 Code by Brecht, with fixes by Lockal, Sergey and myself.
2013-09-04Fix a few issues reported by coverity scan.Brecht Van Lommel
2013-08-18Cycles: relicense GNU GPL source code to Apache version 2.0.Brecht Van Lommel
More information in this post: http://code.blender.org/ Thanks to all contributes for giving their permission!
2013-08-09Fix cycles not rendering with 1x1 resolution anymore, not so common for usersBrecht Van Lommel
but nice for debugging.
2013-05-08Cycles / Tile Rendering:Thomas Dinges
* Code refactor of tile ordering to simplify the code and avoid some branching. * Changed the Center method, so it really follows center -> corners, instead of the BI method, which was confusing sometimes.
2013-01-07Cycles / Tile Rendering:Thomas Dinges
* Added new option to chose the tile order. In addition to the "Center" method, 4 new methods are available now, like Top -> Bottom and Right -> Left. Thanks to Sergey for code review and some tweaks!
2012-11-05Stupid copy-paste typo in tiles commit.Sergey Sharybin
That was an example how you should not code :)
2012-11-05Render engines: replace number of x/y tiles with tile sizeSergey Sharybin
Now tile size is setting up explicitly instead of using number of tiles. This allows better control over GPU performance, where having tiles aligned to specific size makes lots of sense. Still to come: need to update startup.blend to make tiles size 64x64.
2012-10-25Cycles: use simplier strategy in next_tile for viewport renderingSergey Sharybin
No need to find tile closest to rendered center in this case, just return first possible tile. Saves some computation power.
2012-10-24Fix #32951: Progressive refine crashing Blender when used with multiple cuda ↵Sergey Sharybin
devices This time issue was caused by Save Buffers enabled and the reason blender crashed was tiles generated by cycles didn't match tiles generated by openexr. Currently solved it in a way that background rendering will allocate tiles in the same way render parts are generated in blender. Viewport rendering will still be using sliced image, but it's more tricky to change and it's no so big deal for now.
2012-10-23Fix #32951: Progressive refine crashing Blender when used with multiple cudaSergey Sharybin
Issue was caused by offline rendering could have been allocated the same tile to different devices and in this case buffers would become invalid. Made it more clear in the code, so now it's flag for tile manager to indicate whether tiles should always be allocated for the same device or not. Also cleaned a way how tile index for progressive refine is calculating, which is now avoids tricky computation based on tile coordinate and it's dimensions.
2012-10-13Cycles: progressive refine optionSergey Sharybin
Just makes progressive refine :) This means the whole image would be refined gradually using as much threads as it's set in performance settings. Having enough tiles is required to have this option working as it's expected. Technically it's implemented by repeatedly computing next sample for all the tiles before switching to next sample. This works around 7-12% slower than regular tile-based rendering, so use this option only if you really need it. This commit also fixes progressive update of image when Save Buffers option is enabled. And one more thing this commit fixes is handling display buffer with Save Buffers option enabled. If this option is enabled image buffer wouldn't have neither byte nor float buffer until image is fully rendered which could backfire in missing image while rendering in cases color management cache became full. This issue solved by allocating byte buffer for image buffer from tile update callback. Patch was reviewed by Brecht. He also made some minor edits to original version to patch. Thanks, man!
2012-09-17Cycles: change preview "resolution divider" that gave the number of lowerBrecht Van Lommel
resolutions to render, to a "start resolution" which gives the resolution to start at. This avoids unnecessary rendering of small resolutions in small viewports, and avoids long waiting on big viewports.
2012-09-04Cycles: merge of changes from tomato branch.Brecht Van Lommel
Regular rendering now works tiled, and supports save buffers to save memory during render and cache render results. Brick texture node by Thomas. http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/Textures#Brick_Texture Image texture Blended Box Mapping. http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/Textures#Image_Texture http://mango.blender.org/production/blended_box/ Various bug fixes by Sergey and Campbell. * Fix for reading freed memory in some node setups. * Fix incorrect memory read when synchronizing mesh motion. * Fix crash appearing when direct light usage is different on different layers. * Fix for vector pass gives wrong result in some circumstances. * Fix for wrong resolution used for rendering Render Layer node. * Option to cancel rendering when doing initial synchronization. * No more texture limit when using CPU render. * Many fixes for new tiled rendering.
2012-01-04Cycles: device code refactoring, no functional changes.Brecht Van Lommel
2011-12-21Cycles: some small code refactoring related to buffer parameters.Brecht Van Lommel
2011-12-20Cycles: border rendering support, includes some refactoring in how pixels areBrecht Van Lommel
accessed on devices.
2011-09-16Cycles: tweaks to properties and nodesBrecht Van Lommel
* Passes renamed to samples * Camera lens radius renamed to aperature size/blades/rotation * Glass and fresnel nodes input is now index of refraction * Glossy and velvet fresnel socket removed * Mix/add closure node renamed to mix/add shader node * Blend weight node added for shader mixing weights There is some version patching code for reading existing files, but it's not perfect, so shaders may work a bit different.
2011-09-15Cycles: attempted fixes for OS X preview render problem, and disableBrecht Van Lommel
kernel cache there now as well since it seems to give issues there.
2011-09-12Cycles:Brecht Van Lommel
* Fix missing update when editing objects with emission materials. * Fix preview pass rendering set to 1 not showing full resolution. * Fix CUDA runtime compiling failing due to missing cache directory. * Use settings from first render layer for visibility and material override. And a bunch of incomplete and still disabled code mostly related to closure sampling.
2011-08-28Cycles:Brecht Van Lommel
* Add alpha pass output, to use set Transparent option in Film panel. * Add Holdout closure (OSL terminology), this is like the Sky option in the internal renderer, objects with this closure show the background / zero alpha. * Add option to use Gaussian instead of Box pixel filter in the UI. * Remove camera response curves for now, they don't really belong here in the pipeline, should be moved to compositor. * Output full float values for rendering now, previously was only byte precision. * Add a patch from Thomas to get a preview passes option, but still disabled because it isn't quite working right yet. * CUDA: don't compile shader graph evaluation inline. * Convert tabs to spaces in python files.
2011-04-27Cycles render engine, initial commit. This is the engine itself, blender ↵Ton Roosendaal
modifications and build instructions will follow later. Cycles uses code from some great open source projects, many thanks them: * BVH building and traversal code from NVidia's "Understanding the Efficiency of Ray Traversal on GPUs": http://code.google.com/p/understanding-the-efficiency-of-ray-traversal-on-gpus/ * Open Shading Language for a large part of the shading system: http://code.google.com/p/openshadinglanguage/ * Blender for procedural textures and a few other nodes. * Approximate Catmull Clark subdivision from NVidia Mesh tools: http://code.google.com/p/nvidia-mesh-tools/ * Sobol direction vectors from: http://web.maths.unsw.edu.au/~fkuo/sobol/ * Film response functions from: http://www.cs.columbia.edu/CAVE/software/softlib/dorf.php