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-07-19Defines: replace ELEM3-16 with ELEM(...), that can take varargsCampbell Barton
2014-07-09Implement Start Resolution for preview render in BISergey Sharybin
So now viewport render resolution division works exactly the same as in Cycles.
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-12Bake-API: Set Custom Cage to be Cage ObjectDalai Felinto
Suggestion by Andy Davies (metalliandy) to conform with industry standard (custom cage is something else apparently) Note: this is the last bake related commit I plan for 2.71/rc (unless everyone agrees that we could squeeze in D546 - custom UVs, which would be really nice to add for 2.71 scripters) Note 2: I'll update the wiki docs shortly
2014-06-11Bake-API: new approach for cageDalai Felinto
There is a new option to select whether you want to use cage or not. When not using cage the results will be more similar with Blender Internal, where the inwards rays (trying to hit the highpoly objects) don't always come from smooth normals. So if the active object has sharp edges and an EdgeSplit modifier you get bad corners. This is useful, however, to bake to planes without the need of adding extra loops around the edges. When cage is "on" the user can decide on setting a cage extrusion or to pick a Custom Cage object. The cage extrusion option works in a duplicated copy of the active object with EdgeSplit modifiers removed to inforce smooth normals. The custom cage option takes an object with the same number of faces as the active object (and the same face ordering). The custom cage now controls the direction and the origin of the rays casted to the highpoly objects. The direction is a ray from the point in the cage mesh to the equivalent point to the base mesh. That means the face normals are entirely ignored when using a cage object. For developers: When using an object cage the ray is calculated from the cage mesh to the base mesh. It uses the barycentric coordinate from the base mesh UV, so we expect both meshes to have the same primitive ids (which won't be the case if the cage gets edited in a destructive way). That fixes T40023 (giving the expected result when 'use_cage' is false). Thanks for Andy Davies (metalliandy) for the consulting with normal baking workflow and extensive testing. His 'stress-test' file will be added later to our svn tests folder. (The file itself is not public yet since he still has to add testing notes to it). Many thanks for the reviewers. More on cages: http://wiki.polycount.com/NormalMap/#Working_with_Cages Reviewers: campbellbarton, sergey CC: adriano, metalliandy, brecht, malkavian Differential Revision: https://developer.blender.org/D547
2014-06-09Usual UI message handling...Bastien Montagne
2014-06-06Freestyle: Fix for viewport render not updating with changes of Freestyle ↵Tamito Kajiyama
settings.
2014-05-23Some operation allowed to set invalid active scene render layerSergey Sharybin
Forbid this now and do tricks in the versioning code to repair corrupted files. Thanks to Pablo, Caminandes and Koro for discovering this bug!
2014-05-14Code cleanup: indentationCampbell Barton
2014-05-13Freestyle: Added .new() and .remove() to the collection type of Python style ↵Tamito Kajiyama
modules.
2014-05-13Freestyle: minor UI text fix.Tamito Kajiyama
2014-05-13Freestyle: naming fixes.Tamito Kajiyama
FreestyleSettings and FreestyleModuleSettings are now defined as RNA aliases of FreestyleConfig and FreestyleModuleConfig, respectively.
2014-05-11Freestyle: Added handling of a user-specified name for creating a new line set.Tamito Kajiyama
2014-05-11Freestyle: Added .new() and .remove() methods to the Linesets collection type.Tamito Kajiyama
2014-05-03Bake API - bpy.ops.object.bake()Dalai Felinto
New operator that can calls a bake function to the current render engine when available. This commit provides no feature for the users, but allows external engines to be accessed by the operator and be integrated with the baking api. The API itself is simple. Blender sends a populated array of BakePixels to the renderer, and gets back an array of floats with the result. The Blender Internal (and multires) system is still running independent, but we eventually will pipe it through the API as well. Cycles baking will come next as a separated commit Python Operator: ---------------- The operator can be called with some arguments, or a user interface can be created for it. In that case the arguments can be ommited and the interface can expose the settings from bpy.context.scene.render.bake bpy.ops.object.bake(type='COMBINED', filepath="", width=512, height=512, margin=16, use_selected_to_active=False, cage_extrusion=0, cage="", normal_space='TANGENT', normal_r='POS_X', normal_g='POS_Y', normal_b='POS_Z', save_mode='INTERNAL', use_clear=False, use_split_materials=False, use_automatic_name=False) Note: external save mode is currently disabled. Supported Features: ------------------ * Margin - Baked result is extended this many pixels beyond the border of each UV "island," to soften seams in the texture. * Selected to Active - bake shading on the surface of selected object to the active object. The rays are cast from the lowpoly object inwards towards the highpoly object. If the highpoly object is not entirely involved by the lowpoly object, you can tweak the rays start point with Cage Extrusion. For even more control of the cage you can use a Cage object. * Cage Extrusion - distance to use for the inward ray cast when using selected to active * Custom Cage - object to use as cage (instead of the lowpoly object). * Normal swizzle - change the axis that gets mapped to RGB * Normal space - save as tangent or object normal spaces Supported Passes: ----------------- Any pass that is supported by Blender renderlayer system. Though it's up to the external engine to provide a valid enum with its supported passes. Normal passes get a special treatment since we post-process them to converted and "swizzled" Development Notes for External Engines: --------------------------------------- (read them in bake_api.c) * For a complete implementation example look at the Cycles Bake commit (next). Review: D421 Reviewed by: Campbell Barton, Brecht van Lommel, Sergey Sharybin, Thomas Dinge Normal map pipeline "consulting" by Andy Davies (metalliandy) Original design by Brecht van Lommel. The entire commit history can be found on the branch: bake-cycles
2014-04-27Revert the testing sculpt openmp thread control and limit for OSX to ↵Jens Verwiebe
physical threads as in 2.70a tag
2014-04-27Fix T34993: "Jump to Next Keyframe" shortcut not related to the timeline ↵Joshua Leung
viewable keyframes Made the timeline option to only show keyframes from selected channels/data be a per-scene setting instead of the per-timeline option it was previously. This makes it easier for animators working on rigs with multiple bones (especially during the polishing phase), since now the timeline and jump to keyframe operators use the same setting to decide which subset of keyframes they need to consider. By default, this option is enabled by default. TODO: Extend this to the keyframe status shading on the active object name in the 3D view?
2014-04-25Freestyle: Fix typos in a tool tip.Tamito Kajiyama
2014-04-24Follow-up to the previous fix for T37452: More descriptive tooltips for ↵Tamito Kajiyama
freestyles settings Made additional tool tips revisions suggested by a comment to T37452.
2014-04-24Fix T37452: More descriptive tooltips for freestyles settings.Tamito Kajiyama
Tool tips of some Freestyle parameters were revised so that parameter descriptions are easier to understand for artists.
2014-04-23Fix T39828: Incorrect render layer visibility display for animated render ↵Bastien Montagne
layers. More like a workaround, current depsgraph does not really allow for animated layers, esp. when we alwys expect at least one to be enabled (same issue as with basic Scene layers).
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-05RNA: optimization to avoid malloc for iterators.Brecht Van Lommel
This mostly helps making Cycles scene synchronization a bit faster.
2014-04-01Code cleanup: remove TRUE/FALSE & WITH_BOOL_COMPAT defineCampbell Barton
2014-04-01Changes to openmp threads commit (UI and RNA)Campbell Barton
- use same names as render threads - remove OpenMP from UI - remove details from tips
2014-03-31Fix compile due forgot remove BKE_scene_omp_threads_update from patchJens Verwiebe
2014-03-31Sculpt/dyntopo: Make the omp threads configurable to overcome performance issuesJens Verwiebe
- autodetect optimal default, which typically avoids HT threads - can store setting in .blend per scene - this does not touch general omp max threads, due i found other areas where the calculations are fitting for huge corecount - Intel notes, some of the older generation processors with HyperThreading would not provide significant performance boost for FPU intensive applications. On those systems you might want to set OMP_NUM_THREADS = total number of cores (not total number of hardware theads).
2014-03-31Fix bug in image texture UI: "Use Alpha" checkbox doesn't appear if file ↵IRIE Shinsuke
format is BMP.
2014-03-09Minor code cleanup.Tamito Kajiyama
2014-02-26Further work to fix T38726: signal viewport to update when adding/removing ↵IRIE Shinsuke
render layers. Reviewers: brecht Differential Revision: https://developer.blender.org/D346
2014-02-12Usual UI messages fixes...Bastien Montagne
2014-02-09UI: use proportional option while dragging buttonsCampbell Barton
2014-02-07* Typo fix.Thomas Dinges
2014-02-06Cycles: add pass alpha threshold value to render layers.Brecht Van Lommel
Z, Index, normal, UV and vector passes are only affected by surfaces with alpha transparency equal to or higher than this threshold. With value 0.0 the first surface hit will always write to these passes, regardless of transparency. With higher values surfaces that are mostly transparent can be skipped until an opaque surface is encountered.
2014-01-30UI: move toggle icons out of layout checks into rnaCampbell 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-28Code cleanup: more preprocessor indentationSergey Sharybin
2014-01-28Change libavcodec CODEC_ID_* to AV_CODEC_ID_*Anton Khirnov
CODEC_ID_* have been replaced with AV_CODEC_ID_* in new libavcodec versions. Update the code to use those new identifiers. Added a compatibility code to ffmpeg_compat.h
2014-01-27Revert the removal of Blender Internal Edge rendering, after artist feedback.Thomas Dinges
This reverts commit fb91a602c756f3ee5a122efa1862b8be7604186b.
2014-01-17Remove confusing recalc flag from simplify update callbackSergey Sharybin
PSYS_RECALC_CHILD is not handled by handle_object_update at all so it was rather pointless to set this flag. Double-checked with Brecht.
2014-01-16Code Cleanup: no need to pass empty strings as default valuesCampbell 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-04RNA API: use bool's for enum itemf callbacks.Campbell Barton
2014-01-02Add new BGE Stereo mode: 3DTV top-bottom.Benoit Bolsee
This mode is designed for passive 3D TV: the viewport is split horizontally - left eye above, right eye below - but the original camera viewport is squashed in each half (with half the vertical resolution). This is necessary to restore the aspect ratio in the 3D output because the TV expands each half to the full screen size.
2013-12-31UI: improve tooltip for use preview range option in timeline.Andrew Buttery
Reviewed By: brecht Differential Revision: https://developer.blender.org/D161
2013-12-30Main API: refactor naming, use BKE_main_ prefix and add main arg.Campbell Barton
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-16Add optional 'frame' argument to scene.timeline_markers.new(name)Dalai Felinto
Differential Revision: http://developer.blender.org/D101
2013-12-13UI/RNA: added pixel and percentage units to some propertiesScott Petrovic
Reviewed By: brecht Differential Revision: http://developer.blender.org/D99
2013-12-12RNA: Add pixels property typeScott Petrovic