Commit Graph

84 Commits

Author SHA1 Message Date
Thomas Dinges
63290beee1 Code cleanup / Sequencer:
* Remove "use_frame_blend" from RNA and UI file, not used anywhere in the code, also mark SEQ_SPEED_BLEND as deprecated.
2013-03-28 22:09:55 +00:00
Campbell Barton
d15d78a33a style cleanup: osl and NULL pointer use, also correct sequencer gap operator id's 2013-03-27 20:27:07 +00:00
Ton Roosendaal
e1db5a050d Sequencer usability:
Brought back old tools "Remove Gap(s)" and "Insert Gap".
It's actually one of the first tools I ever coded for it in 90ies, so useful!

* Remove Gap(s)

This checks if there's no strip at a given position, and slides all strips
together to the left, until the gap is closed.

- BackSpace key, remove gap at current frame (or first gap at right of frame)
- SHIFT+BackSpace, remove all gaps at or to right of current frame.

* Insert Gap

Shifts all strips to right of current frame with 10 frames. (Amount can be
set in Toolbar redo panel).
2013-03-26 15:00:56 +00:00
Sergey Sharybin
3d7867d7f0 Added RGBA|RGB channels toggle to sequencer preview
Main purpose of this is to be more compatible with older
versions of blender (before alpha cleanup) where sequencer
used to display premultiplied image on an straight opengl
viewport.

Now sequencer preview would behave closer to image editor
However adding Alpha and R|G|B displays is not so simple
because sequencer is using 2D textures. Would be nice to
implement this options as well, but this is not so much
important IMO.

This hall fix
- #34453: VSE: Subtract function does not work properly

TODO: Make RGBA display default for our startup.blend
2013-02-27 10:26:58 +00:00
Bastien Montagne
d0f4a2396b Actually, UI scripts should not use directly pgettext, but rather the iface or tooltip variants. Added those to bpy.app.translations, and used pgettext_iface.
(Did not add those when I created that module, because I did not thought we would actually need them in usual UI code, but turned out I was wrong).

Also made some optimizations in those py gettext funcs, when i18n is disabled at build time, no need to do pyobject -> cstring -> pyobject conversions!.
2013-02-10 10:29:38 +00:00
Campbell Barton
3b8a0f3d67 use import rather then assignment for loading '_' into scripts. 2013-02-10 09:56:05 +00:00
Bastien Montagne
c0fa16f2c9 Another fix for r54414 (cleaner to "import" pgettext once at top of files, also now using usual '_' shortcut). 2013-02-10 09:09:26 +00:00
Bastien Montagne
82c86af7f7 Bunch of fixes for py ui messages (all those using 'formating' were not translated previously, now they use bpy.app.translations.pgettext). Also pleas avoid complex py statements in 'text' values (like 'text="foo" if cond else "bar"'), thes make message extraction script fails!
And another "final point in UI message" removal!
2013-02-09 18:26:40 +00:00
Campbell Barton
ea2224e28d changes needed for EDL import to work again.
- add sequence.update(data=False) function.
- made some sequence vars editable.
- correct some comments.

also rename rna function sequence.getStripElem() --> strip_elem_from_frame()
2013-01-02 16:15:45 +00:00
Sergey Sharybin
08cea96ab0 Alpha premul pipeline cleanup
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-31 13:52:13 +00:00
Sergey Sharybin
dd0e554d9e Sequencer: add textured solid option for opengl preview 2012-12-12 12:42:12 +00:00
Sergey Sharybin
e1d1cc0680 Fix #33253: VSE preview doesn't display compositor
There were two issues in scene strip rendering:

- It will skip rendering if scene doesn't have camera but uses compositor
- G.is_break will cancel preview rendering

