Commit Graph

3895 Commits

Author SHA1 Message Date
5925fe36e0 Render-farm and file utils for dealing with external data.
Useful to use before sending blend files to the renderfarm.

* Make all Paths Relative - makes any absolute paths relative.
* Report Missing Files - creates a textblock listing all missing files.
* Find Missing Files - searches a directory recursively for filenames that dont exist at their current path.

Added a path looper type and functions that currently loop on image, sound, font and external library paths.
2007-12-20 10:27:13 +00:00
f15956356c misc warning fixes and one fix for a big in curve allocation 2007-12-13 15:06:02 +00:00
23a525c52d == Code sweeping ==
BLI_sortlist simplifications
2007-12-10 21:04:48 +00:00
7f1e03296c Bugfix: rotation difference ipo drivers could give sudden jump. This
was actually due to a numerical issue in the matrix to quaternion
conversion code (which was from siggraph '85), now uses an improved
version. I hope nothing depends on the previous behavior.. though
it should only affect corner cases.
2007-12-06 12:46:10 +00:00
32a8b4f8e6 Particles
=========

- Fix crash in particle transform with the particle system not editable.
- Particle child distribution and caching is now multithreaded.
- Child particles now have a separate Render Amount next to the existing
  Amount. The render amount particles are now only distributed and cached
  at render time, which should make editing with child particles faster.

- Two new options for diffuse strand shading:
	- Surface Diffuse: computes the strand normal taking the normal at
	  the surface into account.
	- Blending Distance: the distance in Blender units over which to
	  blend in the normal at the surface.
- Special strand rendering for more memory efficient and faster hair and
  grass. This is a work in progress, and has a number of known issues,
  don't report bugs to me for this feature yet.

More info:
http://www.blender.org/development/current-projects/changes-since-244/particles/
2007-12-04 13:57:28 +00:00
a4c17c7c88 anim.c, buttons_object.c, readfile.c, BKE_blender.h - dupliFace scale option, needed for leaves.
modifier.c, BKE_modifier.h - flag for modifiers to say they use pointcache, also new func modifiers_usesPointCache
renamed //pointcache to //blendcache_blendfilename so blendfiles in the same dir dont conflict, and other to show this dir isnt limited to pointcache only (nodes way want to use this)
wizard_curve2tree.py - better defaults for pretty tree's
2007-11-30 10:38:59 +00:00
7da56f4a9b Particles
=========

Merge of the famous particle patch by Janne Karhu, a full rewrite
of the Blender particle system. This includes:

- Emitter, Hair and Reactor particle types.
- Newtonian, Keyed and Boids physics.
- Various particle visualisation and rendering types.
- Vertex group and texture control for various properties.
- Interpolated child particles from parents.
- Hair editing with combing, growing, cutting, .. .
- Explode modifier.
- Harmonic, Magnetic fields, and multiple falloff types.

.. and lots of other things, some more info is here:

http://wiki.blender.org/index.php/BlenderDev/Particles_Rewrite
http://wiki.blender.org/index.php/BlenderDev/Particles_Rewrite_Doc

The new particle system cannot be backwards compatible. Old particle
systems are being converted to the new system, but will require
tweaking to get them looking the same as before.

Point Cache
===========

The new system to replace manual baking, based on automatic caching
on disk. This is currently used by softbodies and the particle system.

See the Cache API section on:
http://wiki.blender.org/index.php/BlenderDev/PhysicsSprint

Documentation
=============

These new features still need good docs for the release logs, help
for this is appreciated.
2007-11-26 22:09:57 +00:00
4018dfd28f == Sequencer ==
Added malloc mutex handling. (Sorry, had to patch threads.c a bit,
since otherwise scene tracks will completely screw things up...)
2007-11-25 16:35:33 +00:00
a8aaec6f21 Bugfix #7573
NLA Window, Strip blending mode "Add" didn't work at all.
It was using very bad quaternion addition. Replaced with proper code.

For devs; new is the function QuatMulFac(quat, factor) which allows to
multiply a rotation with a value (make it rotate more or less)
2007-11-22 20:25:59 +00:00
7ade814141 Bugfix #7510: Doesn't save .blend file name with [
* Added Windows specific implementation for fnmatch taken from GNU/MINGW/MSYS C library
* behaviour should now be the same as under Linux and other OSs
* changed filename for fnmatch.h to ensure we include the correct one if we link with the included implementation
* tested compile with MSVC 7.1 and gcc(MinGW-5.1.3) on Windows.
2007-11-19 20:13:14 +00:00
38d12b3c8d Bugfix #6797: Relative paths load problem on new file (fix included)
- brought back the check for a valid relative base when selecting.
- kept the check for when file is saved too and warning message is printed to console instead of popping up.
Also fixed BLI_split_filedir overwriting parameter passed as const char*
2007-11-10 11:45:25 +00:00
7294d19d66 Bugfix:
Issue with dual quaternion scaling + vertex group influence.
2007-11-08 18:02:15 +00:00
1b9d661eca Mesh Deform Modifier
====================

The MeshDeform modifier can deform a mesh with another 'cage' mesh.
It is similar to a lattice modifier, but instead of being restricted
to the regular grid layout of a lattice, the cage mesh can be modeled
to fit the mesh better.

http://www.blender.org/development/current-projects/changes-since-244/modifiers/

Implementation Notes:
- OpenNL has been refactored a bit to allow least squares matrices to
  be built without passing the matrix row by row, but instead with
  random access. MDef doesn't need this actually, but it's using this
  version of OpenNL so I'm just committing it now.
- Mean value weights for polygons have been added to arithb.c, a type
  of barycentric coordinates for polygons with >= 3 vertices. This
  might be useful for other parts of blender too.
2007-11-04 22:00:24 +00:00
c3cc13e71b == utils ==
New listbase functions:
	void BLI_insertlinkafter(struct ListBase *listbase, void *vprevlink, void *vnewlink);
		- corrolary to insertlinkbefore
		
	BLI_sortlist(struct ListBase *listbase, int (*cmp)(void *, void *));
		- simple in place sorting method. NOT optimized, so use for small lists only. Uses a variant of insertion sort (I was lazy, people should feel free to rewrite).
2007-11-01 21:44:41 +00:00
bacfc9eb91 fix for crash's in file selector.
- on unix BLI_diskfree was only using 100 chars for the dir name, and 
not checking if the name given was longer, increased to FILE_MAXDIR 
(160) and added a check, return -1 if its too long.

The file selector only allowed 80 chars to be typed into the directory 
entry.

Made the file selector check that the path is less then FILE_MIXDIR, if 
you try and enter a path thats longer it will tell you that the path is 
too long, before it was writing into other memory and crashing.
2007-10-21 09:32:18 +00:00
a41da4fe11 Some code cleanups:
* editaction.c - merged the functions for channel properties (renaming, slider limits, protect/mute, etc.) 

* blenlib
- added a new function BLI_findindex which finds the index position of a given item in a list. It will return -1 if it can't find the item 
- tidied up code formatting so that (the bits I have checked) have a single formatting style instead of a few different ones
- added a few paranoia checks for NULL in one of the listbase-related functions
- removed some half-dutch variable names still lurking around
- culled a few compiler warnings... there are still two in util.c related to (const char *) and (char *) type things
2007-10-04 10:50:15 +00:00
df4505b4ef Missing newline character in printf 2007-09-18 08:29:18 +00:00
0ba5295404 * QMC Raytracing
This introduces QMC sampling for use in glossy reflections/refractions, soft raytraced shadows, and ambient occlusion.

This work includes many new features and speed-ups, so check out the nice docs here:

Glossy Reflection/Refraction
http://www.blender.org/development/current-projects/changes-since-244/glossy-reflectionrefraction/

Raytraced Soft Shadows
http://www.blender.org/development/current-projects/changes-since-244/raytraced-soft-shadows/

QMC Sampling
http://www.blender.org/development/current-projects/changes-since-244/qmc-sampling/

Many thanks to Brecht van Lommel for some initial code snippets and for reviewing the patch, and especially to Alfredo de Greef who gave me a lot of guidance and help along the way!
2007-09-07 03:48:50 +00:00
Stephen Swaney
e20e3e94ff more warning cleanup:
unused variables
undefined variables
discarded qualifiers
2007-09-04 15:53:22 +00:00
Stephen Swaney
3326d493a0 more warning fixes.
sprinkle a few 'const char*'s around to remove warnings 
about discarding qualifiers in imbuf code.
2007-09-03 19:12:36 +00:00
04a2eb2e4e adding 2 new functions
Mat3ToScalef and Mat4ToScalef

These return a floating point scale value which is the average of the 3 axies.
Use this to adjust curve radius when applying scale/rot
2007-09-02 22:53:59 +00:00
356ab94373 == imagebrowser ==
Initial commit of imagebrowser in trunk.
BIG COMMIT!

Main changes:
* completely reworked imasel space
* creation and storage of the preview images for materials, textures, world and lamp
* thumbnails of images and movie files when browsing in the file system
* loading previews from external .blend when linking or appending
* thumbnail caching according to the Thumbnail Managing Standard: http://jens.triq.net/thumbnail-spec/
* for now just kept imasel access mostly as old imgbrowser (CTRL+F4, CTRL+F1) a bit hidden still.
* filtering of file types (images, movies, .blend, py,...)
* preliminary managing of bookmarks ('B' button to add, XKEY while bookmark active to delete)

More detailed info which will be updated here: http://wiki.blender.org/index.php/User:Elubie/PreviewImageBrowser

Places that need special review (and probably fixes):
* BLO_blendhandle_get_previews in readblenentry
* readfile.c: do_version and refactorings of do_library_append
* UI integration

TODO and known issues still:
* Accented characters do not display correctly with international fonts
* Crash was reported when browsing in directory with movie files
* Bookmark management still needs some UI work (second scrollbar?), feedback here is welcome!

Credits:
Samir Bharadwaj (samirbharadwaj@yahoo.com) for the icon images.

Many thanks to everyone who gave feedback and helped so far!
2007-09-02 17:25:03 +00:00
6cd6bf7d80 Updated the Makefiles removing some of the gcc specific stuff...
Basically I moved  -funsigned-char -fno-strict-aliasing
from individual Makefiles to nan_compile.mk defines for CFLAGS and CCFLAGS

Kent
2007-08-31 16:16:33 +00:00
fbb6a133df Bugfix:
Crazyspace correction for quaternion deform interpolation was broken.
2007-08-06 14:32:10 +00:00
c0e0f4698f Quaternion Deform Interpolation
===============================

This is a new armature deform interpolation method using Dual Quaternions,
which reduces the artifacts of linear blend skinning:

http://www.blender.org/development/current-projects/changes-since-244/skinning/

Based on the paper and provided code:

Skinning with Dual Quaternions
Ladislav Kavan, Steven Collins, Jiri Zara, Carol O'Sullivan.
Symposium on Interactive 3D Graphics and Games, 2007.
2007-07-31 19:28:52 +00:00
655fb548aa Removing some useless code, and fixed a few compiler warnings. 2007-07-30 11:10:30 +00:00
8742899f5e Armature CrazySpace Improvement
===============================

An improved CrazySpace correction is now used for Armature modifiers that use
vertex groups, and that are the first enabled modifiers in the stack. This is
a a specific case, but also a common one.

http://www.blender.org/development/current-projects/changes-since-244/skinning/

Implementation Notes:

- The quaternion crazyspace correction is still used for modifiers other than
  the armature modifier.
- Modifiers can now provide a deform matrix per vertex to be used for
  crazyspace correction, only the armature modifier implements this now.
2007-07-28 21:04:30 +00:00
373f91c8b1 Bone Heat Weighting
===================

This is a new automatic vertex weighting method, next to the existing
envelope based method. The details are here:

http://www.blender.org/development/current-projects/changes-since-244/skinning/

This is based on section 4 of the paper:

"Automatic Rigging and Animation of 3D Characters"
Ilya Baran and Jovan Popovic, SIGGRAPH 2007

Implementation Notes:

- Generic code for making mesh laplacian matrices has been added, which
  is only used by bone heat weighting at the moment.
- Bone to vertex visibility checking is done with the raytracing code.
- Fixed an issue in the subsurf limit calculation function, where the
  position of vertices on boundary edges was wrong. It is still not the
  correct position, but at least it's in the neighbourhood now.
2007-07-28 14:04:02 +00:00
af55d208f4 == Constraints System ==
After just over a week of coding, I've finished doing a major refactor/cleanup of the constraints code. In the process, quite a few old kludges and ugly hacks have been removed. Also, some new features which will greatly benefit riggers have been implemented.

=== What's New ===
* The long-awaited ``ChildOf Constraint'':
This allows you to animate parent influences, and choose which transformation channels the parent affects the child on (i.e. no translation/rotation/scaling). It should be noted that disabling some combinations may not totally work as expected. Also, the 'Set Inverse' and 'Clear Inverse' buttons at the bottom of this constraint's panel set/clear the inverse correction for the parent's effects. Use these to make the owner not stick/be glued to the parent.
* Constraint/Target Evaluation Spaces:
In some constraints, there are now 1-2 combo boxes at the bottom of their panel, which allows you to pick which `co-ordinate space' they are evaluated in. This is much more flexible than the old 'local' options for bones only were.
* Action Constraint - Loc/Rot/Size Inputs
The Action Constraint can finally use the target's location/rotation/scaling transforms as input, to control the owner of the constraint. This should work much more reliably than it used to. The target evaluation should now also be more accurate due to the new space conversion stuff.
* Transform - No longer in Crazy Space (TM)
Transforming objects/bones with constraints applied should no longer occur in Crazy Space. They are now correctly inverse-corrected. This also applies to old-style object tracking.

=== General Code Changes ===
* solve_constraints is now in constraints.c. I've removed the old `blend consecutive constraints of same type' junk, which made the code more complex than it needed to be.
* evaluate_constraint is now only passed the constraint, and two matrices. A few unused variables have been removed from here.
* A tempolary struct, bConstraintOb, is now passed to solve_constraints instead of relying on an ugly, static workobject in some cases. This works much better.
* Made the formatting of constraint code consistent
* There's a version patch for older files so that constraint settings are correctly converted to the new system. This is currently done for MajorVersion <= 244, and SubVersion < 3. I've bumped up the subversion to 3 for this purpose. However, with the imminent 2.45 release, this may need to be adjusted accordingly.
* LocEulSizeToMat4 and LocQuatSizeToMat4 now work in the order Size, Rot, Location. I've also added a few other math functions.
* Mat4BlendMat4 is now in arithb. I've modified it's method slightly, to use other arithb functions, instead of its crazy blending scheme. 
* Moved some of the RigidBodyJoint constraint's code out of blenkernel, and into src. It shouldn't be setting its target in its data initialisation function based + accessing scene stuff where it was doing so.

=== Future Work ===
* Geometry to act as targets for constraints. A space has been reserved for this already. 
* Tidy up UI buttons of constraints
2007-07-15 03:35:37 +00:00
2929e8f65a == Constraints/Arithb Code ==
* Formatting 'fixes' for more consistency with rest of code
* Moved Mat4BlendMat4 from constraint.c to arithb.c/h
2007-07-03 00:58:38 +00:00
Nathan Letwory
bc2ad537ed * remove very confusing comments. We will *not* 'fase into' MTC_*. 2007-05-22 10:58:30 +00:00
d6d1334562 Another small cleanup of dead code thanks to coverity.
Kent
2007-05-09 14:57:26 +00:00
243d1a28c0 Casting fixes for 64 bits. Incomplete commit, discussion on proper casting
has to be finished.
2007-04-29 10:49:02 +00:00
42057481fb Part 2 of 64 bits fixing; the files.
The good news; previously written 64 bits are still valid! All fixes
appeared to be possible in code, no versioning patches needed. :)
That also removes the I AM STUPID 64 bits ban from the code.

