Commit Graph

1066 Commits

Author SHA1 Message Date
9863e71692 Freestyle: Fix typos in a tool tip. 2014-04-25 09:22:24 +09:00
f6da871d9d Follow-up to the previous fix for T37452: More descriptive tooltips for freestyles settings
Made additional tool tips revisions suggested by a comment to T37452.
2014-04-24 23:45:29 +09:00
95eb5fb727 Fix T37452: More descriptive tooltips for freestyles settings.
Tool tips of some Freestyle parameters were revised so that parameter descriptions
are easier to understand for artists.
2014-04-24 23:45:27 +09:00
14ab812da5 Fix T39828: Incorrect render layer visibility display for animated render 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-23 15:58:46 +02:00
15169c71a6 Blender Internal: remove BLI BVH for raytracing.
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-11 13:20:41 +02:00
4550731963 RNA: optimization to avoid malloc for iterators.
This mostly helps making Cycles scene synchronization a bit faster.
2014-04-05 14:50:17 +02:00
617557b08e Code cleanup: remove TRUE/FALSE & WITH_BOOL_COMPAT define 2014-04-01 15:22:28 +11:00
d25ba1eccd Changes to openmp threads commit (UI and RNA)
- use same names as render threads
- remove OpenMP from UI
- remove details from tips
2014-04-01 08:30:24 +11:00
49ca3fdf16 Fix compile due forgot remove BKE_scene_omp_threads_update from patch 2014-03-31 14:53:30 +02:00
277fb1a31f Sculpt/dyntopo: Make the omp threads configurable to overcome performance issues
- 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-31 13:51:49 +02:00
6316306cc0 Fix bug in image texture UI: "Use Alpha" checkbox doesn't appear if file format is BMP. 2014-03-31 17:37:55 +09:00
6fdbab4366 Minor code cleanup. 2014-03-09 22:25:37 +09:00
49e8cfd809 Further work to fix T38726: signal viewport to update when adding/removing render layers.
Reviewers: brecht

Differential Revision: https://developer.blender.org/D346
2014-02-26 18:41:06 +01:00
2be654b2ff Usual UI messages fixes... 2014-02-12 16:23:19 +01:00
385c892418 UI: use proportional option while dragging buttons 2014-02-09 08:42:45 +11:00
cfa49976c4 * Typo fix. 2014-02-06 21:53:58 +01:00
a41648c1dc Cycles: add pass alpha threshold value to render layers.
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-02-06 15:24:15 +01:00
5f47f1370e UI: move toggle icons out of layout checks into rna 2014-01-30 16:24:51 +11:00
a68ceb0af8 Option to lock the interface while rendering
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-29 16:07:14 +06:00
dfdf19cc59 Code cleanup: more preprocessor indentation 2014-01-28 14:34:52 +06:00
Anton Khirnov
8c3b27ce27 Change libavcodec CODEC_ID_* to AV_CODEC_ID_*
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-28 14:00:31 +06:00
e983ed6aaa Revert the removal of Blender Internal Edge rendering, after artist feedback.
This reverts commit fb91a602c7.
2014-01-27 19:59:06 +01:00
07346b62a5 Remove confusing recalc flag from simplify update callback
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-17 19:43:26 +06:00
348cf17448 Code Cleanup: no need to pass empty strings as default values 2014-01-16 22:00:29 +11:00
e618d8238e Fix T38054: High CPU usage with many objects
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-13 15:57:51 +06:00
6734936c13 RNA API: use bool's for enum itemf callbacks. 2014-01-04 18:10:01 +11:00
c7029f06d9 Add new BGE Stereo mode: 3DTV top-bottom.
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.
2014-01-02 00:26:15 +01:00
a1c740a420 UI: improve tooltip for use preview range option in timeline.
Reviewed By: brecht

Differential Revision: https://developer.blender.org/D161
2013-12-31 00:01:55 +01:00
0d6ae3fda2 Main API: refactor naming, use BKE_main_ prefix and add main arg. 2013-12-30 13:25:27 +11:00
709041ed0b Threaded object update and EvaluationContext
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-26 17:24:42 +06:00
Dalai Felinto
63eb863d8d Add optional 'frame' argument to scene.timeline_markers.new(name)
Differential Revision: http://developer.blender.org/D101
2013-12-16 10:13:59 -02:00
105a97a7ed UI/RNA: added pixel and percentage units to some properties
Reviewed By: brecht

