Commit Graph

41225 Commits

Author SHA1 Message Date
Sergey Sharybin
42558f83df Color Management: avoid byte->linear->byte conversion if display colorspace matches image's one
Solves slowdown when re-encoding byte image sequence or movie in sequencer.

Fixes #32605: Blender vse renders take more time to render than before
2012-09-20 11:35:33 +00:00
Sergey Sharybin
414bb1a5f0 Fix #32607: Color picker tool doesn't work properly: always pick black.
Regressions since color picking support from background image.
2012-09-20 10:38:12 +00:00
Sergey Sharybin
ddcc3f612a Fix #32603: Multi-Layer EXR files can't be color managed
Issue was caused by completely different way how multi-layer EXRs are loading,
they're bypassing general image buffer loading functions.

Solved by running color space transformation on render result construction
from multi-layer EXR image.

Also fixed issue with wrong display buffer computing for buffers with less
than 4 channels. Issues were:

- Display buffer is always expected to be RGBA
- OpenColorIO can not apply color space transformations on non-{RGB, RGBA}
  pixels.
2012-09-20 10:07:49 +00:00
Campbell Barton
be2454dc55 add back -Wundef for g++, also correct clang warnings and add -Wunused-macros warning. 2012-09-20 09:19:49 +00:00
Campbell Barton
b0c7c8756f code cleanup: cycles now uses system includes for boost/oiio.. etc, so we dont get warnings from system headers. 2012-09-20 09:04:43 +00:00
Campbell Barton
ff834242b7 ffmpeg was adding an include just incase, without a cmake find module here - just check if the dir exists. 2012-09-20 07:43:48 +00:00
Campbell Barton
f85af96d44 code cleanup: some redundant assignments in view3d_draw_bgpic() 2012-09-20 05:09:35 +00:00
Campbell Barton
edb78d090c code cleanup:
- make view3d project names more consistent.
- remove apply_project_float() its not needed.
- update comments referencing an old function name.
- move doxygen docs into the C file, prefer they are kept here to avoid getting out of sync with code.
2012-09-20 04:56:24 +00:00
Campbell Barton
f169643d46 fix [#32604] Loop select broken with Clipped view and wireframe 2012-09-20 03:45:18 +00:00
Keir Mierle
5e433927b5 Fix variable naming in the planar tracker. 2012-09-20 02:27:34 +00:00
Keir Mierle
0af0da957d Add smarter tolerance checking in the planar tracker.
The planar tracker uses Ceres for the refinement stage. During
refinement, Ceres iteratively updates the parameters with the
latest best guess. If the change in the parameters falls below a
threshold, Ceres will abort successfully ("converged").

For the case of pure translation tracking, the parameters are
exactly the two pixel shifts (dx, dy), and measuring the change in
these parameters gives a meaningful termination criterion.
However, for all the other parameterizations like affine, where
the parameterization involves affine parameters that have no
physical interpretation, Ceres is left with no way to terminate
the solver early. With the existing code, often many iterations
are run long after Ceres has found a solution sufficiently
accurate for all tracking needs. No one needs tracking with
a quadrillionth of a pixel accuracy; that time is wasted.

This patch extends the existing iteration callback that is passed
in to Ceres to check if the pattern has fallen out of the search
window, to also check if the optimizer has made a tiny step. In
particular, if the maximum shift of any patch corner between two
successful optimizer steps is less than a threshold (currently
0.005 pixels), the track is declared successful and tracking
is terminated.

This leads to dramatic speed increases in some cases, with little
to no loss in track quality. This is especially apparent when
tracking patches with affine or perspective motion models. For
example, on some tracking cases I tried, the iterations Ceres took
went from 50 to 3.
2012-09-20 02:10:33 +00:00
Campbell Barton
bc69b3a8df style cleanup 2012-09-20 01:32:13 +00:00
Campbell Barton
25c96bc9f3 code cleanup: remove unused macros, commet some which may be useful later - or good to keep for completeness. quieted some warnings and add flags -Wmissing-include-dirs and -Wno-div-by-zero to cmake/gcc 2012-09-20 01:02:39 +00:00
Campbell Barton
5d56a901a8 code cleanup: c++ - use empty() rather than size(), use prefix operators for non-primitive types - recommended for non primitive types. 2012-09-20 00:55:32 +00:00
Brecht Van Lommel
5205927892 Fix #32596: bones in armature created from skin modifier have wrong envelope
values.
2012-09-20 00:53:25 +00:00
Brecht Van Lommel
6cd32435a2 Fix #32598: clamp blender internal alpha channel to 0..1, and RGB to 0..inf,
to avoid compositing issues. The values can go out of bounds due to sharp
pixel filters.

In Cycles the alpha channel is already clamped, and there are no pixel filters
that could cause negative RGB values.
2012-09-20 00:39:27 +00:00
Brecht Van Lommel
56476248b6 Fix #32601: armature select similar missing from select menu. 2012-09-20 00:10:26 +00:00
Brecht Van Lommel
51eed03e94 Fix #31888: cycles crashes using movie for image texture. This is not supported
but should not crash either. This fix is more of a workaround, the crash seems
to be in openimageio or one of the libraries it uses.
2012-09-19 23:55:12 +00:00
Keir Mierle
a6f447427b Detect too-small planar tracking patches.
The planar tracker did not detect very skinny patches which have
effectively zero area and are untrackable. This adds detection and
rejection of patterns with zero area. This fixes a crash found by
during Mango production.
2012-09-19 22:25:02 +00:00
Keir Mierle
8a46b8454e Cleanup for when trackers fall out of the search window.
Sergey originally left a TODO() here, but his fix is the correct
one. I removed the TODO and fixed some comment issues.
2012-09-19 22:01:42 +00:00
Sergey Sharybin
a09b5c1f20 Color Management: new generated images had empty color space by default
Now use default byte/float colorspace when creating new image.
2012-09-19 19:53:16 +00:00
Bastien Montagne
8801008507 Fixed "cleaning" of some menu labels (those with all the ugly %t/|), wasn't working in all cases.
Also cleaned some old, no more used piece of code.
2012-09-19 19:42:01 +00:00
Gaia Clary
f3d261d795 Collada(exporter): Added error message when export file can not be created for whichever reason 2012-09-19 19:28:29 +00:00
Bastien Montagne
b25bea036f Add a "Header" sub-menu to the right-click one of all buttons in a header area. Also header tools entries are now translatable! 2012-09-19 18:47:41 +00:00
Bastien Montagne
0aa26903f5 Makes no sense to have render engine property animatable! 2012-09-19 17:37:15 +00:00
Dalai Felinto
39d57e97be using the utf8 flipped form of Hebrew for the ui 2012-09-19 17:19:39 +00:00
Sergey Sharybin
d8ffe32074 Small fix for Follow Track constraint
Use object_get_derived_final() function instead of accessing to object's
derived final directly.

The same happens for shrinkwrap constraint and it should deal better in
cases when depth object is in edit mode. In other cases should be no
functional changes.
2012-09-19 17:19:30 +00:00
Sergey Sharybin
ef216ee558 Mark movie clip user current frame as editable
It should be pretty safe change which would allow doing stuff like
python-defined tracking routines without need to update the whole
scene when it's needed to perform some operation on different clip
frame.

It'll be possible to write operators similar to tracking, which
updates space clip's frame number, but not scene frame when tracking
and only synchronizes scene frame number on operator finish.
2012-09-19 17:14:43 +00:00
Brecht Van Lommel
3bf576e57e Fix missing dependency graph update when switching to another scene, now does
same update as loading .blend or switching layer visibility.
2012-09-19 17:11:07 +00:00
Brecht Van Lommel
f12d698ead Fix #32576: missing image editor update when entering edit mode with UV textures. 2012-09-19 17:09:14 +00:00
Brecht Van Lommel
2e80d9ccc0 Fix #32018: non-progressive integrator crash. 2012-09-19 17:09:11 +00:00
Sergey Sharybin
d0f4c96394 Color Management: don't apply display transform on Non-Color images
Also don't color manage data buffers in texture painting.

Makes it possible to view heights and normal maps in proper space
and also paint on them without applying extra transformation.
2012-09-19 15:01:36 +00:00
Sergey Sharybin
16a698ad4a Fix crash when tracking in planar motion model (and maybe some other)
It was an Abort() caused by check for solver result not equal to USER_ABORT.

In some cases solver returns USER_ABORT due to BoundaryCheckingCallback
detects coordinates does not belong to image.

Somehow this callback wasn't called in previous version of Ceres and
in the same case marker was jumping. Now when the callback is called
it seems we could simply return failure of tracking without aborting
Blender.

Probably this is in fact some issue somewhere else, would double
check with Keir about this.
2012-09-19 12:43:39 +00:00
Sergey Sharybin
5a3e474cc6 Tracking: fixed crash when reference frame fails to be loaded 2012-09-19 12:43:32 +00:00
Campbell Barton
15ce5f95b3 joining mesh objects now keeps relative key setting of each keyblock. also joining absolute shapekeys now sorts by time. 2012-09-19 12:11:28 +00:00
Campbell Barton
0d5d2146eb code cleanup: make shape key api names consistent with our new convention. 2012-09-19 10:12:07 +00:00
Campbell Barton
f5d3e361ce fix for missing NULL check in init_render_texture() (possibly own fault), also remove some redundant code. 2012-09-19 08:09:22 +00:00
Campbell Barton
123a25c52b fix txt_redo_read_unicode() missing break - reading 4 byte unicode would fail, same fix was made for txt_undo_read_unicode() recently. 2012-09-19 08:07:23 +00:00
Campbell Barton
db051f2b2d fix MESH_OT_tris_convert_to_quads() limit options (uv and vertex color) were not working at all. 2012-09-19 04:48:34 +00:00
Campbell Barton
946c9580b5 fix buffer overrun when 5+ sided faces were used for text drawing. 2012-09-19 02:06:27 +00:00
Campbell Barton
4ea7193ccf code cleanup: marker transform was doing some redundant/misleading assignments & checks, remove unused cruft.
also remove some other redundant checks.
2012-09-19 01:34:10 +00:00
Campbell Barton
f1a5d1d3bb fix buffer overrun in make_histogram_view_from_ibuf_byte(), use define for buffer size so this wont happen again. 2012-09-19 00:56:09 +00:00
Campbell Barton
e00bf04912 fix [#32575] Seperate more than one object from a mesh generates additional edges 2012-09-19 00:09:14 +00:00
Brecht Van Lommel
22fdc63b86 Color management: fix crashes and memory leaks when using custom OCIO configuration
Also fix some missing color spaces when loading some OCIO configurations, by falling
back to scene linear if role is not found. There can still be some errors in the
console, need to check this further.

http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.64/Color_Management#OpenColorIO_Configuration
2012-09-18 19:20:26 +00:00
Brecht Van Lommel
56175d8c80 Color management: default to Save as Render when saving an image datablock with
View as Render enabled.
2012-09-18 19:20:23 +00:00
Brecht Van Lommel
4759f70e33 Fix crash editing mask with no image in the image editor. 2012-09-18 19:20:21 +00:00
Antony Riakiotakis
602691fdfc Fix #31539, painting in image editor while in object mode does not update mipmaps.
While we could disable/enable mipmaps on stroke begin/end, it is a bit hacky (but worthy of consideration for later) for my taste just to paint in the image editor. Instead we generate mipmaps on the fly. Since we can update texture levels below the first only with GPU mipmapping, partial update when painting in the image editor will actually work only with GPU mipmapping from now on (which is fast enough I hope not to get any lags!).
2012-09-18 15:58:07 +00:00
Bastien Montagne
71ecbe9b37 Fix for own r50715 (static func is much better here!)... 2012-09-18 15:13:45 +00:00
Campbell Barton
8e93f017ac do_version fix files with bad keyblock uid caused by byg [#31569] 2012-09-18 14:40:02 +00:00
Campbell Barton
6d76f140d0 fix [#31569] Shapekey w/ Driver - Shapekey Influences Disappears After Going to Edit Mode
joining meshes would allow shape key UID's not to be unique.
This was caused by join adding new key blocks inline, now use add_keyblock() like everywhere else does.
2012-09-18 14:29:01 +00:00