Commit Graph

1451 Commits

Author SHA1 Message Date
b73fe01295 * Enabled rna access to fluid sim velocity vectors
The main purpose for this is to allow rendering motion blurred blender fluids in external renderers (eg. http://vimeo.com/21870635 ).

Python code snippet for interpreting this data here: http://www.pasteall.org/21577 . Cleaned up some ugly hacks in this area too

* Also added read-only access to scene.subframe to RNA - setting current frame and subframe should still go via scene.frame_set()
2011-05-12 22:52:30 +00:00
3a34dcde68 Code cleanup: remove readblenfile module, only contained some utility functions
to read .blend files from runtimes, folded those into blenloader.
2011-05-11 19:29:23 +00:00
6b0d932c0d warp modifier, added in the render branch for durian.
simple modifier, almost like a hook, except it can deform with 2 object source -> target, has option to preserve rotation and use different falloff types.
2011-05-01 15:16:59 +00:00
1093f69e50 Style Cleanup
- duplicate cases in if/else
- calc inside sizeof(...)
- redundant NULL checks.
- assignment to self.
- fix error getting text prefix for screen ID button.
2011-05-01 10:14:09 +00:00
84d55542c3 fix for r36399
- missing copy, free calls to curve falloff.
- missing localizing call for texture preview.
- also moved versioning into do_versions()
2011-05-01 05:41:08 +00:00
9736061c07 =trunk=
Made some improvements to the point density texture.  Added support
for tweaking the falloff with a custom curve.  Also coded new
falloff types based on the age or velocity of particles.

Also added a test break check to the volumetric shade cache code,
to avoid nasty hangups from the preview render (on render, exit,
etc).
2011-05-01 03:57:53 +00:00
9e6cdf54a3 fix for fix, was incorrectly looping over regions. 2011-04-27 14:53:45 +00:00
7a44c65ce3 fix [#27164] uv unwrap stretching 2011-04-27 07:36:34 +00:00
f9f771cd01 converted more mixed tab/space indentations to tabs. only whitespace changes. 2011-04-21 15:53:30 +00:00
210ee1ade4 whitespace only, no functional change mixed tabs/spaces --> tabs. 2011-04-21 13:11:51 +00:00
7a7df3bfe8 avoid calling newdataadr() on NULL vertex groups, gives a small speedup on loading with files that have many empty groups. 2011-04-20 12:06:23 +00:00
141be02c90 tested with a very large blend file 600mb. - from [#27002].
without this check the file took 4m, 40sec to load, with the check it takes ~3.3sec.
2011-04-20 10:50:56 +00:00
94b99b5d4a Bugfix [#25960] Action/NLA Editor issues with animdata context
Actions now get tagged with an ID-code, which is used to determine
what ID-blocks they can be assigned to. This ensures that material
actions cannot be assigned to the object-level for example.

* Action lists in general will now show only the actions that can be
set for that particular slot. This prevents selection of invalid
actions, and helps cut down the list of actions.
** An exception here is the Add Action Clip in NLA Editor, which will
show all actions but will only add where appropriate. This is because
it's not easy/possible to tell in advance which blocktypes to filter
for when building this list. (TODO?)

* The "Action Editor" is now strictly for object-level action
editing+setting now. This avoids repeateded confusion by people who
try using this to view their shapekey actions, which should go to the
Shape Key Editor instead!
** A context switcher for the legitimate times where this capability
might come in handy is still being investigated.

* "Floating" actions (i.e. actions in some action_library.blend) are
NOT able to be automatically tagged until they are assigned to some
datablocks (i.e. loaded onto the rig + played back once). It is
possible to write scripts that check for certain RNA-paths and "guess"
what datablocks they work on, but it is recommended that you load up
the Datablocks Viewer, and go through such actions by hand, setting
the "ID Root Type" property as appropriate per action.
2011-04-19 13:01:50 +00:00
fae253a428 Fix for [#26949] problems opening 2.49 files with audio (relative path problems?)
When I wrote that code main.name wasn't set correctly and I had to use G.main.name; now it seems to be the other way round :-)
2011-04-18 10:04:28 +00:00
5fbfbd4470 fix [#26904] Crush while open file !
commit r28002 was attempting to run do-versions on an invalid pointer.
2011-04-13 14:40:50 +00:00
b0d6c0fdee fix [#26830] Blender crashes when opening this file
was linking NLA fcurve modifiers as fcurves (wrong function call).
2011-04-08 02:21:43 +00:00
a7507e945d fix [#26803] Libs paths are case sensitive in windows
use case insensitive path comparison on windows: BLI_path_cmp
2011-04-06 06:03:48 +00:00
709e4b309e Revert mesh recalculation change that gives different vertex normals based
on smooth/flat flag on faces. This does give better results for low poly
game models, but there's just too much functionality that depends on this
(modifiers, displacey, editmode tools, extrude, ...), that there's not
enough time to fix these before the release.
2011-04-04 13:02:12 +00:00
91769a65f2 remove unused DNA from mesh, effects list & cubemap size. 2011-04-04 04:47:18 +00:00
4c44a1fc04 quiet warnings. 2011-04-03 13:17:07 +00:00
c7183d2622 library linked modifiers were not having their ID linked expanded properly.
was missing array cap ends, wave map object and shrinkwrap objects.

use modifiers_foreachIDLink() rather then having to list all modifiers ID's in this function.
also add foreachIDLink() for smoke domain.

This fixes a bug where a linked object has as a modifier using an indirectly linked object for the missing cases mentioned above.
2011-03-31 11:21:21 +00:00
3170074011 Fix for [#26646] Hair particle density texture prevents strand render on linked assets
* Linked particle textures weren't expanded during file load.
2011-03-29 21:00:42 +00:00
9c8f1e2ef4 imbuf, mathutils & readfile: floats were being implicitly promoted to doubles, adjust to use floats. 2011-03-27 17:12:59 +00:00
Lukas Toenne
0b9f67061c Fix for [26631] relative blur decimal value from 2.49 is not correctly converted to percentage value in 2.5
This will not work for file saved between the blur node patch and subversion 2, those will still have to be update manually.
2011-03-27 13:49:56 +00:00
63e40dbe0e Fix #26582, #26586, #26613: recent normal calculation changes didn't take
into account that some tools use normals for things other than display. Now
we properly initialize vertex normals at flat faces too.

Also fixed a normal refresh issue, and deduplicated CDDM/mesh normal
calculation code.
2011-03-26 08:28:24 +00:00
edc5cf1f96 Fix #26573, #26574 and #26551: objects on layers not visible on load or undo
restore, would not get their dependencies updated when they became visible.
It happend with a shrinkwrap modifier in these reports, but could happen with
other modifiers too.

Now we keep track of which layers have ever been updated since load, and tag
objects on them to be recalculated when they become visible.
2011-03-23 14:06:44 +00:00
ae530c23c1 Fixing a typo: "Unknown erro reading file" -> "Unknown error reading file" 2011-03-21 09:37:20 +00:00
549b5e1222 Fix/change in normal computation, now the viewport uses the same angle
weighted normals as the render engine, and the render engine will copy
normals from the mesh rather than always recalculating them.

Subsurf/multires still use regular vertex normals, but they are expected
to be sufficiently high resolution to not need this.

This means that normal maps displayed in the viewport actually match the
render engine exactly and don't have artifacts due to this discrepancy.
It of course also avoids unexpected surprises where your render normals
look different than your viewport normals.

Subversion bumped to 4 for version patch to recalculate normals.

Patch by Morten Mikkelsen, with some small changes.
2011-03-20 13:35:35 +00:00
60ce95f562 New particle collisions code:
* The old collisions code detected particle collisions by calculating the
  collision times analytically from the collision mesh faces. This was
  pretty accurate, but didn't support rotating/deforming faces at all, as
  the equations for these quickly become quite nasty.
* The new code uses a simple "distance to plane/edge/vert" function and
  iterates this with the Newton-Rhapson method to find the closest particle
  distance during a simulation step.
* The advantage in this is that the collision object can now move, rotate,
  scale or even deform freely and collisions are still detected reliably.
* For some extreme movements the calculation errors could stack up so much
  that the detection fails, but this can be easily fixed by increasing the
  particle size or simulation substeps.
* As a side note the algorithm doesn't really do point particles anymore,
  but uses a very small radius as the particle size when "size deflect" isn't
  selected.
* I've also updated the collision response code a bit, so now the particles
  shouldn't leak even from tight corners.

All in all the collisions code is now much cleaner and more robust than before!
2011-03-18 15:31:32 +00:00
Lukas Toenne
80d1bb5fcd Measure of precaution: clear the list of temporary links in the node space after loading, in case the file was saved during active modal linking operators. 2011-03-14 07:30:49 +00:00
6559209dbf [#26482] Solidify / Animation Opengl render. no texture.
workaround for view3d datamask not being correct on opengl render.
2011-03-13 02:44:25 +00:00
25a2eb4675 py/library api: raise an error if a requested member isn't found. 2011-03-13 01:15:14 +00:00
5b75593c23 Completely refactored sph fluid particles. Only the very core of the algorithm remains
the same, but big changes have happened both on the outside and on the inside.

New UI:
* The old parameters were quite true to the underlying algorithm, but were quite obscure
  from a users point of view. Now there are only a few intuitive basic parameters that
  define the basic fluid behavior.
** By default particle size is now used to determine the interaction radius, rest
   density and spring rest lengths so that it's easy to get stable simulations by simply
   emitting particles for a few frames and adjusting the particle size (easy when the
   particle size is drawn) so that the fluid appears continuous (particles are touching
   eachother).
** Stiffness - in reality most fluids are very incompressible, but this is a very hard
   problem to solve with particle based fluid simulation so some compromises have to be
   made. So the bigger the stiffness parameter is the less the fluid will compress under
   stress, but the more substeps are needed for stable simulation.
** Viscosity - how much internal friction there is in the fluid. Large viscosities also
   smooth out instabilities, so less viscous fluids again need more substeps to remain
   stable.
** Buoancy - with high buoancy low pressure areas inside the fluid start to rise against
   gravity, and high pressure areas start to come down.

* In addition to these basic parameters there are separate advanced parameters that can
  either be tweaked relative to the basic parameters (or particle size) or defined
  independently.
** Repulsion - the stiffness parameter tries to keep the fluid density constant, but this
   can lead to small clumps of particles, so the repulsion keeps the particles better
   separated.
** Stiff viscosity - the normal viscosity only applies when particles are moving closer to 
   eachother to allow free flowing fluids. Stiff viscosity also applies smoothing to
   particles that are moving away from eachother.
** Interaction radius - by default this is 4 * particle size.
** Rest density - by default this is a density that the particles have when they're packed
   densely next to eachother.
** Spring rest length - by default this is 2 * particle size.

* There are also new options for 3d view particle coloring in the display panel to show
  particle velocity and acceleration. These make it easier to see what's happening in the
  fluid simulations, but can of course be used with other particles as well.

* Viscoelastic springs have some new options too. The plasticity can now be set to much
  higher values for instant deletion of springs as the elastic limit is exeeded. In addition
  to that there is an option to only create springs for a certain number of frames when a
  particle is born. These options give new possibilities for breaking viscoelastic fluids.

New in the code:
* Most of the fluids code is now thread safe, so when particle dynamics go threaded there
  will be a nice speed boost to fluids as well.
* Fluids now use a bvh-tree instead of a kd-tree for the neighbor lookups. The bvh-tree 
  implementation makes the code quite a bit cleaner and should also give a slight speed
  boost to the simulation too.
* Previously only force fields were calculated with the different integration methods, but
  now the fluid calculations are also done using the selected integration method, so there
  are again more choices in effecting simulation accuracy and stability. This change also
  included a nice cleanup of the whole particle integration code.

As the internals are pretty stirred up old particle fluid simulations will probably not
work correctly straight away, but with some tweaking the same level of control is still
available by not using the "relative versions" of the advanced parameters (by default these
are not used when loading old files).
2011-03-12 12:38:11 +00:00
bbf6603961 == Sculpt ==
* Removed some fields from struct SculptSession:
  - Fields drawobject, projverts, and previous_r were completely
    unused
  - Field `ob' was really unnecessary, changed sculpt functions
    to pass the object rather than the SculptSession

This removal of `ob' from SculptSession should should make it a little
easier to continue generalizing paint/sculpt functionality.

There should be no visible changes from cleanup.
2011-03-12 02:12:02 +00:00
a62f7422ff move do_version code under latest subversion bump. 2011-03-11 09:35:16 +00:00
102c5e0ad4 2011-03-11 07:59:43 +00:00
9a622f18ac Bugfix #26424
More problems with Undo and Render Slots (Image editor)

- Undo storage for operator is now back, but only when new
  buffers were added (not when viewing existing)

- A real bug: On undo/redo, the stored buffers were never
  retrieved, but always freed entirely.

Note however that when you undo back to a state before you
rendered (or added slots), the render buffers that didn't
exist back then also get freed. A redo doesn't bring it back.
2011-03-10 17:34:27 +00:00
ae57e8c8c1 needed removing here too 2011-03-08 07:33:26 +00:00
709c727c51 replace 0 with NULL when used as a pointer 2011-03-03 17:58:06 +00:00
a18e1043e8 solidify material offsets for 2nd surface and rim faces.
run do_versions() on use_rim_material option so Sintel's jacket loads ok.
(request from Bassam)
2011-03-03 05:09:07 +00:00
Nathan Letwory
cfd54244cc doxygen: blender/blenloader tagged. 2011-02-27 20:35:41 +00:00
ce81cce75d Fix #26158: The layer hight of the layer tool cannot longer be controled by the strength of the brush, as it was in 2.49
Layer height used to be controlled with brush radius, quite confusing decision.
Added new property for brushes - height for adjusting affectable brush height
(it could be not only layer height in the future).
2011-02-25 16:54:09 +00:00
acf8a9c6ec Fix for [#26197] High resolution smoke cache not available due to pointcache update. Please reset the simulation.
* Backwards compatibility code wasn't forwards compatible :)
2011-02-24 13:37:53 +00:00
Lukas Toenne
b3c60ef3ea Added RNA functions to group tree inputs/outputs for exposing internal sockets or adding custom sockets by name and type (fixes #26171). Changed a few function names for groups for consistency. 2011-02-22 20:24:06 +00:00
354fc0076e Fix for [#26160] Blender Crashes when undoing
Was trying to free audio data from sequencer strips that don't even have audio. Corrected the error in several ways so this will definitely not happen again :-)
2011-02-22 16:32:05 +00:00
Lukas Toenne
d82ff93fa5 Small fix: reset the NTREE_DO_VERSIONS flag, so new node trees don't get updated in future. 2011-02-22 08:22:06 +00:00
Lukas Toenne
91357ae2ea Fixed sloppyness bug, used wrong pointer names when calling lib_nodetree_do_versions_group. 2011-02-22 06:45:47 +00:00
Lukas Toenne
4fb730d6d0 Fixed do_versions for node groups which contain nodes that have changed sockets. do_versions is running before the lib_verify_nodetree function updates socket lists of nodes. This means that when adding unlinked sockets in do_versions to restore older node groups, the new sockets are not taken into account. To fix this a temporary node tree flag has been introduced, which delays actual group socket do_version until the group tree internal nodes have been updated. After that the unlinked group sockets are exposed (like old node groups did), then the external sockets look up the new index, so that external links to group instances are preserved. 2011-02-21 18:18:37 +00:00
Lukas Toenne
1c7a422f78 Big node groups improvement patch. Node group trees now have their own lists of input/output sockets. Those can be linked to internal nodes just like links between regular nodes. In addition group sockets can be renamed and have a defined order, which can be modified, and they can be removed again.
More details can be found in the patch tracker description (#24883) and on the code.blender.org development blog.
2011-02-21 13:47:49 +00:00
d17df68c24 - clear some warnings
- rename layout.operator_enums -> operator_enum (since we have operator_menu_enum, only called in 4 places)
2011-02-18 06:07:41 +00:00