Also removed Use Sequencer from scene's strip settings, it's not supported.
2012-11-21 09:36:36 +00:00
Campbell Barton
c046b13b56 rename template_color_wheel() to template_color_picker() 2012-11-09 11:03:53 +00:00
Sergey Sharybin
39da858001 Sequencer: input color space support for image and movie strips 2012-11-05 14:44:29 +00:00
Campbell Barton
17530108f4 enable rendering from the sequencer again. this was working since 2.4x and shouldn't have been disabled. 2012-10-24 03:27:11 +00:00
Bastien Montagne
bb1987edd6 More tweaks to sequencer Header bar: make overlay also available in mix mode, and OpenGL render buttons in all modes! 2012-09-22 17:40:08 +00:00
Bastien Montagne
ecf6beb8d3 More fixes in Sequencer's View menu (thanks to Lockal for pointing those ;) ). 2012-09-21 15:19:26 +00:00
Bastien Montagne
1a4b9cd39d Fix for [#32595] N shortcut (view-properties) is not shown in preview mode in sequence editor.
Main problem was in py UI code (has to set the context to INVOKE_REGION_PREVIEW for the shortcut lookup to succeed). 

Also moved the N properties item into SequencerCommon keymap, and removed the View Selected menu entry from preview-only mode View menu (thx to Ejner Fergo for pointing this out).
2012-09-21 13:29:38 +00:00
Sergey Sharybin
a73dd3476e Color Management, Stage 2: Switch color pipeline to use OpenColorIO
Replace old color pipeline which was supporting linear/sRGB color spaces
only with OpenColorIO-based pipeline.

This introduces two configurable color spaces:

- Input color space for images and movie clips. This space is used to convert
  images/movies from color space in which file is saved to Blender's linear
  space (for float images, byte images are not internally converted, only input
  space is stored for such images and used later).

  This setting could be found in image/clip data block settings.

- Display color space which defines space in which particular display is working.

  This settings could be found in scene's Color Management panel.

When render result is being displayed on the screen, apart from converting image
to display space, some additional conversions could happen.

This conversions are:

- View, which defines tone curve applying before display transformation.
  These are different ways to view the image on the same display device.
  For example it could be used to emulate film view on sRGB display.

- Exposure affects on image exposure before tone map is applied.

- Gamma is post-display gamma correction, could be used to match particular
  display gamma.

- RGB curves are user-defined curves which are applying before display
  transformation, could be used for different purposes.

All this settings by default are only applying on render result and does not
affect on other images. If some particular image needs to be affected by this
transformation, "View as Render" setting of image data block should be set to
truth. Movie clips are always affected by all display transformations.

This commit also introduces configurable color space in which sequencer is
working. This setting could be found in scene's Color Management panel and
it should be used if such stuff as grading needs to be done in color space
different from sRGB (i.e. when Film view on sRGB display is use, using VD16
space as sequencer's internal space would make grading working in space
which is close to the space using for display).

Some technical notes:

- Image buffer's float buffer is now always in linear space, even if it was
  created from 16bit byte images.

- Space of byte buffer is stored in image buffer's rect_colorspace property.

- Profile of image buffer was removed since it's not longer meaningful.

- OpenGL and GLSL is supposed to always work in sRGB space. It is possible
  to support other spaces, but it's quite large project which isn't so
  much important.

- Legacy Color Management option disabled is emulated by using None display.
  It could have some regressions, but there's no clear way to avoid them.

- If OpenColorIO is disabled on build time, it should make blender behaving
  in the same way as previous release with color management enabled.

More details could be found at this page (more details would be added soon):
http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.64/Color_Management

--
Thanks to Xavier Thomas, Lukas Toene for initial work on OpenColorIO
integration and to Brecht van Lommel for some further development and code/
usecase review!
2012-09-15 10:05:07 +00:00
Sergey Sharybin
3d7fd3c158 Sequencer: remove effect mask input
Initial idea of this input was re-designed in a bit more flexible
way using modifiers.
Also since Color Balance (which was the only thing using effect
mask input) was moved to the modifiers, this input field became
rudiment.

It's pretty tricky to write versioning code to prevent possible
data in cases this field was used, but hope it wouldn't be difficult
to switch to modifiers masks.
2012-09-04 13:48:24 +00:00
Sergey Sharybin
122cb86d15 Sequencer: remove strip's color balance in favor of modifiers
Having two ways to control color balance now seems a bit overkill
and not clear.

Removed old Color Balance settings from the interface and logic,
added versioning code to convert this settings to modifier.

Unfortunately, since color balance was a pointer, it's not actually
possible to preserve compatibility of old files saved in new
blender and opened back in old blender.

Hopefully there's no regressions :)
2012-09-04 13:37:53 +00:00
Sergey Sharybin
501efb0e7c Sequencer: bright/contrast modifier
Behaves in exactly the same way as bright/contrast compositor node.

Some code could be de-duplicated, like contrast formula and mask
influence, but wouldn't call it stopper for commit since it's
already needed for grading Mango.
2012-08-24 09:07:04 +00:00
Sergey Sharybin
9bae78ed5d Sequencer: move up/down operators for modifiers 2012-08-23 09:04:30 +00:00
Sergey Sharybin
995a19a983 Sequencer: per-sequence modifier stack for color grading
This implements basic color grading modifiers in sequencer, supporting
color balance, RGB curves and HUE corrections.

Implementation is close to object modifiers, some details are there:

http://wiki.blender.org/index.php/User:Nazg-gul/SequencerModifiers

Modifiers supports multi-threaded calculation, masks and instant
parameter changes.

Also added cache for pre-processed image buffers for current frame,
so changing sequence properties does not require rendering of original
sequence (like rendering scene, loading file from disk and so)
2012-08-19 15:41:56 +00:00
Campbell Barton
b0371f053c style cleanup 2012-08-17 18:36:20 +00:00
Sergey Sharybin
51fafdee0c Sequencer: overlay display type options
Before this overlay would happen only for defined rectangle area,
now it's possible to show current / reference frames only, which
makes it possible to do more real slit view involving even displaying
frames on different monitors.

Still some work need to be done to clean interface up and support
displaying color information for reference shot.
2012-08-12 13:24:29 +00:00
Sergey Sharybin
a794e19346 Sequencer: support for masked color balance
This implements option which could be used to color balance only
specified area. Currently done by adding Mask input to Adjustment
effect. Affects on color balance and multiply settings.

Supporting masked saturation control is in the list, not supported
in this commit.

Also show value slider in the right of color wheel.
2012-08-11 14:37:58 +00:00
Sergey Sharybin
35e4cfc6d6 Fix effect settings panel for adjustment effect
Since r46801 options used for this effect were moved to input panel.
2012-08-10 16:07:13 +00:00
Sergey Sharybin
4085056218 Place color weels used for color balance in sequencer vertically
This was it makes more sense from accurate tuning point of view.
2012-08-07 14:59:49 +00:00
Campbell Barton
2553cdf195 style cleanup 2012-07-29 12:07:06 +00:00
Thomas Dinges
ab38e1d379 User Interface Scripts:
* Code cleanup, removed unneeded code.
* Style cleanup, don't break lines to early 
(unless marked as pep8-80 or pep8-120 compliant) 
* Keep 1 line after layout declaration empty.
2012-07-29 10:03:46 +00:00
Campbell Barton
2a140e93c1 style cleanup 2012-07-04 21:41:05 +00:00
Sergey Sharybin
aa30e20272 Fix #31852: Sequencer duplicate cant move strips on Y axis in a meta
Issue was caused by some stuff happenign in wm_operator_finish() which uses
to somehow restore changes made by transformation invoke function.

Solved by not calling translation operator directly from duplication operator
(which is in fact really tricky) and use macros instead. This macros calls
duplication operator which simply duplicates strip, and then calls translation
operator.
2012-06-20 14:20:03 +00:00
Campbell Barton
98e6912480 style cleanup 2012-06-19 22:17:19 +00:00
Campbell Barton
bdf9e02346 new sequence strip type for masks. 2012-06-07 18:24:36 +00:00
Thomas Dinges
cd1f8200de Sequencer UI:
* Some consistency tweaks.
2012-05-20 15:52:24 +00:00
Thomas Dinges
1e33cc4384 Sequencer UI:
* Code cleanup
* Fixed wrong label for Inverse Select in the Select menu
* Some layout tweaks for space saving and avoid abbreviations in the UI.
* "Image Offset" and "Image Crop" buttons were there twice, once in the Strip Input panel and once in the Effect Strip panel, show it in the Strip Input panel only now. 
* Commented the third input fields ("input_3"), only used by the deprecated plugin system according to an RNA comment.
2012-05-20 00:34:54 +00:00
Campbell Barton
f3d721aa93 minor changes to sequencer api
- rename seqelements.push(file) --> filename
- rename SoundSequence.waveform --> show_waveform
- dont pass context to sequencer functions. editing any scenes sequence can be done, irrespective of context.
2012-05-10 15:32:01 +00:00
Thomas Dinges
0281ff408d Plugin system:
* Remove RNA, Operator and UI for Texture and Sequence plugins.
Since 2.5x no effort has been done to bring that back, so there is simply no reason in keeping that code and the UI for that ;-)
* Low Level code still exists and is unchanged.
2012-04-28 08:27:09 +00:00
Campbell Barton
c93c8bda3d replace relative imports with absolute imports so scritps can be executed directly (live editing). 2012-04-04 14:39:52 +00:00
Campbell Barton
9e497291ee support for opengl rendering in the sequencer (header icons as with 3D view).
while opengl could be used for display you couldn't output it to a file.

