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-09-05Fix T41721: Muting render layer input nodes has no effectSergey Sharybin
2014-08-29Add callback for starting a render-jobCampbell Barton
We had complete/cancel, but no matching init for rendering, render_pre/post callbacks aren't always usable.
2014-08-20Viewport resolution divider works fine for halos nowSergey Sharybin
2014-08-19Fix T41457: Viewport resolution divider does freestyle for every resolutionSergey Sharybin
Now freestyle would be rendered for the final resolution only, making it so viewport navigation is really interactive.
2014-08-12Freestyle: Removed debugging code (use G.main instead of Freestyle-local ↵Tamito Kajiyama
struct Main).
2014-08-12Removed/disabled debugging code.Tamito Kajiyama
2014-08-12Made temporary changes to use G.main rather than Freestyle-local Main for ↵Tamito Kajiyama
debugging.
2014-08-12Removed debug prints.Tamito Kajiyama
2014-08-12Added debug prints.Tamito Kajiyama
2014-08-12Initial implementation of Cycles materials for Freestyle stroke rendering.Tamito Kajiyama
2014-08-12Proof-of-concept implementation of Freestyle support for Cycles.Tamito Kajiyama
2014-07-26Fix T41180: Crash when using motion blur with Freestyle.Tamito Kajiyama
In pipeline.c, do_render_3d() is called multiple times for each frame when motion blur is used. This caused duplicates of the same struct Render instance in re->freestyle_renders, resulting in fatal double freeing of allocated memory.
2014-07-09Fix T40939: Border render and SSS doesn't work correct in rendered viewportSergey Sharybin
There were some missing updates in the viewport render job which lead to wrong SSS mapping on the final resolution. There was also wrong scaling applying when border render is used. And last but not least(?) strands render was using first level of the resolution leading to really thick strands in the final viewport.
2014-07-07Fix T40712: Duplicators don't generate orco and UV coordinates in Cycles ↵Lukas Tönne
viewport preview. Fix T39286: Display percentage ignored in Cycles viewport. The threaded depsgraph update changes included a cleanup of the global is_rendering flag, which was replaced by a general EvalContext being passed to dupli functions. Problem is that the global flag was true for viewport duplis before (ugly hack), which was used as a check for generating dupli orco/UV from mesh data layers. The new flag is stricter and only true for actual renders, which disables these attributes and breaks the Cycles Texture Coordinates and UVMap nodes. The solution is to extend the simple for_render boolean to an enum: * VIEWPORT: OpenGL viewport drawing (dupli tex coords omitted) * PREVIEW: Viewport preview render (simplified modifiers) * RENDER: Full render with all details and attributes There are still some areas that need to be examined, in particular modifiers seem to totally ignore the EvaluationContext! Instead they generally execute without render params from the depsgraph (BKE_object_handle_update_ex) and are built with render settings explicitly. Differential Revision: https://developer.blender.org/D613
2014-07-04Fix T40843: Cycles does not support viewport render overrideSergey Sharybin
2014-07-03Follow-up to rBcc1372546ad5: Fix for segmentation fault in pipeline ↵Tamito Kajiyama
(freestyle/wm related). Render->freestyle_bmain is set to NULL after BKE_main_free() so that the struct Main is not considered for tagging any longer.
2014-07-01Fix for segmentation fault in pipeline (freestyle/wm related)Jeroen Bakker
2014-07-01Second attempt to fix T40833: Crash when rendering with freestyle.Tamito Kajiyama
The cause of the crash was identified in an uninitialized member variable `Main->lock`. Now that struct Main has a few member variables whose values are dynamically allocated, per-render Freestyle-specific Main data structures will be allocated and released using `BKE_main_new()` and `BKE_main_free()`, respectively. This revision complements the commit rB6135556f4556.
2014-06-28Add render result caching.Bastien Montagne
Simply add an option to render settings to save an EXR cache, just when the render is finished. Also changed RE_ReadRenderResult() to read cache instead of temp sample files (those are fully volatile now anyway). Path to save cached render results is an UserPreferences setting. Also added 'Reload render' feature to the Image Editor (so one can now re-open a blend, and in an Image Editor hit ctrl-R to (try to) reload last render from cache). Reviewers: campbellbarton, sergey Differential Revision: https://developer.blender.org/D553
2014-06-23Fix T40764: Keyframed Render Layers Don't Work as IntendedSergey Sharybin
2014-06-20Implement resolution divider in the Blender InternalSergey Sharybin
Currently resolution divider is not exposed to the interface yet, and i'm not even sure it needs to be exposed because it's somewhat weird configuration. Need to check how often artists are changing start resolution in Cycles. Pretty much straightforward implementation with the only weak part: render result is getting re-allocated and upscaled when current resolution is finished. Not sure how to make it faster actually. Maybe it's just a matter of making upscale fast enough. Needed to fix some possible memory leak happening in Freestyle when canceling rendering on a special stage -- it was missing temp bmain free, Reviewers: campbellbarton, dingto CC: sebastian_k, fsiddi, venomgfx Differential Revision: https://developer.blender.org/D609
2014-05-23Fix crash rendering linked scenes in compoSergey Sharybin
Simply linking scene (lib.blend) without compo into another one (compo.blend), using it in a compositor and rendering it would crash.
2014-05-22Fix T39901: Crashes if the resolution % is changed while rendering an animationSergey Sharybin
Copy render percentage. dimensions and border settings and use them for all the frames in the animation render.
2014-05-15Fix T39763: Blender renders disabled Render Layers using Blender InternalSergey Sharybin
For now only disables scene render if all the layers are disabled, but scene will still be rendered if it's used in compo, has enabled layers which are not used by compo. Current pipeline doesn't allow to handle such cases nicely, so leaving it for later.
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-30Code cleanup: remove unused includesCampbell Barton
Opted to keep includes if they are used indirectly (even if removing is possible).
2014-04-29Fix T39940: animation of render layer on/off toggle not working during render.Brecht Van Lommel
2014-04-01Code cleanup: remove TRUE/FALSE & WITH_BOOL_COMPAT defineCampbell Barton
2014-03-20Code cleanup: use true/false in sequencer functionsSergey Sharybin
2014-03-11Fix T39029: Blender Internal: Render tiles do not appear until render is ↵Sergey Sharybin
finished if Save Buffers enabled
2014-02-26Fix for bug reported by Pablo Vasquez (venomgfx) on IRC: Single layerLukas Tönne
renders were broken. This was caused by rB1a79abdad2443ff9f12e7efd95ee78a264a9d60a which makes a copy of the render layer list for thread safety. The single layer passed to this function is still in the original list though, so to get the correct index it has to be looked up there. Otherwise no active index is set and all layers are rendered every time.
2014-02-26Fix T38726: missing rendered viewport update when removing render layer.Brecht Van Lommel
2014-02-26Nicer solution to T38846: Split off the render layer forcing from theLukas Tönne
validity check for render operator. This way scene DNA can stay read-only there, cleaner and we don't have to pass an awkward bool pointer around.
2014-02-26Fix T38846: Render layer checkbox is not refreshed.Lukas Tönne
The render operator invoke checks render layers, which can force the render layer to be activated. This requires a notifier, which has to be done in the operator itself (can't do this inside pipeline code).
2014-02-22Code cleanup: styleCampbell Barton
2014-02-21Fix more of T38726: there still was a crash when deleting render layers.Brecht Van Lommel
2014-02-21Fix T38726: blender internal viewport render crash when deleting render layer.Brecht Van Lommel
2014-02-05Fix T38340 and T38473: fixed Scene pointers in Composite and Defocus nodes ↵Lukas Tönne
don't get updated based on context. As discussed in T38340 the solution is to use the current scene from context whenever feasible. Composite does not use node->id at all now, the scene which owns the compositing node tree is retrieved from context instead. Defocus node->id is made editable by the user. By default it is not set, which also will make it use the contextual scene and camera info. The node->id pointer in Defocus is **not** cleared in older blend files. This is done for backward compatibility: the node will then behave as before in untouched scenes. File Output nodes also don't store scene in node->id. This is only needed when creating a new node for initializing the file format. Reviewers: brecht, jbakker, mdewanchand Reviewed By: brecht Differential Revision: https://developer.blender.org/D290
2014-02-03Code cleanup: use bools where possibleCampbell Barton
2014-01-29Option to lock the interface while renderingSergey Sharybin
Added function called WM_set_locked_interface which does two things: - Prevents event queue from being handled, so no operators (see below) or values are even possible to run or change. This prevents any kind of "destructive" action performed from user while rendering. - Locks interface refresh for regions which does have lock set to truth in their template. Currently it's just a 3D viewport, but in the future more regions could be considered unsafe, or we could want to lock different parts of interface when doing different jobs. This is needed because 3D viewport could be using or changing the same data as renderer currently uses, leading to threading conflict. Notifiers are still allowed to handle, so render progress is seen on the screen, but would need to doublecheck on this, in terms some notifiers could be changing the data. For now interface locking happens for render job only in case "Lock Interface" checkbox is enabled. Other tools like backing would also benefit of this option. It is possible to mark operator as safe to be used in locked interface mode by adding OPTYPE_ALLOW_LOCKED bit to operator template flags. This bit is completely handled by wm_evem_system, not with operator run routines, so it's still possible to run operators from drivers and handlers. Currently allowed image editor navigation and zooming. Reviewers: brecht, campbellbarton Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D142
2014-01-27Revert the removal of Blender Internal Edge rendering, after artist feedback.Thomas Dinges
This reverts commit fb91a602c756f3ee5a122efa1862b8be7604186b.
2014-01-22Fix T38319: no camera error message for render not showing correctly.Brecht Van Lommel
2014-01-18Send sequencer render context as const pointer rather than as valueSergey Sharybin
No functional changes just creepy to send rather huge structure by value.
2014-01-08Fix T38074: sequence rendering gave "No camera" warning for other scenes thatBrecht Van Lommel
didn't need a camera because they use only compositing nodes.
2013-12-31Fix T37994: crash in preview render after recent color management changes.Lawrence D'Oliveiro
Reviewed By: brecht
2013-12-29Fix movie output when using render borderSergey Sharybin
Reported by @plasmasolutions in IRC.
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-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-11-19Blender Internal:Thomas Dinges
* Remove "Edge" post processing effect and the corresponding render layer. Since we have freestyle, this is not needed anymore and was a very simple effect anyway (Zbuffer filter effect, could be added to the compositor if really needed again). Reviewed By: brecht, ton Differential Revision: http://developer.blender.org/D14
2013-10-31code cleanup: spellingCampbell Barton