Commit Graph

49420 Commits

Author SHA1 Message Date
Tamito Kajiyama
6b2c3ed3a7 Fix for an inappropriate removal of singular points in stroke creation.
The previous stroke creation procedure was trying to clean stroke topology
by removing overlapping stroke vertices in the same 2D location.  The idea
was to avoid having to address this kind of singularity during subsequent
stroke shading.  In-depth analyses revealed, however, that this was a wrong
way to ensure clean stroke topology, since just deleting overlapping vertices
may break the continuity of the underlying series of FEdges on top of which
the stroke has been built.  Such a break of linked FEdges was a major cause
of frequent failure in CurvePoint::getFEdge().

The present commit aims to address the singularity issue by adding small
offsets to the 2D location of overlapping vertices and making them
non-overlapping to each other.  Since the offsets only result in sub-pixel
differences, the impact on visual outcomes is expected to be negligible.
2012-07-02 21:38:18 +00:00
Sergey Sharybin
e0c7c4fec4 Tomato: enable color management by default for Windows
This commit enables color management stuff when building on
Windows using MSVC 2008 compiler. This required some fixes
to both CMake and SCons configurations which were tested for
64bit target. Tests of 32bit target would be welcome.

Also solved compilation error caused by recently added anim
player. Not sure how to test this, but it shall  at least
compile on Windows now.

Didn't test MinGW compilation at all yet, could still be buggy.
2012-07-02 20:38:57 +00:00
Campbell Barton
2ed69a95f4 add bmesh/python operator support for vector and matrix args.
also rename BMO_OP_SLOT_PNT to BMO_OP_SLOT_PTR (matches RNA and sounds less like 'point')
2012-07-02 20:28:43 +00:00
Campbell Barton
8d384435ad enable playing with blenders internal anim player again. 2012-07-02 17:15:48 +00:00
Campbell Barton
afd2c5c083 fix for crash getting GROUP_OT_objects_remove's props without a context (own fault) 2012-07-02 17:12:41 +00:00
Sergey Sharybin
f80ea57d31 Color management: added support of color applying color transform on save
This applies to files when saving from image editor and when saving
render result.

Currently only works for images which has got float buffer and saving
happens to byte formats (such as PNG, JPEG). Also supports applying
color management for preview jpegs when main buffer is saving into
OpenEXR file.

As default transform when saving from image editor would be the same
settings as image editor uses itself.

Defaults for color correction of rendered images would be default
display name, no view transform and default values for gamma and
exposure.
2012-07-02 16:38:06 +00:00
Sergey Sharybin
896fb9fda7 Color management refactor
- Move color management display settings into own structure like it's
  done for view settings.

  This is helpful from two sides:

  * It is planned to support display calibration settings which
    should be taken into account by color management stuff to
    add needed transformations to OCIO processor.
  * File saving should be able to make the same display
    transformations as it's done by window when displaying the image.
    Having own DNA and RNA structures for display device settings
    helps avoiding having duplicated code.

- Small refactor of cacheing functions which are now accepts
  cache-like versions of view and display settings. This structures
  used for cache are quite the same as DNA structures but they contains
  indices of view and display which avoids extra lookup for this
  things.

  This also helps having reasonable amount of variables passing
  to cache functions.
2012-07-02 16:37:40 +00:00
Lukas Toenne
33ae33bd10 Fix for image texture node in cycles. The button draw function has to use the image user pointer directly for property buttons, unlike the compositor image node which redefines image user properties on the node itself to ensure proper updates. 2012-07-02 16:27:09 +00:00
Jeroen Bakker
ea5e0d0212 Limit out of screen tiles to be scheduled. 2012-07-02 15:26:47 +00:00
Sergey Sharybin
11b0e4866e Merging r48470 through r48489 from trunk into soc-2011-tomato 2012-07-02 11:29:55 +00:00
Sergey Sharybin
7963c4c35e Fix #31970: Crash, whith Sequencer Swap Data-Function 2012-07-02 10:41:56 +00:00
Sergey Sharybin
e2e79b9e10 Validate mesh selection stack in mesh_validate function
Related on #31944: Blender crashes on switching to mesh edit mode
2012-07-02 09:57:31 +00:00
Campbell Barton
72251e548e code cleanup 2012-07-02 09:07:34 +00:00
Campbell Barton
1b937dbf87 code cleanup 2012-07-02 08:37:59 +00:00
Sergey Sharybin
ccf8c835ba Fix #31961: Grease Pencil in VSE don't save the data
Issue was caused by linking to grease pencil from direct_link* function
which lead to NULL GP data because it's being read a way later.

