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-03-01Code cleanup: correct abs use and quiet warningsCampbell Barton
2014-02-28Blender Internal: Bring back previous behavior that rendered viewport uses ↵IRIE Shinsuke
render visibility rather than viewport visibility. Commit 162d6c73e3d0 changed the behavior of rendered viewport to use viewport visibility, but that can cause some problems. For example, mesh deform cage is drawn as a solid/textured mesh (not a wireframe mesh) and its unnecessary surfaces and shadows mess up the preview.
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-26Fix T38831: blender internal enabling shadow pass changes material node diffuse.Brecht Van Lommel
It would include/exclude shadow depending on the pass being disabled/enabled, but that should have no influence on the combined render result. Now it always includes shadow.
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-24Fix T38801: Dupli objects with modifiers exhibit bad transform artifactsLukas Tönne
in Blender Internal renderer. The BI renderer applies modifiers //after// changing the obmat of the respective object (for the first instance it encounters). Before rB6940bf0 the original obmat (omat) was stored inside dupli object data, which was removed in favor of local omat variables due to hackishness and redundancy. Problem with BI is that all the obmats have to be overridden in relation to each other to produce the correct modifier results (here: offset object for the array modifier). The patch restores the old (messy) behavior for BI by first overriding **all** the obmats at once from duplis, then creating render instances, then cleaning up. A better solution would be to avoid these modifier hacks in BI altogether and properly evaluate them in the original object space, but that requires far greater changes to the old code base, and is out of scope for bugfixing.
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-17Blender Internal: Revert a part of rB162d6c73e3d0, that broke rendered ↵IRIE Shinsuke
preview and often causes crash when using material light group.
2014-02-14Code cleanup: duplicate headersCampbell Barton
2014-02-14Blender Internal: Fix regression that sometimes shadows are not rendered, ↵IRIE Shinsuke
caused by rBec4ed2e3df507245aceb7341b4fdf2f5ed935067. Easy mistake in code cleanup. :)
2014-02-12Revert own previous commit rBe2f9afbaabbd.IRIE Shinsuke
The "Cast Shadows" worked as expected, but it can cause problem in some cases. For example, when using strand render, we need disabling only buffer shadows, but the previous changes made that impossible. "Cast Shadows" should be added as a newly created option.
2014-02-11Fix T38578: blender internal texture nodes + volume render error.Brecht Van Lommel
2014-02-11Blender Internal: Modify material property "Cast Buffer Shadows" to affect ↵IRIE Shinsuke
ray shadows also, and rename it to "Cast Shadows". This allows us to make materials that don't cast ray shadows. Turning off this property can reduce the rendering time slightly. Note: RNA path is changed to "use_cast_shadows" as well. The older path "use_cast_buffer_shadows" still can be used as its alias, but it will be removed after updating some addons. Reviewed By: brecht Differential Revision: https://developer.blender.org/D272
2014-02-07ListBase API: add utility api funcs for clearing and checking emptyCampbell Barton
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-05Code cleanup: use bool for static methodsCampbell Barton
2014-02-04Code cleanup: declarations for removed functionsCampbell Barton
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-27Code cleanup: use booleans where appropriateCampbell Barton
2014-01-25Fix T38353: some EXR files from other applications not loading correctly.Brecht Van Lommel
* EXR layers with names like 'Z' without any pass name were not loaded at all and would break the Combined pass as well. * EXR pass names longer than 16 characters where writing past the end of the array and getting invalid names.
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.
2014-01-23Removed the omat matrix from DupliObject.Lukas Tönne
This was storing the original object matrix, which builds on the assumption that obmat is modified during dupli construction, which is a bad hack. Now the obmats are still modified, but this only happens outside of the dupli system itself and the original ("omat") is stored as local variables in the same place where the obmat manipulation takes place. This is easier to follow and avoids hidden hacks as much as possible. Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D254
2014-01-22Fix T38323: blender viewport render in particle hair edit mode renders halos.Brecht Van Lommel
Currently it's not supported to do viewport render of particles while in particle edit mode, hide the particle instead of rendering halos.
2014-01-22Fix T37940: Curve Render bug in Blender Internal Render.Sergey Sharybin
Issue was caused by curve object really scale up. It was caused by 677f519 to make scaled down curves work fine. After some tweaks to epsilon value scaled up curves seems to work as well.
2014-01-22Fix T38319: no camera error message for render not showing correctly.Brecht Van Lommel
2014-01-22Fix T38318: blender internal viewport now uses viewport, not render visibility.Brecht Van Lommel
This is the same as cycles and more consistent with it also using viewport resolution.
2014-01-21Fix for Freestyle stroke rendering performed for each SSS material.Tamito Kajiyama
2014-01-21Fix T37976: blender internal transparent shadows from volumes not working ↵Brecht Van Lommel
correct.
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-17Fix T37958: part of blender internal approximate AO / indirect light preprocessBrecht Van Lommel
could not be cancelled.
2014-01-15Fix for infinite freestyle re-render in the viewportSergey Sharybin
Was a regression since e618d8238e0e and was caused by the wrong main being tagged for update.
2014-01-15Code Cleanup: use iroundfCampbell Barton
also increase precision of rctf print functions
2014-01-13Code Cleanup: replace checks for ima->source with BKE_image_is_animatedCampbell Barton
2014-01-13Fix T38054: High CPU usage with many objectsSergey Sharybin
This is a regression since threaded dependency graph landed to master. Root of the issue goes to the loads of graph preparation being done even if there's nothing to be updated. The idea of this change is to use ID type recalc bits to determine whether there're objects to be updated. Generally speaking, we now check object and object data datablocks with DAG_id_type_tagged() and if there's no such IDs tagged we skip the whole task pool creation and so, The only difficult aspect was that in some circumstances it was possible that there are tagged objects but nothing in ID recalc bit fields. There were several different circumstances when it was possible: * When one assigns object->recalc flag directly DAG flush didn't set corresponding bits to ID recalc bits. Partially it is fixed by making it so flush will set bitfield, but also for object types there's no reason to assign recalc flag directly. Using generic DAG_id_type_tag works almost the same fast as direct assignment, ensures all the bitflags are set properly and for the long run it seems it's what we would actually want to. * DAG_on_visible_update() didn't set recalc bits at all. * Some areas were checking for object->recalc != 0, however it is was possible that object recalc flag contains PSYS_RECALC_CHILD which was never cleaned from there. No idea why would we need to assign such a flag when enabling scene simplification, this is to be investigated separately. * It is possible that scene_update_post and frame_update_post handlers will modify objects. The issue is that DAG_ids_clear_recalc is called just after callbacks, which leaves objects with recalc flags but no corresponding bit in ID recalc bitfield. This leads to some kind of regression when using ID type tag fields to check whether there objects to be updated internally comparing threaded DAG with legacy one. For now let's have a workaround which will preserve tag for ID_OB if there're objects with OB_RECALC_ALL bits. This keeps behavior unchanged comparing with 2.69 release.
2014-01-09Fix T38062: normal map baking gave randomly values 127 or 128 in flat areas.Brecht Van Lommel
Due to float precision issues it was basically random which of the two was used, now it's slightly biased towards 128, which is the convention for flat colors. The small difference between 127 and 128 could give problems with sharp glossy shaders where it would be visible as seams.
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.
2014-01-08Fix for RE_engine_begin_result using a NULL pointerCampbell Barton
2014-01-01Fix deadlock happening when using Save Buffers for renderSergey Sharybin
Summary: Issue was caused by the same tile being written twice to the EXR file. This was happening because of partial update of work-in-progress tiles was merging result to the final render result in order to make color management pipeline happy. We need to avoid such a merges and keep memory usage as low as possible when Save Buffers is enabled. Now render pipeline will allocate special display buffer in render layer which will contain combined pass in the display space. This keeps memory usage as low as we can do at this moment. There's one weak thing which is changing color management settings during rendering would lead to lossy conversion. This is because render result's display buffer uses color space from the time when rendering was invoked. This is actually what was happening in previous release already actually so not a big issue. Reviewers: brecht Reviewed By: brecht Differential Revision: https://developer.blender.org/D162
2013-12-31Fix T37994: crash in preview render after recent color management changes.Lawrence D'Oliveiro
Reviewed By: brecht
2013-12-30Main API: refactor naming, use BKE_main_ prefix and add main arg.Campbell Barton
2013-12-29Fix movie output when using render borderSergey Sharybin
Reported by @plasmasolutions in IRC.
2013-12-27Fix T36474: Blender 2.68a crashes upon renderingSergey Sharybin
Summary: Original issue was caused by wring detection of whether SS modifier is being applied for render/viewport. After recent dependency graph commit this was no longer an issue. But it still might have happen conflict between viewport draw and scene_update_for_newframe() invoked from render thread when using external engines like Cycles. Solved by adding viewport lock while scene is being updated and objects being exported to the render engine. Same lock was already used for Blender Internal. Reviewers: brecht Reviewed By: brecht Maniphest Tasks: T36474 Differential Revision: https://developer.blender.org/D138
2013-12-27Fix out-of-date comment which came from DAG-MT branchSergey Sharybin
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