extended the existing opengl render operator to optionally take input from the sequencer.

notes:
- doesn't redraw in the viewport yet (only output in terminal)
- doesn't do OSA
2012-03-29 23:33:50 +00:00
Sergey Sharybin
40c667e75e Clean-up logic of behavior of refresh/reload operators in sequencer
After discussion with Campbell we found much nicer solution which
keeps operation with data much more clear:

- Refresh Sequencer is totally harmless, do not touch actual data
  and just removes everything from cache
- Reload Strip will reload data and adjust it's length for all
  selected strips without affecting on length of strip itself
- Reload Strip and Adjust length will do the same but will also
  adjust length of strip itself.
2012-03-26 22:26:30 +00:00
Sergey Sharybin
cc1ebaf496 Request from Mango team which will most probably expected by everyone:
Refresh Sequencer button will now update lengths of strips as well.
2012-03-26 13:48:45 +00:00
Bastien Montagne
0a4d483559 Fix for own error in sequencer's Select menu (from r40658, makes me wonder if anyone uses that feature except me...), and update to Select Grouped op (taking into account new MovieClip strip type). 2012-03-26 13:45:06 +00:00
Campbell Barton
81d8f17843 style cleanup: pep8, indentation 2012-03-24 07:36:32 +00:00
Sergey Sharybin
44eb9cc272 Fix #30491: Not Updating Scene Length
(also fixes special request from Ian for Mango)

