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
2014-05-02Fix T39985: crash while rendering a scene with compositing nodes using ↵Sergey Sharybin
another scene The issue was caused by the wrong scene used to acquire render result for. Now made it so render pipeline reports currently rendering scene to the job via special callback. This also solves missing tile highlight issue when rendering multiple scenes in the compositor.
2014-04-30Fix T39952: Printing tiles gives negative numbersCampbell Barton
2014-04-21Follow up to previous commit: tweak RE_RAYTRACE_EPSILON (correction value usedBastien Montagne
when checking neighbor faces against shadowing).
2014-04-21Fix T39735: New auto smooth creates artifacts with flat shaded faces(BI)Bastien Montagne
This actually had nothing specific to new split normals, it was an internal limitation of BI raytracer, which would check against neighbor face shadowing only when they shared a common vertex, now it also performs checks when both faces have a vertex with a common "ancestor" (org index). Note this allows to also fix same issue when using SplitEdges modifier (and potentially others?), but only when AutoSmooth is enabled (due to some compute/mem overhead, we do not want to enable this code systematically). Thanks to Brecht for advices and review!
2014-04-11Blender Internal: remove BLI BVH for raytracing.Brecht Van Lommel
It has no benefits over other BVH types, as far as I know it was only added because it was possible. This also fixes T39344.
2014-04-01Code cleanup: remove TRUE/FALSE & WITH_BOOL_COMPAT defineCampbell Barton
2014-03-30Style cleanupCampbell Barton
2014-03-05Code cleanup: remove long unused gamma correction tablesCampbell Barton
2014-02-03Code cleanup: use bools where possibleCampbell Barton
2014-01-23Fix T36165: blender internal HDR textures with negative values got clamped.Brecht Van Lommel
For example for vector displacement, you may have an EXR texture that has negative colors values. Blender clamps these by default, now the Colors panel for textures has a Clamp option to disable this clamping. This option affects all texture types and is enabled by default, you need to disable it if you want negative values to have an influence. Patch by Fredrik Hansson with modifications by me.
2013-12-26Threaded object update and EvaluationContextSergey Sharybin
Summary: Made objects update happening from multiple threads. It is a task-based scheduling system which uses current dependency graph for spawning new tasks. This means threading happens on object level, but the system is flexible enough for higher granularity. Technical details: - Uses task scheduler which was recently committed to trunk (that one which Brecht ported from Cycles). - Added two utility functions to dependency graph: * DAG_threaded_update_begin, which is called to initialize threaded objects update. It will also schedule root DAG node to the queue, hence starting evaluation process. Initialization will calculate how much parents are to be evaluation before current DAG node can be scheduled. This value is used by task threads for faster detecting which nodes might be scheduled. * DAG_threaded_update_handle_node_updated which is called from task thread function when node was fully handled. This function decreases num_pending_parents of node children and schedules children with zero valency. As it might have become clear, task thread receives DAG nodes and decides which callback to call for it. Currently only BKE_object_handle_update is called for object nodes. In the future it'll call node->callback() from Ali's new DAG. - This required adding some workarounds to the render pipeline. Mainly to stop using get_object_dm() from modifiers' apply callback. Such a call was only a workaround for dependency graph glitch when rendering scene with, say, boolean modifiers before displaying this scene. Such change moves workaround from one place to another, so overall hackentropy remains the same. - Added paradigm of EvaluaitonContext. Currently it's more like just a more reliable replacement for G.is_rendering which fails in some circumstances. Future idea of this context is to also store all the local data needed for objects evaluation such as local time, Copy-on-Write data and so. There're two types of EvaluationContext: * Context used for viewport updated and owned by Main. In the future this context might be easily moved to Window or Screen to allo per-window/per-screen local time. * Context used by render engines to evaluate objects for render purposes. Render engine is an owner of this context. This context is passed to all object update routines. Reviewers: brecht, campbellbarton Reviewed By: brecht CC: lukastoenne Differential Revision: https://developer.blender.org/D94
2013-12-18Fix T37675: blender internal viewport render not updating properly with volumes.Brecht Van Lommel
2013-12-17Changes to partial update during renderingSergey Sharybin
Summary: Mainly addressed to solve old TODO with color managed fallback to CPU mode when displaying render result during rendering. That fallback was caused by the fact that partial image update was always acquiring image buffer for composite output and was only modifying display buffer directly. This was a big issue for Cycles rendering which renders layers one by one and wanted to display progress of each individual layer. This lead to situations when display buffer was based on what Cycles passes via RenderResult and didn't take layer/pass from image editor header into account. Now made it so image buffer which partial update is operating with always corresponds to what is set in image editor header. To make Cycles displaying progress of all the layers one by one made it so image_rect_update switches image editor user to newly rendering render layer. It happens only once when render engine starts rendering next render layer, so should not be annoying for navigation during rendering. Additional change to render engines was done to make it so they're able to merge composite output to final result without marking tile as done. This is done via do_merge_result argument to end_result() callback. This argument is optional so should not break script compatibility. Additional changes: - Partial display update for Blender Internal now happens from the same thread as tile rendering. This makes it so display conversion (which could be pretty heavy actually) is done in separate threads. Also gives better UI feedback when rendering easy scene with small tiles. - Avoid freeing/allocating byte buffer for render result if it's owned by the image buffer. Only mark it as invalid for color management. Saves loads of buffer re-allocations in cases when having several image editors opened with render result. This change in conjunction with the rest of the patch gave around 50%-100% speedup of render time when displaying non-combined pass during rendering on my laptop. - Partial display buffer update was wrong for buffers with number of channels different from 4. - Remove unused window from RenderJob. - Made image_buffer_rect_update static since it's only used in single file. Reviewers: brecht Reviewed By: brecht CC: dingto Differential Revision: http://developer.blender.org/D98
2013-10-12Task scheduler ported form CYcles to CSergey Sharybin
Replaces ThreadedWorker and is gonna to be used for threaded object update in the future and some more upcoming changes. But in general, it's to be used for any task based subsystem in Blender. Originally written by Brecht, with some fixes and tweaks by self.
2013-10-10Support for baking vertex colors to textures.Antony Riakiotakis
It allows effects such as baking vertex dirt maps to textures. Also vertex based painting painting may be faster in the future, so this is useful to have. Thanks to Sergey for the review!
2013-09-21style cleanup: whitespace & odd indentationCampbell Barton
2013-09-12code cleanup: headers - doxy comments.Campbell Barton
2013-08-08disable cycles when building without python, also use const for function ↵Campbell Barton
args in more places.
2013-07-02remove nan copyrights from code added since blender become opensource (copy ↵Campbell Barton
paste errors), also remove BKE_script.h
2013-05-28move BLO_sys_types.h -> BLI_sys_types.h (it had nothing todo with loading)Campbell Barton
remove MEM_sys_types.h which was a duplicate.
2013-05-28code cleanup: comment/remove unused definesCampbell Barton
2013-05-173D Viewport rendering (Blender Internal)Ton Roosendaal
Added incremental re-render on view changes. That means all data preprocessing only needs to be done once on view changes, quite faster that way. Also fixed a bug in raytracing strands with soft shadows, was wrongly changing coordinates in a static array. Note: proper signals for re-renders is still on the todo. Many button options don't signal a re-render yet. Work around: press G+ESC for quick full renders.
2013-05-123D viewport render preview:Ton Roosendaal
- Put it available as a default now (no debug value needed) - Fixed viewport size error, viewport was badly set (visible with border render, property regions) - Fixed hanging lock in conflict between drawing and initialize new renders.
2013-04-24Fix for full-sample anti-aliasing (FSAA) not working with Freestyle.Tamito Kajiyama
Reverted the trunk revision 56136 and part of revision 56127 concerning the local Main for Freestyle and temporary scene generation for stroke rendering. The function do_merge_fullsample() in pipeline.c has access to the Scene of each Render, so that the temporary Scene generated by Freestyle has to be kept for FSAA even after stroke rendering has been done. By the same token, the local Main has been moved from the BlenderStrokeRenderer class to Render. It is noted that free_all_freestyle_renders() in pipeline.c is intended to get the temporary Scene of each Render released specifically taking account of the FSAA case.
2013-04-16Blender Internal Render in viewportTon Roosendaal
Because of our release soon, feature has been added behind the Debug Menu. CTRL+ALT+D and set it to -1. Or commandline --debug-value -1. When debug set to -1, you can put the viewport to 'render' mode, just like for Cycles. Notes for testers: (and please no bugs in tracker for this :) - It renders without AA, MBlur, Panorama, Sequence, Composite - Only active render layer gets rendered. Select another layer will re-render. - But yes: it works for FreeStyle renders! - Also does great for local view. - BI is not well suited for incremental renders on view changes. This only works for non-raytrace scenes, or zoom in ortho or camera mode, or for Material changes. In most cases a full re-render is being done. - ESC works to stop the preview render. - Borders render as well. (CTRL+B) - Force a refresh with arrow key left/right. A lot of settings don't trigger re-render yet. Tech notes: - FreeStyle is adding a lot of temp objects/meshes in the Main database. This caused DepsGraph to trigger changes (and redraws). I've prepended the names for these temp objects with char number 27 (ESC), and made these names be ignored for tag update checking. - Fixed some bugs that were noticable with such excessive re-renders, like for opening file window, quit during renders.
2013-03-26Merging r55547 through r55594 from trunk into soc-2008-mxcurioniSergey Sharybin
2013-03-26style cleanup:Campbell Barton
also rename mesh_getVertexCos() --> BKE_mesh_vertexCos_get() to match curve function.
2013-03-13New implementation of Freestyle edge/face marksTamito Kajiyama
The previous implementation of Freestyle edge/face marks was refactored based on suggestions from the latest code review by Campbell. The new implementation relies on mesh CustomData to store edge/face marks, instead of introducing extra flags in the core Mesh and BMesh data structures. The CustomData-based implementation will allow further additions of new edge/face attributes because of the independence from Mesh/BMesh. This revision is work in progress, mainly intended to address the review comments and ask for further code review in view of the trunk merger in the upcoming 2.67 release.
2013-01-27Merged changes in the trunk up to revision 54110.Tamito Kajiyama
Conflicts resolved: source/blender/blenfont/SConscript source/blender/blenkernel/intern/subsurf_ccg.c source/blender/makesdna/intern/makesdna.c source/blender/makesrna/intern/rna_scene.c
2013-01-21Fixed render time regression in Blender InternalSergey Sharybin
It was caused by image threading safe commit and it was noticeable only on really multi-core CPU (like dual-socket Xeon stations), was not visible on core i7 machine. The reason of slowdown was spinlock around image buffer referencing, which lead to lots of cores waiting for single core and using image buffer after it was referenced was not so much longer than doing reference itself. The most clear solution here seemed to be introducing Image Pool which will contain list of loaded and referenced image buffers, so all threads could skip lock if the pool is used for reading only. Lock only needed in cases when buffer for requested image user is missing in the pool. This lock will happen only once per image so overall amount of locks is much less that it was before. To operate with pool: - BKE_image_pool_new() creates new pool - BKE_image_pool_free() destroys pool and dereferences all image buffers which were loaded to it - BKE_image_pool_acquire_ibuf() returns image buffer for given image and user. Pool could be NULL and in this case fallback to BKE_image_acquire_ibuf will happen. This helps to avoid lots to if(poll) checks in image sampling code. - BKE_image_pool_release_ibuf releases image buffer. In fact, it will only do something if pool is NULL, in all other case it'll equal to DoNothing operation.
2013-01-06Merged changes in the trunk up to revision 53584.Tamito Kajiyama
Conflicts resolved: release/scripts/startup/bl_ui/properties_render.py source/blender/blenloader/intern/readfile.c source/blender/editors/interface/interface_templates.c source/blender/makesrna/RNA_enum_types.h Also made additional code updates for: r53355 UIList - Python-extendable list of UI items r53460 Alpha premul pipeline cleanup
2013-01-02Patch [#29035] Vertex colour bakingAlex Fraser
There is a new option in the Bake panel to enable baking to vertex colors. Unlike regular baking, this mode does not require a UV map or image to bake to, however the object must have a vertex color layer. Thanks to: - AutoCRC for funding - Brech van Lommel and Dalai Felinto for their initial advice on how to implement it - Campbell Barton for helping to make this feature work with modifiers and bmesh
2013-01-01Highlight currently rendering tilesSergey Sharybin
This commit implements highlight of tiles which are being currently rendered for both Blender Internal and Cycles (and should be possible to use it for other external engines as well). Couple of implementation details: - Added one extra boolean flag to render engine which should be set to truth if render engine wants to highlight tiles. If so, property use_highlight_tiles should be set to True. - Render Part's ready boolena was changed by status enum, which could be NONE, IN_PROGRESS and READY. All render part with IN_PROGRESS status will be highlighted in image editor. - For external engines render part's status is filling in automatically. Initially all render parts has got NONE status, then one external engine acquire render result, corresponding part will change status to IN_PROGRESS. As soon as render result is finished, corresponding render part will change status to FINISHED This should make it easy to highlight tiles for other engines as well.
2012-12-31Alpha premul pipeline cleanupSergey Sharybin
This assumptions are now made: - Internally float buffers are always linear alpha-premul colors - Readers should worry about delivering float buffers with that assumptions. - There's an input image setting to say whether it's stored with straight/premul alpha on the disk. - Byte buffers are now assumed have straight alpha, readers should deliver straight alpha. Some implementation details: - Removed scene's color unpremultiply setting, which was very much confusing and was wrong for default settings. Now all renderers assumes to deliver premultiplied alpha. - IMB_buffer_byte_from_float will now linearize alpha when converting from buffer. - Sequencer's effects were changed to assume bytes have got straight alpha. Most of effects will work with bytes still, however for glow it was more tricky to avoid data loss, so there's a commented out glow implementation which converts byte buffer to floats first, operates on floats and returns bytes back. It's slower and not sure if it should actually be used -- who're using glow on alpha anyway? - Sequencer modifiers should also be working nice with straight bytes now. - GLSL preview will predivide float textures to make nice shading, shading with byte textures worked nice (GLSL was assuming straight alpha). - Blender Internal will set alpha=1 to the whole sky. The same happens in Cycles and there's no way to avoid this -- sky is neither straight nor premul and doesn't fit color pipeline well. - Straight alpha mode for render result was also eliminated. - Conversion to correct alpha need to be done before linearizing float buffer. - TIFF will now load and save files with proper alpha mode setting in file meta data header. - Remove Use Alpha from texture mapping and replaced with image datablock setting. Behaves much more predictable and clear from code point of view and solves possible regressions when non-premultiplied images were used as textures with ignoring alpha channel.
2012-12-20Another big patch set by Bastien Montagne, thanks a lot!Tamito Kajiyama
* Made Freestyle optional (turned on by default). * Fix for missing bpath.c updates in the previous merge of trunk changes.
2012-12-19Merged changes in the trunk up to revision 53146.Tamito Kajiyama
Conflicts resolved: release/datafiles/startup.blend source/blender/blenkernel/CMakeLists.txt source/blender/blenlib/intern/bpath.c source/blender/blenloader/intern/readfile.c
2012-12-18Multires baker: made octree aware of user-defined resolution in performance ↵Sergey Sharybin
panel
2012-12-18Ambient occlusion baker from multi-resolution meshSergey Sharybin
This implements AO baking directly from multi-resolution mesh with much less memory overhead than regular baker. Uses rays distribution implementation from Morten Mikkelsen, raycast is based on RayObject also used by Blender Internal. Works in single-thread yet, multi-threading would be implemented later.
2012-12-18Fix #33505: various issuesBrecht Van Lommel
* Motion blur with shutter time > 1 did result in the correct evaluation of some modifiers because it set the subframe to values > 1, and some places assume the current frame to be set to the integer coordinate and the subframe to be a value between 0 and 1. * Shape keys did not take subframe time offsets into account. * Point density texture was using an current frame value that was never set.
2012-12-11define the size of matrix args for both rows/cols.Campbell Barton
2012-11-26Merged changes in the trunk up to revision 52546.Tamito Kajiyama
Conflicts resolved: release/datafiles/startup.blend release/scripts/startup/bl_ui/space_view3d.py source/blender/blenkernel/intern/idcode.c
2012-11-21fix for re->partx/re->party values being different for ↵Campbell Barton
RE_Database_FromScene() then the main render loop.
2012-11-12Merged changes in the trunk up to revision 52118.Tamito Kajiyama
Conflicts resolved: source/blender/makesrna/intern/rna_scene.c
2012-11-09Cycles: persistent images optionSergey Sharybin
This option enables keeping loaded images in the memory in-between of rendering. Implemented by keeping render engine alive for until Render structure is being freed. Cycles will free all data when render finishes, optionally keeping image manager untouched. All shaders, meshes, objects will be re-allocated next time rendering happens. Cycles cession and scene will be re-created from scratch if render/ scene parameters were changed. This will also allow to keep compiled OSL shaders in memory without need to re-compile them again. P.S. Performance panel could be cleaned up a bit, not so much happy with it's vertical alignment currently but not sure how to make it look better. P.P.S. Currently the only way to free images from the device is to disable Persistent Images option and start rendering.
2012-11-08Merged changes in the trunk up to revision 51985.Tamito Kajiyama
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-29Merged changes in the trunk up to revision 51718.Tamito Kajiyama
Conflicts resolved: source/blender/blenloader/intern/readfile.c source/blender/makesrna/intern/rna_scene.c release/datafiles/startup.blend
2012-10-27style cleanupCampbell Barton
2012-10-21style cleanup: trailing tabs & expand some non prefix tabs into spaces.Campbell Barton
2012-10-20Merged changes in the trunk up to revision 51448.Tamito Kajiyama
Conflicts resolved: source/blender/blenkernel/CMakeLists.txt source/blender/blenloader/intern/readfile.c source/blender/editors/mesh/editmesh_tools.c source/blender/makesrna/intern/rna_main_api.c