The bad news:
I couldn't get a 64 bits Blender running here (ghost-mac issues... it
has to be recoded using Quartz to be able to run 64 bits). So what I
have tested was:

32 bits binary:
  - Appending/linking data from 64 bits file.
  - Reading 64 bits chained library-linked files (file -> file -> etc)
  - Linking 32 bits files with 64 bits files

This has to be tested for 64 bits too. Will drop in IRC now to help.

Note: part 3 is fixing memory issues for addressing > 4 GB data. A first
start has been made for a blenlib API function.
2007-04-28 16:15:00 +00:00
afdd54fa37 moved source and text to american spelling
* colour -> color
* centre -> center
* normalise -> normalize
* modelling -> modeling
2007-04-04 13:18:41 +00:00
f8b13d57cb added stdlib.h header, comments and all lines < 80 chars. 2007-03-22 03:28:34 +00:00
903a8ed1fd missing x/y setting for the first box 2007-03-21 17:11:25 +00:00
ca94d97049 moved the boxpacker from PyAPI's Geometry to BLI_boxpack2d
made LSCM UV Unwrapper use boxpack2d
2007-03-21 17:06:02 +00:00
7f2d1f651c ==== blenlib ====
- added replacement BLI_snprintf for snprintf to avoid MSVC specific #defines for snprintf.
- BLI_snprintf also ensures trailing zero, so helps preventing buffer overflows
2007-03-19 19:34:04 +00:00
6f3fb5525e Patch #3126
Option to draw object name in 3d window corner, now also displays for
meshes the (pinned) shape key name.

