Commit Graph

8416 Commits

Author SHA1 Message Date
cf6994b910 code cleanup: spelling,
also initialize bmesh-bevel settings struct to zero to avoid possible uninitialized memory later.
2012-11-12 07:33:01 +00:00
0bfc92ff8e BM_iter_as_arrayN() can now take an optional existing array argument, useful to avoid many small malloc's by passing a fixes size stack variable instead.
Will give some speedup to edge-split modifier and bevel.
2012-11-12 05:53:43 +00:00
744378483c style cleanup 2012-11-12 03:41:25 +00:00
66b488acc3 style cleanup 2012-11-11 11:00:55 +00:00
a9eb610473 Fix #32398: Mirror modifier with "Merge" enabled producing pairs of faces
sharing the same set of vertices.

Modified the CDDM_merge_verts function (currently only used by the Mirror
modifier) to skip faces using all merged vertices.
2012-11-11 04:53:20 +00:00
cf503f5c77 Sequencer: disabled sequencer recursion and corrected rendered preview mode
Sequencer recursion was never actually supported and only gives lots of
issues. Disabled it now, so users are not getting confused by semi-working
stuff.

Also made a correction to rendered sequencer preview, so now using scene
strip in it's own sequencer will work properly (it produced black frames
before).

This required killing compositor jobs since they could be using the same
render result as renderer called from sequencer uses.

Small improvements could be:
- Add slight delay before compositor job starts handling nodes so killing
  this job would be fast
- Tag compositor to be updated after preview was fully rendered.
2012-11-09 16:49:17 +00:00
d25b13d13f code cleanup: double promotion warnings, also allow cmake to build SDL without audaspace. 2012-11-09 16:15:00 +00:00
6cdb555e6e bmesh refactor - rename some of the BM_****_share_****_count() functions to BM_***_share_check()
some of these were only returning a boolean, others returned a count even though only a boolean was needed.

split some of the functions in two as well where check/count are both needed.
2012-11-09 14:52:05 +00:00
dc5ba03945 Fix #33123: lamp nodes drivers not working, now uses same hacks as material
to work around dependency graph limitations.
2012-11-09 13:57:09 +00:00
98e60b2f43 Edits for consistency with other parts of code
For the record, AnimData vars should be named "adt", not "ad"
2012-11-09 09:57:35 +00:00
2bb174cfa4 style cleanup: indentation 2012-11-09 09:33:28 +00:00
eff734203f add fallbacks for BM_vert_calc_shell_factor() and BM_vert_calc_mean_tagged_edge_length() to avoid divide by zero when a vertex has no connected geometry.
also style cleanup.
2012-11-09 08:28:14 +00:00
9dcd7f3b0b Fix crash when copying scene with sequencer's animation using Link Objects or Link Object Data methods
- Don't crash if there's any fcurves created for sequencer but no sequencer itself
- Don't copy sequencer's fcurves when copy new scene with linking data/objects method
2012-11-09 07:29:27 +00:00
9b91da0d0d Axis Colours are now Themeable
This commit allows you to set the RGB <-> XYZ axis colours used for things like
the mini axis indicator, grid axis indicators, manipulators, transform
constraint indicators, F-Curves (when using XYZ to RGB colouring option), and
perhaps something else I've missed. Previously, these places all used hardcoded
defines (220 * i/j/k), but the readability of these colours was often quite
poor, especially when used with certain themes.

The settings for these colours can be found under the "User Interface" section
of the themes (i.e. same set of colours is used across editors). I could have
made these per editor, but since it's unlikely that these will need to be too
different across editors in practice (+ being easier to version patch), they are
stored under the UI section.
2012-11-09 06:36:11 +00:00
56ae13be99 add a distance limit to the shrinkwrap modifiers project mode,
it was problematic for vertices to fire rays out and hit some unrelated-far-off geometry which is often not what users want.
2012-11-09 04:20:17 +00:00
11a5c909f8 code cleanup: move shrinkwrap's benchmark macro into PIL_time.h & some minor style edits. 2012-11-09 04:01:19 +00:00
1c3640997c Fix #33082: dupliverted metaball showing wrong in cycles render and metaball
edit mode. I've made it follow blender internal now, but this system should
really be improved once, metaballs that are in linked dupligroups will never
show up.
2012-11-09 03:10:15 +00:00
863291bc8e Fix #33113: cycles not rendering motion blur correct with dying particles.
There were a bunch of other issues with dupli motion blur and syncing, the problem
being that there was no proper way to detect corresponding duplis between frames
or updates. As a solution, a persistent_id was added to the DupliObject. It's an
extension of the previous index value, with one index for each dupli level. This
can be used to reliably find matching dupli objects between frames. Works with
nested duplis, multiple particle systems, etc.
2012-11-08 16:35:28 +00:00
4063db3f61 Render: make default lamp size smaller (10cm instead of 1m in typical units). 2012-11-08 16:35:10 +00:00
eacc74ef1b Fix #33116: Blender Crashes when saving inside Sculpt Mode with with GLSL and textured view enabled.
Issue was caused by call ED_sculpt_force_update from WM_file_write which frees
derived mesh and pBVH and forces them to be re-created. After this sculpt session
wasn't repairing properly.

