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
2015-05-04Separate scene simplification into viewport and renderSergey Sharybin
This way it is possible to have viewport simplification bumped all the way up, making viewport really responsive but still have final render to use highest subdivision possible. Reviewers: lukastoenne, campbellbarton, dingto Reviewed By: campbellbarton, dingto Subscribers: dingto, nutel, eyecandy, venomgfx Differential Revision: https://developer.blender.org/D1273
2015-04-27Cycles: Added support for light portalsLukas Stockner
This patch adds support for light portals: objects that help sampling the environment light, therefore improving convergence. Using them tor other lights in a unidirectional pathtracer is virtually useless. The sampling is done with the area-preserving code already used for area lamps. MIS is used both for combination of different portals and for combining portal- and envmap-sampling. The direction of portals is considered, they aren't used if the sampling point is behind them. Reviewers: sergey, dingto, #cycles Reviewed By: dingto, #cycles Subscribers: Lapineige, nutel, jtheninja, dsisco11, januz, vitorbalbio, candreacchio, TARDISMaker, lichtwerk, ace_dragon, marcog, mib2berlin, Tunge, lopataasdf, lordodin, sergey, dingto Differential Revision: https://developer.blender.org/D1133
2015-04-26Cycles: Add Mirror ball mapping to camera panorama optionsLukas Stockner
The projection code was already in place, so this just exposes the option. Differential Revision: https://developer.blender.org/D1079
2015-04-17Bake-API: reduce memory footprint when baking more than one object (Fix T41092)Dalai Felinto
Combine all the highpoly pixel arrays into a single array with a lookup object_id for each of the highpoly objects. Note: This changes the Bake API, external engines should refer to the bake_api.c for the latest API. Many thanks for Sergey Sharybin for the complete review, changes suggestion and feedback. (you rock!) Reviewers: sergey Subscribers: pildanovak, marcclintdion, monio, metalliandy, brecht Maniphest Tasks: T41092 Differential Revision: https://developer.blender.org/D772
2015-04-09Cycles: Fix wrong render result in certain configuration of render layer's ↵Sergey Sharybin
surface/hair There were some synchronization missing in cases when only one of those settings was disabled. Also added a render test for such configurations now.
2015-04-08Cycles: Code cleanup, indentation. Was wrong in the multiview commitSergey Sharybin
2015-04-06Cycles: Cleanup, spaces around assignment operatorSergey Sharybin
Did some bad spacing in recent commits, better to get rid of those so they does not confuse those who're working on sources.
2015-04-06Cycles: Experiment with making previews more interactiveSergey Sharybin
There were two major problems with the interactivity of material previews: - Beckmann tables were re-generated on every material tweak. This is because preview scene is not set to be persistent, so re-triggering the render leads to the full scene re-sync. - Images could take rather noticeable time to load with OIIO from the disk on every tweak. This patch addressed this two issues in the following way: - Beckmann tables are now static on CPU memory. They're couple of hundred kilobytes only, so wouldn't expect this to be an issue. And they're needed for almost every render anyway. This actually also makes blackbody table to be static, but it's even smaller than beckmann table. Not totally happy with this approach, but others seems to complicate things quite a bit with all this render engine life time and so.. - For preview rendering all images are considered to be built-in. This means instead of OIIO which re-loads images on every re-render they're coming from ImBuf cache which is fully manageable from blender side and unused images gets freed later. This would make it impossible to have mipmapping with OSL for now, but we'll be working on that later anyway and don't think mipmaps are really so crucial for the material preview. This seems to be a better alternative to making preview scene persistent, because of much optimal memory control from blender side. Reviewers: brecht, juicyfruit, campbellbarton, dingto Subscribers: eyecandy, venomgfx Differential Revision: https://developer.blender.org/D1132
2015-04-06Multi-View and Stereo 3DDalai Felinto
Official Documentation: http://www.blender.org/manual/render/workflows/multiview.html Implemented Features ==================== Builtin Stereo Camera * Convergence Mode * Interocular Distance * Convergence Distance * Pivot Mode Viewport * Cameras * Plane * Volume Compositor * View Switch Node * Image Node Multi-View OpenEXR support Sequencer * Image/Movie Strips 'Use Multiview' UV/Image Editor * Option to see Multi-View images in Stereo-3D or its individual images * Save/Open Multi-View (OpenEXR, Stereo3D, individual views) images I/O * Save/Open Multi-View (OpenEXR, Stereo3D, individual views) images Scene Render Views * Ability to have an arbitrary number of views in the scene Missing Bits ============ First rule of Multi-View bug report: If something is not working as it should *when Views is off* this is a severe bug, do mention this in the report. Second rule is, if something works *when Views is off* but doesn't (or crashes) when *Views is on*, this is a important bug. Do mention this in the report. Everything else is likely small todos, and may wait until we are sure none of the above is happening. Apart from that there are those known issues: * Compositor Image Node poorly working for Multi-View OpenEXR (this was working prefectly before the 'Use Multi-View' functionality) * Selecting camera from Multi-View when looking from camera is problematic * Animation Playback (ctrl+F11) doesn't support stereo formats * Wrong filepath when trying to play back animated scene * Viewport Rendering doesn't support Multi-View * Overscan Rendering * Fullscreen display modes need to warn the user * Object copy should be aware of views suffix Acknowledgments =============== * Francesco Siddi for the help with the original feature specs and design * Brecht Van Lommel for the original review of the code and design early on * Blender Foundation for the Development Fund to support the project wrap up Final patch reviewers: * Antony Riakiotakis (psy-fi) * Campbell Barton (ideasman42) * Julian Eisel (Severin) * Sergey Sharybin (nazgul) * Thomas Dinged (dingto) Code contributors of the original branch in github: * Alexey Akishin * Gabriel Caraballo
2015-04-06Cycles: Free unused image buffers when rendering with locked interfaceSergey Sharybin
It is still possible to free a bit more memory by detecting buildin images which are not used by shaders, but that's not going to improve memory usage that much to bother about this now. Such change brings peak memory usage from 4.1GB to 3.4GB when rendering 01_01_01_D layout scene from the Gooseberry project. Mainly because of freeing memory used by rather huge environment map in the viewport. Reviewers: campbellbarton, juicyfruit Subscribers: eyecandy Differential Revision: https://developer.blender.org/D1215
2015-03-30Grey out high quality depth of field when it's not supported by GPUAntony Riakiotakis
2015-03-30Cycles: Fix compilation error with MSVC after recent C++11 changesSergey 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, make strict flags happy about disabled OSLSergey Sharybin
2015-03-27Cycles: Code cleanup, prepare for strict C++ flagsSergey Sharybin
2015-03-25Fix T44064: Reroute two-node loop crashSergey Sharybin
Issue was caused by cycles in shader graph confusing it's simplification stage. Now we're ignoring links which are marked as invalid from blender side so we don't run into such cycles and keep graph code simple.
2015-03-23Tidy up the user interface for depth of field based on feedback byAntony Riakiotakis
NudelZ on irc, thanks!
2015-03-19Missed this last commit.Antony Riakiotakis
2015-03-19Fix cycles dof settingsAntony Riakiotakis
2015-03-19Depth of field high quality:Antony Riakiotakis
A new checkbox "High quality" is provided in camera settings to enable this. This creates a depth of field that is much closer to the rendered result and even supports aperture blades in the effect, but it's more expensive too. There are optimizations to do here since the technique is very fill rate heavy. People, be careful, this -can- lock up your screen if depth of field blurring is too extreme. Technical details: This uses geometry shaders + instancing and is an adaptation of techniques gathered from http://bartwronski.com/2014/04/07/bokeh-depth-of-field-going-insane- http://advances.realtimerendering.com/s2011/SousaSchulzKazyan%20- %20in%20Real-Time%20Rendering%20Course).ppt TODOs: * Support dithering to minimize banding. * Optimize fill rate in geometry shader.
2015-03-13Add an option to mesh.calc_tessface() to get rid of polygons and loopsSergey Sharybin
The purpose of this change is to add extra possibility to render engines and export scripts to reduce peak memory footprint during their operation. This new argument should be used with care since it'll leave mesh in not really compatible with blender format, but it's ok to be used on temp meshes. Unfortunately, it's hard to get scene where it'll show huge benefit because in my tests with cycles peak memory is reached in MEM_printmemlist_stats(). However, in the file with sintel dragon it gives around 1gig of memory benefit after removing the polys which would allow other heavy to compute stuff such as hair (or even pointiness calculation) to not be a peak memory usage. In any case, this change is nice to have IMO, and only means more parts of scene export code should be optimized memory-wise. Reviewers: campbellbarton Differential Revision: https://developer.blender.org/D1125
2015-03-13Cycles: Free caches used by the synchronized objectsSergey Sharybin
Issue this commit is addressed to is that particle system and particle modifier will contain caches once derived mesh was requested and this cached data will never be freed. This could easily lead to unwanted memory peaks during synchronization stage of rendering. The idea is to have RNA function in object which would free caches which can't be freed otherwise. This function is not intended to deal with derived final since it might be used by other objects (for example by object with boolean modifier). This cache freeing is only happening in the background rendering and locked interface rendering. From quick tests with victor file this change reduces peak memory usage by command line rendering by around 6% (1780MB vs. 1883MB). For rendering from the interface it's about 12% (1763MB vs. 1998MB). Reviewers: campbellbarton, lukastoenne Differential Revision: https://developer.blender.org/D1121
2015-03-12Partial fix for T43967: Background is wrong in 2.74Sergey Sharybin
Was missing do-versions code after rotation order change in Cycles. This is a regression and to be ported to the final release branch.
2015-03-09Cycles: Improve logging in object motion detectionSergey Sharybin
Reporting mesh name is not really useful, since it's name does not any relation with the original object/mesh names.
2015-03-05Fix T43672: Cycles preview stalls when out of viewCampbell Barton
2015-02-21Cycles: Make it survive if preview_cycles.blend uses persistent dataSergey Sharybin
Currently should be no functional changes, but nice thing to have fixed for some further experiments.
2015-02-21Cycles: Use lower progressive update timeout for preview renderingSergey Sharybin
This ways previews are refreshing with the same ratio as job was expecting this to happen, giving more instant feedback on the changes.
2015-02-19Cleanup: Restructure curve settings code a bit.Thomas Dinges
This is a bit more logical, as it better represents the 3 primitive types we have.
2015-02-19Cycles: Make sphere and tube image mapping friendly with OpenCLSergey Sharybin
OpenCL doesn't let you to get address of vector components, which is kinda annoying. On the other hand, maybe now compiler will have more chances to optimize something out.
2015-02-18Cycles: Initialize "headless" flags on engine initializationSergey Sharybin
This flag is global for all the sessions and never changes. so it doesn't really make sense to pass it around to all sessions and synchronization routines. Switched to a static member of BlenderSession now, but it's probably more logical to introduce some sort of BlenderGlobals. Doesn't currently worth a hassle for a single boolean flag tho.
2015-02-17Cycles: Make blender session aware of rendering from command lineSergey Sharybin
This way we can do some more aggressive policy about releasing temporary data during synchronization.
2015-02-17Fix T43685: New pointiness attribute error with auto-smooth enabledSergey Sharybin
Simple fix: all vertex attributes should be filled in before split.
2015-02-17Cycles: Minor code cleanup in recent attributes changesSergey Sharybin
2015-02-17Cleanup: Update comments and make it more clear what volume interpolation is ↵Thomas Dinges
for.
2015-02-16UI messages fixes and cleanup.Bastien Montagne
2015-02-12Use the RNA for overriding the name instead.Antony Riakiotakis
2015-02-12More naming refinement GPU fstop -> Viewport f-stopAntony Riakiotakis
2015-02-12Add DOF fstop property for cycles, also don't grey it out when object isAntony Riakiotakis
set as focused
2015-02-10Cycles: Fallback to bottom-top tile order when rendering from the command lineSergey Sharybin
In the worst case it'll do nothing, in the best case it might give some percent of speedup because of better cache coherency. Currently it's all handled as an override on blender_python level, don't really see reason to penetrate the boolean flag further into sync code. This can always be done later if needed.
2015-02-10Cycles: Move mesh attribute creation into separate functionsSergey Sharybin
This makes overall code of create_mesh() much cleaner and easier to follow.
2015-02-10Cycles: optimize one normalization out from the previous commitSergey Sharybin
2015-02-10Cycles: implement pointiness geometry attributeSergey Sharybin
This attribute means how "pointy" the geometry surface is, which allows to do effects like dirt maps and wear-off effects on render geometry. This means the attribute is calculated for the final mesh which means no baking (which implies UV unwrap) is needed. Apart from this the behavior is quite close to how vertex dirty colors works. The new attribute is available as an output socket of Geometry node. There's no penalty for the render time, only some delay on scene preparation (the delay is linear of the mesh complexity). Reviewers: brecht, juicyfruit Subscribers: eyecandy, venomgfx Differential Revision: https://developer.blender.org/D1086
2015-02-05Add Custom Loop Normals.Bastien Montagne
This is the core code for it, tools (datatransfer and modifier) will come in next commits). RNA api is already there, though. See the code for details, but basically, we define, for each 'smooth fan' (which is a set of adjacent loops around a same vertex that are smooth, i.e. have a single same normal), a 'loop normal space' (or lnor space), using auto-computed normal and relevant edges, and store custom normal as two angular factors inside that space. This allows to have custom normals 'following' deformations of the geometry, and to only save two shorts per loop in new clnor CDLayer. Normal manipulation (editing, mixing, interpolating, etc.) shall always happen with plain 3D vectors normals, and be converted back into storage format at the end. Clnor computation has also been threaded (at least for Mesh case, not for BMesh), since the process can be rather heavy with high poly meshes. Also, bumping subversion, and fix mess in 2.70 versioning code.
2015-01-29cleanup: pep8Campbell Barton
also remove empty class parenthesis
2015-01-27Fix T43346: Window mapping is wrong in preview renderSergey Sharybin
The issue was caused by the whole viewplane used for mapping calculation which would for sure lead to differences between final camera render and viewport render from the camera view. This commit makes it so window texture mapping is the same as final render when viewing from the camera in viewport render. It's not totally clear what's the right thing to do when viewport is not in the camera view mode and that part is left unchanged.
2015-01-27Cycles: Support texture coordinate from another objectSergey Sharybin
This is the same as blender internal's texture mapping from another object, so this way it's possible to control texture space of one object by another. Quite straightforward change apart from the workaround for the stupidness of the dependency graph. Now shader has flag telling that it depends on object transform. This is the simplest way to know which shaders needs to be tagged for update when object changes. This might give some false-positive tags now but reducing them should not be priority for Cycles and rather be a priority to bring new dependency graph. Also GLSL preview does not support using other object for mapping. This is actually correct for BI shading as well and to be addressed as a part of general GLSL viewport improvements since it's not really clear how to support this in GLSL. Reviewers: brecht, juicyfruit Subscribers: eyecandy, venomgfx Differential Revision: https://developer.blender.org/D1021
2015-01-22Fix T43120: Cycles mapping node rotation order is different from viewportSergey Sharybin
Root of the issue goes to the fact that since the very beginning Cycles was using ZYX euler rotation for mapping shader node but blender was always using XYZ euler rotation. This commit switches Cycles to use XYZ euler order and adds versioning code to preserve backward compatibility. There was no really nice solution here because either we're ending up with versioning code or we'll need to deal with all sort of exceptions from blender side in order to support ZYX order for the mapping node. The latest one is also creepy from the other render engines points of view -- that might break compatibility with existing bindings or introduce some extra headache for them in the future. This could also become a PITA for us with need of supporting all sort of weird and wonderful exceptions in the refactored viewport project. NOTE: This commit breaks forward compatibility, meaning opening new files in older blender might not give proper result if Mapping node was used. Also, libraries are to be re-saved separately from the scene file, otherwise versioning code for them wouldn't run if scene file was re-saved with new version of blender. Reviewers: brecht, juicyfruit, campbellbarton Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D973
2015-01-20Support in Cycles for the extra spiral keys in hair paths.Lukas Tönne
2015-01-19Make use/computation of lnors consistant.Bastien Montagne
Issue was, when requesting (building) lnors for a mesh that has autosmooth disabled, one would expect to simply get vnors as lnors. Until now, it wasn't the case, which was bad e.g. for normal projections of loops in recent remap code (projecting along split loop normals when you would expect projection along vertex normals...). Also, removed the 'angle' parameter from RNA's `mesh.calc_normals_split`. This should *always* use mesh settings (both autosmooth and smoothresh), otherwise once again we'd get inconsistencies in some cases. Will update fbx and obj addons too.
2015-01-19Viewport: Add adjustable safe areas, 3d-view & VSECampbell Barton
Also adds safe-area presets. D325 by Diego Gangl with own edits.