Commit Graph

3458 Commits

Author SHA1 Message Date
Campbell Barton
bdb95acac8 code cleanup: comment verse outliner views, also correct warning in recent commit. 2012-10-04 11:39:30 +00:00
Campbell Barton
e2bf6eacb3 use GCC's -Wpadded on DNA files, gives more useful warnings then makesdna. 2012-10-04 09:20:58 +00:00
Campbell Barton
f609d0f22e code cleanup: remove USE_BMESH_FORWARD_COMPAT - this was added to load bmesh in pre-bmesh blender version, remove MODSTACK_DEBUG, was never used. 2012-10-04 09:12:08 +00:00
Campbell Barton
589ada7f0c code cleanup: correct spelling 2012-09-28 06:45:20 +00:00
Campbell Barton
aa49ca25d5 incorrect spelling in comments 2012-09-26 20:05:38 +00:00
Campbell Barton
c1ed602060 default simple deforms Relative option to be enabled, IMHO this shouldn't be an option (objects should always work relative to eachother). At least defaulting to ON gives users more predictable behavior (Transforming both objects together keeps them the same relative to eachother). 2012-09-25 03:00:33 +00:00
Campbell Barton
b1ef5703d6 add a UV Project material option so UV's are calculated taking into account perspective matrix - previously this gave artifacts with lower poly meshes. 2012-09-22 04:57:55 +00:00
Campbell Barton
3d1cdfbb38 remove sticky coords from blender and the internal render engine. 2012-09-21 11:37:51 +00:00
Campbell Barton
f9467d28b9 remove sticky coordinates from blender, this was missing from the UI since 2.49.
TODO - drop support from the renderer still.
2012-09-21 11:19:16 +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
690d5192f0 code cleanup: remove vertex/weight paint's VP_COLINDEX, this feature worked in the code but wasnt accessible from the UI this wasn't even accessible from the UI in 2.4x.
This would only paint onto faces from the active material. however we're better off using selection here IMHO (adding support for material selection in paint mask mode).

also quiet some warnings.
2012-09-18 04:55:52 +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
Campbell Barton
fed6b2bcb7 code cleanup: remove paranoid/invalid NULL checks and also reduce some unneeded size_t -> int conversions. 2012-09-15 07:31:17 +00:00
Campbell Barton
4cb6d5d214 code cleanup: reduce calls to CTX_ functions inline, add some docs to mask rasterizer. 2012-09-13 01:50:21 +00:00
Campbell Barton
2812dd92cf code cleanup: use BMEdit_FromObject() rather then me->edit_btmesh in more places. 2012-09-10 03:34:43 +00:00
Campbell Barton
d75a66674d code cleanup: remove deprecated defines and some struct members 2012-09-06 00:33:59 +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
Brecht Van Lommel
adea12cb01 Cycles: merge of changes from tomato branch.
Regular rendering now works tiled, and supports save buffers to save memory
during render and cache render results.

Brick texture node by Thomas.
http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/Textures#Brick_Texture

Image texture Blended Box Mapping.
http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/Textures#Image_Texture
http://mango.blender.org/production/blended_box/

Various bug fixes by Sergey and Campbell.
* Fix for reading freed memory in some node setups.
* Fix incorrect memory read when synchronizing mesh motion.
* Fix crash appearing when direct light usage is different on different layers.
* Fix for vector pass gives wrong result in some circumstances.
* Fix for wrong resolution used for rendering Render Layer node.
* Option to cancel rendering when doing initial synchronization.
* No more texture limit when using CPU render.
* Many fixes for new tiled rendering.
2012-09-04 13:29:07 +00:00
Campbell Barton
d248f94cf8 add endian switch functions to replace macros SWITCH_INT/LONG/SHORT, with BLI_endian_switch_int32/int64/float/double... 2012-09-03 07:37:38 +00:00
Campbell Barton
56534ecdcb style cleanup: also add debugging print function for derived mesh DM_debug_print_cdlayers() 2012-09-03 02:41:12 +00:00
Campbell Barton
1d9eaad73a code cleanup: replace term 'alpha' with '64' in makesdna, this was historic that dec-alpha was the first 64bit system blender was ported for, but now its not helpful to call it this way. 2012-08-29 09:51:38 +00:00
Campbell Barton
13254cde8c Alternate mask spline feather offset calculation method: now there are 2 [Even | Smooth]
- Even preserves thickness but can give unsightly loops
- Smooth gives nicer shape but can give unsightly feather/spline mismatch for 'S' shapes created by beziers.

This is an example where smooth works much nicer.

http://www.graphicall.org/ftp/ideasman42/mask_compare.png
2012-08-27 09:44:56 +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
Brecht Van Lommel
97ee630dcd Fix #32201: particle size compatibility broken for object/group duplication.
After 2.63 there was a bugfix to take object scale into account for the duplicated
objects, but this breaks compatibility on earlier files. Now there is an option to
control if the scale should be used or not.