Freeing data from WM_file_write is not nice by itself, but it exposed possible
real issue when sculpting on modifiers. Made it so BLI_pbvh_grids_update will
update pointers to material flags and hidden grids as well.

This isn't idea solution for particular circumstances from the report, since
pBVH would be rebuilt after save which ends up with small interface lags for
while pBVH is rebuilding.

Would be nice to have multires displacement propagation to higher levels
without freeing data.
2012-11-08 14:01:47 +00:00
529209ff83 Added Map Taper option which if enabled maps affect of taper object on
actually beveled part of curve (previously affect of taper would have
been clamped by start/end bevel factor)

Here's an illustration:
http://wiki.blender.org/uploads/5/5d/Blender2.65_CurveMapTaper.png
2012-11-08 08:16:44 +00:00
617a73c573 code cleanup: unused defines & some formatting. 2012-11-08 06:46:10 +00:00
34fecdd60e code cleanup: use min/max functions rather then macros. 2012-11-07 12:31:05 +00:00
14dea2c5bf fix for own error in recent orig-index refactor (reported as [#33112]) 2012-11-07 11:37:53 +00:00
73d83fd99b Affine tracker do_versions were missed for objects tracs
Run this code again, so files from 2.63 would be opened correct now.
2012-11-07 11:32:57 +00:00
1c450d71ef Fixed crashes when motion tracks are zero-sized
This is probably versioning issue happened when both trunk and tomato
were mixed to work on the same file.

Anyway, there're few files here locally and it's probably other users
do have the same files, so lets keep things safe here :)
2012-11-07 11:18:42 +00:00
8740b6cd88 fix [#33108] Running save_as_mainfile breaks relative texture paths
save-as with path remapping left the paths relate to the file written.
2012-11-07 04:13:03 +00:00
852a41fb0e style cleanup, also remove redundant call to set_listbasepointers in free_main(). 2012-11-07 01:02:28 +00:00
27d647dcf8 Cycles: 4 new nodes.
* Tangent: generate a tangent direction for anisotropic shading. Can be either
  radial around X/Y/Z axis, or from a UV map. The default tangent for the
  anisotropic BSDF and geometry node is now always radial Z, for UV tangent use
  this node now.

http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/More#Tangent

* Normal Map: generate a perturbed normal from an RGB normal map image. This
  is usually chained with an Image Texture node in the color input, to specify
  the normal map image. For tangent space normal maps, the UV coordinates for
  the image must match, and the image texture should be set to Non-Color mode
  to give correct results.

http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/More#Normal_Map

* Refraction BSDF: for best results this node should be considered as a building
  block and not be used on its own, but rather mixed with a glossy node using a
  fresnel type factor. Otherwise it will give quite dark results at the edges for
  glossy refraction.

http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/Shaders#Refraction

* Ambient Occlusion: controls the amount of AO a surface receives, rather than
  having just a global factor in the world. Note that this outputs a shader and
  not a color, that's for another time.

http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/Shaders#Ambient_Occlusion
2012-11-06 19:59:02 +00:00
04bea047b5 Bugfix #32191
Case: multiple scenes, linked objects on different layers.
By definition, a layer is a local scene property - not of object.
On setting scenes, this then gets copied over to objects.

Error was a 2.5 year old commit to allow object layer animation,
which is due to depsgraph issues badly supported anyway.
(animate visibility outliner flags instead)
2012-11-06 18:07:17 +00:00
83a22ec16e Harmless formatting tweaks 2012-11-06 06:29:40 +00:00
39da858001 Sequencer: input color space support for image and movie strips 2012-11-05 14:44:29 +00:00
4ad749bc13 Improvement for text indentation: keep selection as good as possible
Patch by Sebastian Nell, thanks!
2012-11-05 13:31:26 +00:00
316d33ea0b Change a way how image sequence/movie source is detecting for movie clip
Use IMB_testiffname to check whether file could be handled by ImBuf or
whether it should be handled by anim routines.

It solves the issue when file without extension is used for movie clip.
2012-11-05 10:32:47 +00:00
c557f6f0b6 Subversion bump for render tiles, motion tracking fallback option and collisions. 2012-11-05 08:41:38 +00:00
759ea40787 Render engines: replace number of x/y tiles with tile size
Now tile size is setting up explicitly instead of using number of tiles.

This allows better control over GPU performance, where having tiles aligned
to specific size makes lots of sense.

Still to come: need to update startup.blend  to make tiles size 64x64.
2012-11-05 08:05:14 +00:00
3bd7816c75 Camera Tracking: allow fallback to reprojection resection by user demand
This fixes some "regressions" introduced in rev50781 which lead to much
worse solution in some cases. Now it's possible to bring old behavior back.

Perhaps it's more like temporal solution for time being smarter solution is
found. But finding such a solution isn't so fast, so let's bring manual
control over reprojection usage.

But anyway, imo it's now nice to have a structure which could be used to
pass different settings to the solver.
2012-11-05 08:04:27 +00:00
88c5b1408c fix issue with shrinkwrap face projection distance comparisons when using both positive and negative projection.
- don't attempt to convert the 'dist' value between local/target space, since all the projections are done in target space
  and dist isnt used afterwards. Also, this could fail with non uniform scale - overwriting ray casts with larger dist values.
- added an assert to check larger dist values never overwrite smaller ones.
- remove use of sasqrt() since the value is checked beforehand anyway.
2012-11-05 05:07:57 +00:00
e894549e5e revert own commit r34706 (fix for [#25801]), this causes bug [#25801].
checking on this code further it still isn't working correctly, will commit other changes next.
2012-11-05 04:38:58 +00:00
82a8556f90 style cleanup 2012-11-05 04:19:30 +00:00
2a8ce1f121 Bugfix #33074
In armature editmode, with mirroring, after duplication of a bone and using
the Wkey "flip names" you get a crash. Code for naming was accessing a NULL
in the bPose channel - not set until leaving editmode.

Thanks to Ben Batt for tackling the issue :)
2012-11-04 12:13:26 +00:00
2122eda05a Bugfix 33075
Nodes could use duplicated memory - and on free you get duplicate-free errors.
Affected texture nodes, but I suspect compositing too.

Fix found by Philipp Oeser. Thanks!
2012-11-04 11:53:13 +00:00
fae6c35ca7 code cleanup: quiet -Wdouble-promotion, disabled this warnings for a few files since its done throughout the code in some places. 2012-11-04 07:18:29 +00:00
89a454653e code cleanup: replace macro with inline function for dynamic paint. 2012-11-04 06:21:09 +00:00
2f2c0a51a5 Fix for r51837.
* mat->nodetree is accessed regardless of whether or not the material node is in use-

Patch provided by Tamito Kajiyama, thanks!
2012-11-04 01:32:39 +00:00
9b948717b0 code cleanup: float <> double conversion. 2012-11-03 18:23:30 +00:00
25591e958d style cleanup: tabs & whitespace 2012-11-03 15:35:03 +00:00
e02b23b81a Render API: shader script node for custom shaders.
* Shader script node added, which stores either a link to a text datablock or
  file on disk, and has functions to add and remove sockets.
* Callback RenderEngine.update_script_node(self, node) added for render engines
  to compile the shader and update the node with new sockets.

Thanks to Thomas, Lukas and Dalai for the implementation.
2012-11-03 14:32:26 +00:00
c9307ec6a3 Fix for [#32992] Switching language does nothing under Windows.
Our current intl build for windows is quite old (don't know the exact version), and does not have the new setlocale overwrite. Problem is, new windows dll have no more the gettext_putenv helper, which is currently mandatory to make it work for this OS.

So back for now to the ugly long_locales for win. Best fix is probably to build our own static version of libl, but this is not trivial and will require some time. :/

PS: I had a look over i18n/translation in wxWidget, Qt and boost: all implement their own system, even though wxWidget and boost use po/mo files...
2012-11-02 20:03:15 +00:00
0a0c8a4a22 fix for own recent commit checking bounds off-by-one. 2012-11-02 12:47:32 +00:00