Threads: warning fix, added (void) for function declaration.
2007-03-19 15:48:24 +00:00
Ken Hughes
83e72cc813 Fix various gcc warning, unused variables and incorrect type passed to
*printf functions.
2007-03-17 14:46:04 +00:00
Ken Hughes
4e5ad50079 Tools
-----
Bugfix #6174: files larger than (2^31)-1 bytes were reported with negative
sizes in file manager windows.  Added a cast to unsigned int before doing
conversions for the UI.
2007-03-07 06:19:15 +00:00
c7ad7cd1b0 === bugfix ===
[ #6077 ] Scripts in sub-sub-folders of Blender's scripts folder won't run.
[ #5572 ] Scripts in sub-folders of Blender's scripts folder won't run
- I've added a function in blenlib to join two strings with a path separator in between.
- Willian, Campbell, please check if commit in BPY_menus is ok and test - thanks!
2007-02-28 21:37:14 +00:00
e53c5058b4 === bugfix ===
filename and path issues:
[ #6107 ] Animation crashes when ouput folder does not exist
- using the Windows drive as default and only then degrading to the
  Blender installation drive and then the first valid drive.
- in case of degrading added error message print to console to make it
  transparent
[ #6106 ] fluids - no default path
- setting the default path to U.tempdir where Blender stores temporary files
2007-02-28 20:11:10 +00:00
Stephen Swaney
5cb958f305 broken build!
FILE_MAX undefied in util.c
implicit method def Armature_CreatePyObject() in Armature.
2007-02-22 10:20:27 +00:00
f12d312275 === bugfix ===
- path without volume name still caused error when used as name for relative base
- could happen with name in .Blog file saved by older blender version
- fix for [ #6065 ] Blender refuses to save any renders
2007-02-21 20:00:03 +00:00
298ee9d3dc Fix for bug #5891:
Knife cut didn't always subdivide UVs properly with degenerate triangles.
2007-02-09 21:46:08 +00:00
fcd3ea7875 == Snap Bones To Location in PoseMode ==
Now the Snap To Location (Shift S) tools for bones in pose-mode
work correctly. Previously, only one of these tools was implemented,
but it only worked in some cases.


This fixes item #4874 in Todo Tracker. Was patch #5012.
2006-12-22 09:05:37 +00:00
af60771eca Fix for threads usage. This solves the hanging 'render baking', cauused
by yesterdays commit.

Now a designater LOCK_IMAGE is used for all image write/read.
2006-12-21 15:44:46 +00:00
253432bfc7 The Big Image refactor!
Please read:
http://www.blender3d.org/cms/Imaging.834.0.html

Or in short:

- adding MultiLayer Image support
- recoded entire Image API
- better integration of movie/sequence Images

Was a whole load of work... went down for a week to do this. So, will need
a lot of testing! Will be in irc all evening.
2006-12-20 17:57:56 +00:00