Added operator to update actual content length of all selected strips.
Can be useful for scenes and movies as well after doing making changes to
scene/movie.

Can be improved further to deal better with cases when strip has got effect
and it's get reshuffled because of overlapping after changing it's length.
2012-03-22 13:22:28 +00:00
Peter Schlaile
d8623da305 == Sequencer ==
This adds movieclip input support to the sequencer, thereby making
undistorted and stabilized footage available without a seperate render step.

Also: removes some old cruft code from the sequencer:

* new_tstripdata wasn't used anymore
* StripElems were allocated for SCENE strips on full length, wasting memory
  Added a comment, that hopefully makes things a little bit clearer:
  StripElems are *only* usefull for MOVIE + IMAGE strips for all other strip
  types one can set this pointer to NULL. (If that should cause otherwise
  problems, then the code that doesn't check for NULL is to blame!)
2012-03-21 18:02:29 +00:00
Joerg Mueller
31cd0521ae Making crossfading sounds accessible in the sequencer menu. 2012-02-29 11:23:27 +00:00
Campbell Barton
635fba3a66 replace ANIM_OT_time_toggle operator with generic WM_OT_context_toggle operator 2012-01-14 14:17:12 +00:00
Campbell Barton
0c4e0965cc make sequencer use standard select operator with action property, remove select_inverse operator. 2012-01-14 07:23:57 +00:00