Scale is used by default on newer files, and not used on older ones.
2012-08-22 13:10:43 +00:00
Campbell Barton
f67d0e63a4 add new mask blend mode: 'Merge Subtract'. gives better results when using feather on overlapping masks when one subtracts from another. 2012-08-22 11:58:59 +00:00
Campbell Barton
7d673ef0d2 fix for blend_render_info.py not closing file & some edits to comments. 2012-08-22 10:29:30 +00:00
Campbell Barton
9a776daca8 code cleanup: vfont's used confusing and over complicated method of storing memory for loaded fonts, not store as a temp var in the fonts. 2012-08-21 10:39:02 +00:00
Campbell Barton
3204731209 code cleanup: don't use magic numbers for curve flag & use bool args for curvemapping_changed() 2012-08-21 08:47:36 +00:00
Campbell Barton
cf3d58512b - fix for error in ndof patch.
- ColorBalanceModifierData wasn't aligned on 32bit systems.
- BM_vert_find_first_loop() was missing NULL check.
2012-08-19 15:56:49 +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
Sergey Sharybin
adec7cdea2 Patch #32326: NDOF support of rotation and panning the view at the same time
Additional changes:
- Option to the ndof menu letting you pick turntable/trackball independently
  of the mouse viewport navigation style
- Option to change the rotation sensitivity separate from the panning

Holding shift + moving the ndof does just as before locking it to panning
Holding ctrl + moving will lock it to only rotation

Patch by Fredrik Hansson, thanks!

Reviewed by self and Mike Erwin.
2012-08-19 13:52:36 +00:00
Lukas Toenne
e83ef85576 Python node operator for combined node collapsing and hiding unused sockets. Socket hide flag is added to RNA as well, but can only be set when the socket is not connected, to avoid dangling links in editor drawing. Currently this operator has no default hotkey, but can be called from the Node menu. 2012-08-14 17:56:33 +00:00
Campbell Barton
59fedc6b7c rename blur Reference to Variable Size, improve tooltip 2012-08-14 12:39:12 +00:00
Campbell Barton
be513d1b15 fix for missing NULL checks when sequence-strip pointers become NULL because of problems with library linking. 2012-08-13 17:25:03 +00:00
Campbell Barton
ca7d1ec39d style cleanup: use <pre> for doxygen ascii art 2012-08-13 15:17:15 +00:00
Campbell Barton
c140ccb9fd 2d smoothview now scales back the time to move for smaller view zoom/panning.
also the compositor bounds (used for scroll bars), were only calculated when pressing the home key in 2.63, how this is updated on draw
2012-08-12 19:35:47 +00:00
Campbell Barton
32254596d4 replace ELEM8(gs, ID_ME, ID_CU, ID_MB, ID_LT, ID_LA, ID_CA, ID_TXT, ID_SPK) with macro: OB_DATA_SUPPORT_ID() 2012-08-12 14:57:19 +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
Campbell Barton
9cce2d8645 smooth-view for 2d views, graph editor, sequencer, node view, works with border zoom, view selected, view all. 2012-08-12 01:07:31 +00:00
Campbell Barton
b96c622015 style cleanup 2012-08-11 22:12:32 +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
Campbell Barton
6a1a5ad08b split off auto depth option to have cursor placement use depth too since you dont always want both. 2012-08-10 10:34:24 +00:00
Sergey Sharybin
9f30c7147c Frame matching methods for follow track constraint
This is needed in cases when using blender camera with different
resolution than original footage. Behaves in the same way as
background picture framing.
2012-08-09 16:57:02 +00:00
Campbell Barton
0107385f7f code cleanup: ensure macros require ';' endings 2012-08-08 21:20:10 +00:00
Lukas Toenne
543cee14ca Renamed the mx/my coordinates in SpaceNode to more descriptive 'cursor'. This follows the naming in the View3D space, since this vector is used for essentially the same purpose (adding nodes at a specific location), although not used for any transform origin and not displayed in the editor.
Note: While renaming DNA properties is usually dangerous and can break files, in this case it is possible because the mx/my values are only used at runtime.
2012-08-08 17:37:02 +00:00
Mitchell Stokes
47c7266522 Accidentally did a commit when I wanted to revert... (ignore my last revision) 2012-08-08 01:29:20 +00:00
Mitchell Stokes
843b45cafa 2012-08-08 01:24:48 +00:00
Campbell Barton
d5b9ae57ca Switching images in the image space would modify UV coordinates.
This is an intended feature but works too unreliably.

- This setting was stored in each face and only editable by re-running the unwrap, this is too hidden (only discovered this by reading code).
- This worked with blender internal but not with cycles, such basic options as changing an image shouldn't behave different depending on the render engine selected.

I've ifdef'd out the aspect correction for now, it could be added back as a per scene option and be made to run on both cycles or blender internal but for now I prefer to keep this disabled.
2012-08-06 19:28:22 +00:00
Sergey Sharybin
a334b5a4b6 Made feather self-intersection check an option.
Useful in cases when masking stuff like self-intersecting
ropes. This could probably be smarter option, but can't
currently think about robust approach here.
2012-08-06 15:20:14 +00:00