Link to GP data in lib_link* instead.
2012-07-02 08:30:29 +00:00
Campbell Barton
6072f3f8ab update playanim for 2.6x, playback works, events don't. 2012-07-02 08:20:40 +00:00
Campbell Barton
9181b2979a style cleanup 2012-07-02 08:12:34 +00:00
Campbell Barton
40f56b0937 add back playanim from 2.4x (not functional, #if 0'd) 2012-07-02 08:10:05 +00:00
Sergey Sharybin
4a33d7f210 Fix related on #31984: Multires Displacement Bake creates ripples for each subidived face
Skip applying subdivisions in cases when low resolution mesh is disabled
and baking happens from higher level to higher level/
2012-07-02 07:40:25 +00:00
Campbell Barton
301c4bd09a code cleanup: minor edits 2012-07-01 22:19:19 +00:00
Sergey Sharybin
20481898ed Style cleanup, mo functional changes 2012-07-01 20:38:07 +00:00
Sergey Sharybin
6952d77262 Color management: added view transforms form nuke-default and spi-vfx
- Added some extra view transforms to play with. It's not absolutely
  correct in terms this views were changed to use aces space as input.
  This gives exactly the same result as if using stand-alone spi-vfx
  and nuke-default configuration, but for real merge of this configs
  it'll be needed to add extra input spaces and transformations between
  them.

- Replaced hard-coded aces input color space with default ocio
  linear space which makes it easier to play with different
  configurations.

- Fixed SCons installation of color management configuration which
  used to skip copying LUTs when there was "luts" folder in install
  destination.

- Print whether OCIO was enabled when building with CMake.
  Could be helpful due to OCIO is being automatically disabled
  if needed libraries are missed.
2012-07-01 20:12:38 +00:00
Campbell Barton
0aeb5fc6df printf was being done on uninitialized string. 2012-07-01 15:59:12 +00:00
Campbell Barton
5a803b7edf svn merge ^/trunk/blender -r48415:48469 2012-07-01 15:39:02 +00:00
Sergey Sharybin
148fdb3a7a Color management: fixed crash when freeing context for inactive viewer node 2012-07-01 14:54:05 +00:00
Campbell Barton
1597ad9377 style cleanup 2012-07-01 09:54:44 +00:00
Mitchell Stokes
7ef55c62f3 A little bit of cleanup for the new DXT code:
* Using TRUE/FALSE instead of 1/0
  * Checking to make sure GL_EXT_texture_compression_s3tc is supported
  * Removing some debug error checking
2012-07-01 02:47:34 +00:00
Campbell Barton
8b865c01cd style cleanup: comments 2012-06-30 22:49:33 +00:00
Thomas Dinges
273f56ace0 Scons:
* WITH_BF_COMPOSITOR option, to disable tile compositor compilation.
* Removed unused SCons file.
2012-06-30 22:44:36 +00:00
Campbell Barton
2932cded40 fix for own error renaming bmesh operator dupe 2012-06-30 21:19:12 +00:00
Campbell Barton
39ca3146ff fix for some build warnings. 2012-06-30 16:56:23 +00:00
Campbell Barton
69a7e0af02 rename bmesh ops since they are exposed in an api now. 2012-06-30 15:27:13 +00:00
Sergey Sharybin
34a034fb1b Code style cleanup and prevent crashes when OCIO configuration file is not found 2012-06-30 14:53:58 +00:00
Campbell Barton
d032c8ba2c disable opencl when compo is disabled. 2012-06-30 14:28:45 +00:00
Campbell Barton
90dc1d1353 the compositor optional for cmake: WITH_COMPOSITOR 2012-06-30 14:14:22 +00:00
Campbell Barton
e6d55c97dd add support for passing lists of verts/edges/faces to bmesh operators 2012-06-30 12:58:04 +00:00
Sergey Sharybin
6bfe9266be Color management cleanup and improvements
- De-duplicate code used by color management panel drawing,
  moved this panel to utility file in bl_ui

- Added support of per-window color management control
  which means view transform. exposure and gamma could be
  set per window and all spaces would use this settings.

  This is default behavior for older files now.

- Added support of color management display of movie clips
  in clip editor.

  Supported both texture buffer and fallback draw methods.

- Fixed default values for exposure and gamma
2012-06-30 12:37:41 +00:00
Sergey Sharybin
b57a5521c4 Color management refactoiring and some extra options
- Move space-being settings (such as view transform) into own
  DNA and RNA structure to avoid code duplication in some areas
  and save some arguments on display buffer acquiring function.

  Also added some utility functions to BKE to manipulate this
  settings.

- Replace static sized color managed buffer flags array with
  dynamically sized array which matches actual number of displays.

  Probably this flags better be transfposed so it'll support
  any number of view transforms and 32 displays (currently it's
  other way around). it's runtime flags only, so would be simple
  to change any time.

- Added support of configurable exposure and gamma.

  Changing this settings wouldn't generate new item in cache,
  it'll affect on buffer with the same color spaces conversion.

  It'll also run full color transform from scratch on every run,
  this could be changes in a way that it'll re-use color managed
  buffer, but from quick glance it doesn't give really noticeable
  boost.

  Currently this settings are stored as pointer in ImBuf structure
  itself. Probably it make sense removing them from ImBuf and make
  moviecache be able to store some kind of tags associated with
  cached ImBuf.
2012-06-30 12:37:16 +00:00
Sergey Sharybin
dc40cb4fb0 Color management: fixes for view transform not being properly handled
in space node create and duplicate callbacks.
2012-06-30 12:36:53 +00:00
Sergey Sharybin
74df85d032 Color management: multithreaded transformation apply
Since RRT can't be baked into 3D LUT it's the only way to increase
speed of transformation and make image / clip loading in acceptable
time.
2012-06-30 12:36:41 +00:00
Sergey Sharybin
b984fdf393 Color management fixes
- Fixed memory leak caused by incorrect handling of cached buffer
  in cases if it was marked as dirty
- Do not use 3D LUT for RRT -- they can't be easily baked into 3D
  LUT without being clamped to 0..1 space
- Make sure blender compiles without OCIO support
2012-06-30 12:36:31 +00:00
Sergey Sharybin
d0f67e498e Color management fixes and improvements
- Made color management cache safe for situations when one area
  requested a display buffer, then some changes were done which
  invalidated cache, other area requested display buffer which
  changed cached buffer.

  Suck case could be fatal for first used of display buffer,
  which didn't happen yet because cache is being accessed from
  main thread only, but better to keep this things completely
  thread save to avoid headache in the future.

- Baked RRT transformations, which gives ~3-4 times boost
  hopefully without visible artifacts.

- Added support of partial updates to display buffers.

  This would create special context which hols display buffer
  which imbuf had to the time of creating this context and
  later this context would allow to run a color correction
  from given linear buffer within given region.

  This is being used by compositor to enable more realtime
  display update when compositing.

- Added support of color management backdrop for nodes editor.

  There's now special menu called display properties in N-panel
  of nodes editor.

  Probably this better be de-duplicated somehow, but not sure
  yet how. Currently it's not so harmful to have panel for two
  spaces which contains only 2 properties.

  There's currently one unsolved issue with backdrop:
  it's not being updated progressively when just loading the
  file -- it's simply because there's no color managed display
  buffer for backdrop yet, and compositor doesn't actually
  know which color space to use here to generate preview to.
2012-06-30 12:36:03 +00:00
Campbell Barton
3e99ec8d3d all bmesh operators can now be accessed from bmesh.ops.* using a generic wrapper,
argument parsing still needs to have support added for vector, matrix and element types.
2012-06-30 11:14:10 +00:00
Jason Wilkins
5a859c6ba3 GPU_upload_dxt_texture failed to compile if WITH_DDS was not defined 2012-06-30 10:31:25 +00:00
Campbell Barton
35d8424273 code cleanup: rename some members of bmesh operators, 'slots' is a C++ keyword which confuses some IDE's.
also added missing BMO_op_vinitf args to comments.
2012-06-30 09:55:04 +00:00
Mitchell Stokes
436f02ab9c Finally committing support for compressed textures on the GPU (DDS+DXT). This patch started out as a patch by me, then cleaned up by Kupoman during his work on Cucumber.
One important thing to keep in mind when using this feature is that you'll need to flip your textures vertically (both the GIMP and Photoshop DDS tools I've seen have support for this on export). This is a quirk in using a texture format originally made for DirectX/DirectDraw, and flipping the compressed data is a real headache. Another quick fix for this issue is to change the Y value for the Size in the Mapping panel in the Texture properties to -1 (default is 1).
2012-06-30 04:34:34 +00:00
Campbell Barton
2d7efed014 mark modifier operators that only work in the UI as internal, otherwise this causes some confusion when they do nothing when accessed from the spacebar search menu. 2012-06-29 23:09:19 +00:00
Campbell Barton
244a1c564a svn merge ^/trunk/blender -r48411:48415 2012-06-29 20:34:10 +00:00
Campbell Barton
20d7a38061 don't close operator dialogs when the mouse moves outside of them. this is very annoying when you spend time to enter in many values, escape, click-out-side still quits. 2012-06-29 20:29:13 +00:00
Campbell Barton
53d33d853b game engine & viewport, dont show collision bounds for convex hull or triangle meshes - really visual distraction and they are not used, 2012-06-29 20:26:07 +00:00