Differential Revision: http://developer.blender.org/D99
2013-12-13 17:06:14 +01:00
c701082a92 RNA: Add pixels property type 2013-12-13 04:40:30 +11:00
cc9372b7e0 DNA Deprecation: add DNA_DEPRECATED_GCC_POISON for enum/structs.
also fully remove freestyle raycasting_algorithm
2013-12-10 13:01:55 +11:00
b2c1bb74b2 Tweaks to PNG file output
- Made tooltip for compression a bit more clear.
- Use default compression of 15%. Gives around
  two times boost on export movie file here in
  test with only 10% increased file size.

Reviewers: Jonathan Williamson
2013-11-25 16:24:31 +06:00
fb91a602c7 Blender Internal:
* 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-11-19 20:30:49 +01:00
55e3be560e Fix T36756: Use Frame Rate option toolip was unclear about which FPS value to respect 2013-11-18 14:19:00 -08:00
a0286f42f9 "Render Audio" cleanup:
* Removed audio-only options from ffmpeg render settings (added some versionning code too)!
* Moved the Mixdon button from the Scene->Audio pannel to the Render->Render panel.
2013-11-07 13:32:32 +00:00
Lukas Toenne
7398600090 True grid snapping for nodes: This snaps nodes to the actual background grid instead of using incremental offset (which is not useful for nodes). Increment snapping has been disabled for nodes to avoid
confusion, grid snap is now the default as it seems to be the most wanted and easy to use mode.

Absolute grid snapping happens in a somewhat generic function 'applyGridAbsolute', which could also be used for objects and other transforms later on. It is conceptually similar to the 'project' snapping
option, in that it calculates a delta vector for each element on top of the overall transform, which places each node on the grid.

Node transform now uses the top-left node corner for TransformData->loc. The transform center is still the average of node centers, so that scaling and rotation works nicely.

snapGrid*** functions have been renamed to snapGridIncrement*** to distinguish better between incremental and absolute grid snapping.
2013-11-06 17:46:32 +00:00
99c5e71397 Quicktime: remove backend with the old quicktime API, and keep the QTKit backend.
This means that if you have WITH_BF_QUICKTIME or WITH_CODEC_QUICKTIME enabled,
it will always use QTKit.

The old backend was only used on 32 bit OS X builds, now 32 and 64 bit builds will
give consistent input/output. On Windows or Linux quicktime isn't being used.
2013-11-06 01:45:15 +00:00
0cec5c63da BGE Rasterizer Cleanup: Removing the Singletexture material mode. More conversion code will probably be needed. 2013-11-04 19:21:50 +00:00
beae4f498d code cleanup: spelling 2013-10-31 14:10:01 +00:00
4b0ff02aeb Fix #37169 brush UI not getting updated. A notifier was missing for
all unified paint settings properties, made sure to notify that
active brush has changed.
2013-10-21 18:08:20 +00:00
Dalai Felinto
ef60ab19f7 removing PSD from the fileformat list fix [#37080] The file which I stored in PSD file format in Blender cannot open by Photoshop
PSD writing is not supported at the moment
2013-10-15 14:32:33 +00:00
ee63ef7af1 Project Pampa request: option to lock frame selection to the range
This means when you've got "Lock Frame Selection" option (which is
in the timeline next to the preview range button) you're not able
to go to the frames which are out of current frame range with your
mouse.

TODO: Make it so current frame slider also respects this setting?
      Not so much important for tonight.
2013-10-13 20:46:02 +00:00
Dalai Felinto
029f4b9767 adding WITH_IMAGE_OPENIMAGEIO and removing the PSD build option
As per Brecht van Lommel's suggestion.
2013-10-11 16:38:04 +00:00
35bb5465ae code cleanup: reuse rna_matrix_dimsize_NxN defines between RNA functions 2013-10-10 20:14:04 +00:00
8fd52b3433 style cleanup 2013-10-10 17:28:01 +00:00
b880b01db5 Fix OS X build error in malloc code, and warning in rna. 2013-10-10 15:44:47 +00:00
bbd9b5f476 Support for baking vertex colors to textures.
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-10-10 11:00:12 +00:00