Commit Graph

2981 Commits

Author SHA1 Message Date
Nicholas Bishop
473838aec9 Fix for bug [#21534] Multires modifier strange deformations
This adds the "Apply Base" feature from my gsoc2010 branch.

Apply Base partially applies the modifier, in that the mesh is
reshaped to more closely match the deformed mesh. The upper-level
displacements are recalculated so that the highest multires level
appears unchanged.

Multires does not currently deal well with too large displacements.
An easy-to-reproduce example: create any mesh type, add multires,
subdivide a few times, then use the sculpt grab brush to drag the
entire mesh over a few units. At the highest level, and at level 0,
the mesh looks fine, but all of the intervening levels will have ugly
spikes on them.

This patch doesn't help with situations where you can't modify the
base mesh, but otherwise works around the problem fairly well (albeit
with a heuristic, not an exact solution.)
2011-01-07 21:12:47 +00:00
Brecht Van Lommel
b9fe5399e8 Revert bump mapping patch for now, backwards compatibility is not good enough,
we may need to preserve the previous method.
2011-01-07 16:55:56 +00:00
Brecht Van Lommel
c8e0ca44a3 Improved bump mapping patch by M.G. Kishalmi (lmg) and M.S. Mikkelsen (sparky).
Many thanks to them!

For comparison, see here:
http://kishalmi.servus.at/3D/bumpcode/

Based on algorithm in: Mikkelsen M. S.: Simulation of Wrinkled Surfaces Revisited.
http://jbit.net/~sparky/sfgrad_bump/mm_sfgrad_bump.pdf

This fixes bugs:
#24591: Artefacts/strange normal mapping when anti-aliasing is on
#24735: Error at the Normal function.
#24962: Normals are not calculated correctly if anti-aliasing is off
#25103: Weird artefacts in Normal

This will break render compatibility a bit, but fixing this bugs would have also
done that, so in this case it should be acceptable.

Patch committed with these modifications:
* Bump method Old/3-Tap/5-Tap option in UI, 3-Tap is default
* Only compute normal perturbation vectors when needed
* Fix some middle of block variable definitions for MSVC
2011-01-07 14:42:01 +00:00
Janne Karhu
29efbf8a04 New hair child options:
* Renamed children to "simple" and "interpolated" as this is
  easier to explain and more descriptive than "from particles"
  and "from faces".
* Also shuffled the child ui around a bit to make it clearer.
* Child seed parameter allows to change the seed for children
  independent of the main seed value.
* Long hair mode for interpolated children:
  - Making even haircuts was impossible before as the child
    strand lengths were even, but their root coordinates were
    not similar in relation to the parent strands.
  - The "long hair" option uses the tips of the parent strands
    to calculate the child strand tips.
* Hair parting options:
  - Hair parting can now be calculated dynamically on the fly
    when in 2.49 there was a cumbersome way of using emitter mesh
    seams to define parting lines.
  - For long hair parting can be created by a tip distance/root
    distance threshold. For example setting the minimum threshold
    to 2.0 creates partings between children belonging to parents
    with tip distance of three times the root distance
    ((1+2)*root distance).
  - For short hair the parting thresholds are used as angles
    between the root directions.
* New kink parameters:
  - Kink flatness calculates kink into a shape that would have
    been achieved with an actual curling iron.
  - Kink amplitude clump determines how much the main clump value
    effects the kink amplitude.
  - The beginning of kink is now smoothed to make the hair look
    more natural close to the roots.
* Some bugs fixed along the way too:
  - Child parent's were not determined correctly in some cases.
  - Children didn't always look correct in particle mode.
  - Changing child parameters caused actual particles to be
    recalculated.
* Also cleaned up some deprecated code.

All in all there should be no real changes to how old files look
(except perhaps a bit better!), but the new options should make
hair/fur creation a bit more enjoyable. I'll try to make a video
demonstrating the new stuff shortly.
2011-01-07 11:24:34 +00:00
Campbell Barton
e14247d079 bugfix [#25522] Export to X3D is missing ImageTexture and TextureTransform for plane with image texture
- tile option was broken.
- added basic export of texture/mtex transformation.
- recent mesh update broke material/image export with no UVs
2011-01-07 02:39:48 +00:00
Campbell Barton
149955b3e2 print_m3/m4 didnt use const char *, which gave an errror with passing strings & pedantic warnings.
also minor rename in bvh export
2011-01-06 13:49:09 +00:00
Ton Roosendaal
a4c0d644c9 Bugfix #25505
Mesh properties: Auto Texture space option missing
2011-01-06 09:55:20 +00:00
Campbell Barton
3ecacb5654 fix [#25507] Select Interior faces in edit mode gives python error 2011-01-06 05:45:41 +00:00
Joshua Leung
80e6d92639 Missed this file for markers commit... it already had a markers menu
defined, but it was outdated
2011-01-06 05:04:44 +00:00
Joshua Leung
aafd32ab98 Added back "Marker" menu to all animation editors.
Issues:
- It looks a bit crowded though, so perhaps we could do without, and
just leave it for the TimeLine only?
- Due to the way the invoke() testing works, the rename operator
called from the menu currently fails. Will need to experiment more
with execution options to find a workaround.
2011-01-06 04:47:57 +00:00
Campbell Barton
9b8cbe47bd error in recent x3d commit using undefined autosmooth var. 2011-01-06 01:45:25 +00:00
Ton Roosendaal
37931a6b1a Todo item: brought transform texture space back.
Code changes are minimal, re-using the code as already was there.

Options are in pulldown menu, or SHIFT+T and SHIFT+ALT+T

Might be that Martin likes to see it different... do we need
a special operatortype for it?
2011-01-05 17:27:26 +00:00
Campbell Barton
01b7299bdb bugfix [#25393] Export to X3D does not provide color field in indexedFaceSet for colored cube
mostly rewrote mesh export and added support for multiple materials/images, using texface or material images depending on the materials TexFace option.
2011-01-05 14:57:57 +00:00
Campbell Barton
998b789138 use x3d Group's rather then IndexedFaceSets to re-use objects. 2011-01-05 07:14:26 +00:00
Campbell Barton
2028fb45ee X3D export
- last commit broke export
- more removal of not used functions.
- use twoside mesh setting rather then face flag.
- simplify transformations.
2011-01-05 06:58:52 +00:00
Campbell Barton
2225db0025 re-arrange x3d mesh export funcs in preparation for fixing [#25393] 2011-01-05 06:29:43 +00:00
Campbell Barton
14880d0713 X3D Export,
- mesh creaseAngle was being exported as degrees, should be radians.
- remove unused vars & code.
- indenting was using a for loop, can just multiply a string instead.
2011-01-05 05:53:41 +00:00
Campbell Barton
370adc51ff py api function to tag all ID blocks, was available in 2.4x as.
bpy.data.meshes.tag = True

But this was only useful for setting so make it a function for 2.5x.
 bpy.data.objects.tag(False)


X3D: use tagging rather then a name dictionary, this fixes a bug where library name overlaps could mix up names.
2011-01-05 05:33:27 +00:00
Campbell Barton
d387c19444 pep8 cleanup. 2011-01-05 03:22:46 +00:00
Joshua Leung
09852b9a58 Animation data for lattices is now shown in the Animaton Editors 2011-01-05 00:37:21 +00:00
Campbell Barton
231f3a4e2e fix [#25388] Export to X3D generates texture fields in X3D file for objects
use vertex color paint setting to export vertex colors when a material is assigned.
2011-01-04 15:25:12 +00:00
Ton Roosendaal
c2bc82c9fc Bugfix #25486
MedtaBall editmode, 3D window, menu "Select" had an error, unknown
operator for select/deselect. Fix provided by Jonathan Smith
2011-01-04 13:10:46 +00:00
Joshua Leung
cdc7d0b85f Grease Pencil Todos: "Sketching Sessions"
Due to popular request and usability considerations, this commit
reintroduces functionality similar to 2.4's "Draw Mode" for Grease
Pencil.

In the toolbar under the Draw/Line/Eraser buttons, you can find the
"Use Sketching Sessions" toggle, which enables this feature. This is a
per-scene setting, and defaults to off, so that the current 2.5
behaviour is still the default (i.e. the Grease Pencil operator will
only do a single stroke at a time).

With this option enabled, drawing with Grease Pencil will enter a
semi-modal state where you can draw multiple strokes without needing
to keep holding the DKEY throughout (though you'll still need to do so
to start the strokes, unless you use some toolbar buttons), while
still being able to manipulate the viewport. Header help-text prints
show the appropriate keybindings (i.e. press ESCKEY or ENTER to end
the sketching session).

Notes:
- To aid maintainability of the 3D-View toolbar code, I've taken the
liberty to factor out the groups of widgets which commonly occur in
most of the toolbars into separate functions (namely "Repeat" and
"Grease Pencil"). Perhaps it might make it slightly harder to newbies
to the toolbar code to grasp, though the physics panels are far worse
;)
- I've reshuffled some code in the Grease Pencil code to separate out
the various states of operation again more clearly, though some more
work is still needed there (TODO)
- There can now be only one Grease Pencil operator running at a time
- Redoing Grease Pencil operations where sketching sessions was
enabled still needs work. Namely, a way of delimiting the set of
points recorded into strokes is still needed (TODO)
- Ultimately, it should be possible to switch tools midway through a
session. Currently sessions are limited to only being able to be used
with a single drawing mode (TODO)
- After ending a drawing session, the titlebar contols may not work on
Windows without manually making the main window lose focus and then
regain (i.e. click on some other window in toolbar, then come back).
This may be related to (bug #25480)
2011-01-04 03:14:01 +00:00
Ton Roosendaal
3f0210ca1d User pref button for 'drag threshold' 2011-01-03 17:01:08 +00:00
Campbell Barton
e86a489327 Ported back import BVH as Empties, uses delta transformations.
& small pep8 changes.
2011-01-03 16:22:30 +00:00
Campbell Barton
a41ec761fd rename layout.red_alert to alert, may be themeable some day. 2011-01-03 13:33:07 +00:00
Campbell Barton
35422ac536 rna/api
move Object.update(...) to ID.update(). since depsgraph update function can now be called on ID types.

also changed how update flags work.

  obj.update(scene, 1, 1, 1)
... is now
  obj.update({'OBJECT', 'DATA', 'TIME'})

Don't pass scene anymore. This was used for recalculating text but I think this is better dont in a different function.
2011-01-03 09:09:30 +00:00
Campbell Barton
dacdfbe6f3 recent change to keyframe menu broke BVH import, now don't use the operator at all, instead assign the action manually.
Also added bpy.path.display_name_from_filepath(), since filepaths are not ensured to be utf8.
same as calling:  os.path.splitext(os.path.basename(name))[0].encode("utf8", "replace").decode("utf8")
2011-01-03 08:28:22 +00:00
Campbell Barton
1306a38133 fix for own error in recent commit. 2011-01-03 07:07:18 +00:00
Joshua Leung
6feddb8b61 Constraints UI Tweak:
Experimental tweak for the "Object Constraints" tab so that it now
shows a warning message instead of the "Add Constraints" button when
the active object is in Pose Mode. Hopefully this will further
alleviate any confusion over Object vs Bone level constraints.

Todo:
While coding this, I noticed that we currently don't have any way of
making help-text labels in UI panels which can span multiple lines
(word-wrapped or manually split). Probably not a critical issue, but
it would be nice for completeness...
2011-01-02 23:50:16 +00:00
Campbell Barton
a7ceeafd71 - correct typos in comments.
- move boxpack struct out of the public header.
2011-01-02 11:06:50 +00:00
Campbell Barton
f101e59e09 python api: rna array slices now return tuples rather then lists (fits with recent change made to mathutils).
minor improvements/cleanup to exporters.
2011-01-02 09:54:44 +00:00
Janne Karhu
a6a2512f47 Pointcache code cleanup and disk cache compression options:
* Massive reorganization of pointcache code, things are now cleaner than ever.
* For all but smoke the cache is first written to memory when using disk cache and after that written to disk in one operation. This allows less disk operations and the possibility to compress the data before writing it to disk.
* Previously only smoke cache could be compressed, now the same options exist for other physics types too (when using disk cache). For now the default compression option is still "no compression", but if there aren't any problems this can be set to "light compression" as it's actually faster than no compression in most cases since there's less data to write to the disk. Based on quick tests heavy compression can reduce the file size down to 1/3rd of the original size, but is really slow compared to other options, so it should be used only if file size is critical!
* The pointcache code wasn't really 64bit compatible (for disk cache) until now, so this update should fix some crashes on 64bit builds too. Now all integer data that's saved to disk uses 32 bit unsigned integers, so simulations done on 64bit should load fine on 32bit machines and vice versa. (Important disk cache simulations made on 64bit builds should be converted to memory cache in a revision before this commit).
* There are also the beginnings of extradata handling code in pointcache in anticipation of adding the dynamic springs for particle fluids (the springs need to be stored as extradata into point cache).
* Particles were being read from the cache with a slightly wrong framerate. In most cases this probably wasn't noticeable, but none the less the code is now correct in every way.
* Small other fixes here and there & some cosmetic changes to cache panel, but over all there should be no functional changes other than the new disk cache compression options.
* This whole re-organization also seems to fix bug #25436 and hopefully shouldn't introduce any new ones!
2011-01-02 06:52:47 +00:00
Campbell Barton
d5820f0dd0 bugreport & fix [#25441] Copy Transforms Constraint head/tail fixin'
from Dan Eicher (dna)
2011-01-02 04:16:19 +00:00
Campbell Barton
129b6190ed geometry module
- rename functions from camel case.
- added docs for undocumented methods.
- minor functional changes with exceptions and accepting 3d/4d vectors where it makes no difference.

Renamed:
 - geometry.Intersect -> intersect_ray_tri
 - geometry.ClosestPointOnLine -> intersect_point_line
 - geometry.PointInTriangle2D -> intersect_point_tri_2d
 - geometry.PointInQuad2D -> intersect_point_quad_2d
 - geometry.LineIntersect -> intersect_line_line
 - geometry.LineIntersect2D -> intersect_line_line_2d
 - geometry.BezierInterp -> interpolate_bezier
 - geometry.TriangleArea -> area_tri
 - geometry.QuadNormal, TriangleNormal -> normal
 - geometry.PolyFill -> tesselate_polygon
 - geometry.BoxPack2D -> box_pack_2d
 - geometry.BarycentricTransform -> barycentric_transform
2011-01-02 02:11:38 +00:00
Campbell Barton
7040c89af0 BVH Importing native order eulers was broken, simplify conversion between rotation orders. 2011-01-01 13:20:35 +00:00
Campbell Barton
e1f6dc5f73 bvh export
- write compatible eulers (no jumping as eulers change).
- write FPS.
- correct poll function incase bvh export is called without an armature.
2011-01-01 10:38:28 +00:00
Campbell Barton
f932371d1e added bvh export operator & menu item, now user accessible. 2011-01-01 09:44:13 +00:00
Campbell Barton
631745ab9b bvh export now works correctly with matrix multiplications and rad -> deg. 2011-01-01 08:57:09 +00:00
Campbell Barton
e98559fc12 pep8 cleanup 2011-01-01 08:44:17 +00:00
Campbell Barton
48921a4fa1 initial 2.5x port, still need to fix up matrix multiplication orders. 2011-01-01 08:35:38 +00:00
Campbell Barton
a1b1ac5781 committing 2.4x bvh exporter, updating to 2.5x. 2011-01-01 07:26:02 +00:00
Campbell Barton
7f3fe8a2df pep8 cleanup 2011-01-01 07:20:34 +00:00
Peter Schlaile
2840e7b764 == Sequencer ==
Made anim_start / anim_endofs editable again within UI.
2010-12-31 22:44:17 +00:00
Campbell Barton
c68e3913ed fix [#25429] Armature modifier and inverted vertex group
- the invert flag was only being used for multi-modifier, but there is no reason not to use this in normal cases as well.
- Armature modifier RNA name 'vertex_group' was incorrectly named 'vertex_group_multi_modifier' (own fault), confusion was caused by 'invert_vertex_group_multi_modifier' which was correct.
2010-12-31 11:51:00 +00:00
Joshua Leung
dfffad69a9 Bugfix [#25420] Sequencer View Zoom operator hidden
"Numpad 1" shortcut to set preview view zoom to 1:1 (i.e. 100%) did
not exist in View menu. While investigating this, I found that the
operator was missing a description/tooltip, so added one too.
2010-12-31 03:54:28 +00:00
Thomas Dinges
f09d7912f8 Porting URL fixes for Release Logs from Tag to Trunk. 2010-12-30 13:02:48 +00:00
Campbell Barton
9733e5f76f revert part of Tons commit r33884.
- rather then use unlink="None", just don't pass unlink as a keyword. This is more pythonic.
- added an RNA flag for properties which cant be unlinked by setting to None.
2010-12-30 12:22:28 +00:00
Guillermo S. Romero
02038dcf57 SVN maintenance. 2010-12-29 19:50:08 +00:00
Martin Poirier
a15f65776f netrender
Bugfix for job cancellation (reported by Carsten in email)
Ended up recoding part of the communication pipe (use json more consistently)
Fix bpy data modifications where it shouldn't happen (as a bonus, thumbnailing is now done out of process)
2010-12-29 18:34:43 +00:00