Commit Graph

444 Commits

Author SHA1 Message Date
21eb3e11e0 2d-Filters feature and actuators. 2007-10-22 20:24:26 +00:00
46deddcc62 Image Stamping patch by Diego (and peach request)- stamps image info into metadata and optionally
draws into the
frame.

This patch includes some changes I made...   
* use blenders bitmap fonts (rather then own fonts)
* select font size
* user interface layout changes
* Marker as another image stamp option

Also added some new API calls   
BMF_GetFontHeight(font);
BMF_DrawStringBuf(...);  - so we can draw text into an imbuf's image buffer.
get_frame_marker(frame) - get the last marker from the frame.
IMB_rectfill_area(...) - fill in an image buffer with a rectangle area of color.

TODO - draw stamp info in 3d view, at the moment it just displays in the animation.
2007-10-20 16:17:27 +00:00
87b186e6e7 Make B-Bones not deform in rest position by default.
B-Bones already deformed the mesh in the armature rest position, which is
unconvenient. For backwards compatibility existing .blend files still have
a button for the old behavior enabled.

(peach feature request)
2007-10-10 09:00:47 +00:00
440be7b8c2 Bugfix #7437:
Bumped the version-patch for constraints recode from 2.44.3 to 2.45.
2007-10-02 11:14:12 +00:00
0096d180b9 Dof Object - set the depth of field to an object - set in the camera edit panel but the distance is calculated on the camera object only so linked cameras work.
Alt+Period - sets active pivot

some tooltips didnt make much sense, edited a few.
2007-09-23 18:27:01 +00:00
0ed3e0bb4f made sticky UV editing options more accessible by adding them to a popup in the header.
Changed how the sticky setting is stored in DNA - (as a char rather then 2 flags).
replaced the UV/FACE icon with another needed for the sticky menu.
removed 2 unused icons.

commented the UV transform panel since it only had 2 buttons in it.

depgraph update calls needed to be added to Ctrl+V/E/F menu's because some commands were crashing.
2007-09-22 06:58:40 +00:00
9dcf337e93 image display option for viewing non square pixels (x/y aspect for each image) - useful when editing UV coords with textures that have been resized to values that run fast in openGL (256/512/1024) but have lost their original aspect ratio, especially useful when rotating UV's.
Bumped the subversion to 2, so the default aspect is set to 1:1.

Made "Repeat Image" option time image drawing and bail out early if its taking too long. (quater of a sec max) this could be avoided if the texture was drawn on a quad, but that wouldnt support other image draw options.
This is a good short term solution because it was possibly to lock up blender if you zoomed out a long way then enabled "Repeat Image".
2007-09-20 22:38:04 +00:00
d3a8bcc435 * Fix for old files loading up with gloss = 0.0 and gloss samples = 0.
I blame the 2.45 version-raising!
2007-09-20 05:56:57 +00:00
90daa8f811 * Extra lamp falloff options, including custom curve!
This adds some new lamp attenuation options to the Lamp panel, replacing the old 'Quad' button. Yes, the panel layout is still nasty here, but I've ignored it for now to address properly in the panels cleanup work.

* Constant
http://mke3.net/blender/devel/rendering/falloff-constant.jpg
Lamp doesn't decay with distance

* Inverse Linear
http://mke3.net/blender/devel/rendering/falloff-invlinear.jpg
Default, and same as in older Blender without 'Quad' on. Decays linearly, with 'Dist' value as the lamp's half-energy-distance

* Inverse Square
http://mke3.net/blender/devel/rendering/falloff-invsquare.jpg
A sharper, more realistic decay, good for most electric lights (i.e. not sunlight). This is similar to the old Quad option with slight changes.

* Lin/Quad weighted
Exactly the same as in older Blenders with the old 'Quad' button enabled. When this setting is chosen, two sliders are shown, 'Linear' and 'Quad' (previously Quad1 and Quad2), which controls the 'linearness' or 'quadraticness' of the falloff curve. Lamps in old files with the 'Quad' button on will be initialised to this setting.

But much better for precise control over the lamp falloff now is:

* Custom Curve
This shows an extra 'Falloff Curve' panel, where you can use the standard Blender curve UI control to precisely control how the light falls off. The Y axis is intensity, and the X axis is distance, stretched over the length of the 'Dist' value.

Some example curves and renders:
http://mke3.net/blender/devel/rendering/falloff-curve1-curve.png
http://mke3.net/blender/devel/rendering/falloff-curve1.jpg

http://mke3.net/blender/devel/rendering/falloff-curve2-curve.png
http://mke3.net/blender/devel/rendering/falloff-curve2.jpg

http://mke3.net/blender/devel/rendering/falloff-curve3-curve.png
http://mke3.net/blender/devel/rendering/falloff-curve3.jpg (whee)
2007-09-16 13:50:34 +00:00
ee6acc1061 == imagebrowser ==
* fix for do_versions, bump correction of old imasel to all files including version 2.44 
* refactoring of filtering code using indices instead of copying entries in filelist 
* memleak fix.
2007-09-14 18:21:23 +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
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
c8332ccff1 Fix compiler warning.
bb and mselect are different struct, gcc warning about assignment
incompatible pointer.
2007-08-11 20:45:27 +00:00
848ea23d84 removing unused dna 2007-07-30 13:26:22 +00:00
c8273f4f9e More constraints bugfixes:
* Action constraints on some older files (namely mancandy) should now get correctly loaded. Wrong check for subversion number was being used
* Removed unneeded version patches
2007-07-24 10:24:25 +00:00
939500392e == Constraints - Bugfixes ==
Here are some attempts at fixing bugs being encountered with the constraint system after the recode. I've just fixed a few typos (where relevant), and added some extra checks for things.
2007-07-23 11:28:43 +00:00
74ca178199 == Transformation Constraint ==
This commit adds a new constraint to Blender: the Transformation Constraint. This constraint gives you more freedom to choose how transforms are copied from one object/bone to another object/bone. 

You can assign the Loc/Rot/Scale channels of a source to the Loc/Rot/Scale channels of a destination, specifying the range of motion (per axis) from the source to consider, and the range of motion (per axis) that will be applied to the destination. Also, for each destination axis, you can choose which of the source axes to copy from. 

A similar constraint was coded by Jason Blary (snark), as Patch #4991. This constraint is basically rewritten from scratch, although there are some elements of the original patch which may be borrowed in future.

Various notes:
* PyAPI access has been coded. 
* Space conversion is also enabled for this constraint.
* Also the useless get_constraint_col function has been removed
* Doing a rotation copy with a ratio that is not 1:1 doesn't always work correctly yet (like for the Copy Rotation constraint).
2007-07-21 07:26:15 +00:00
1b0c72c3e5 Removed a variable that wasn't needed, but somehow ended up in the commit the other day. 2007-07-17 11:51:11 +00:00
e64e6ae3a3 == MSVC compilation ==
two small fixes in this commit:
- added new file for nodes 
- fixed compile error in readfile.c, as reported by Jean-Michel Soler here:
  http://lists.blender.org/pipermail/bf-committers/2007-July/018849.html
2007-07-15 14:55:09 +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
129290fbe1 readfile.c - fixed a indentention on a few lines 2007-06-30 03:26:18 +00:00
ab8728df2a == Action Editor - Scrolling Fix ==
This fixes a problem introduced in http://lists.blender.org/pipermail/bf-blender-cvs/2007-May/010005.html

Now channels in older files will be in the view again upon loading.
2007-06-19 11:52:14 +00:00
01e8789f3f == PyConstraints ==
At last! The ability to code constraints in Python. This opens up many interesting rigging possibilities, as well as making prototyping constraints easier.

* A PyConstraint script must begin with the line 
#BPYCONSTRAINT
* It must also define a doConstraint function, which performs the core actions of the constraint.
* PyConstraints use IDProperties to store custom properties for each PyConstraint instance. The scripter can choose which of these ID-Properties to expose to a user to control the behaviour of the constraint. This must be done using the Draw.PupBlock method.

Credits to Joe Eager (joeedh) for coding the original patch on which this is based. I've made heavy revisions to large parts of the patch.

For more detailed information, and some demo scripts, see the following page:
http://aligorith.googlepages.com/pyconstraints2
2007-06-18 07:41:21 +00:00
3026e853b3 == Multires ==
* When loading multires files, clear the temporary connectivity data
2007-06-11 01:30:00 +00:00
2494a5ed0d == Multires ==
* Small optimization to multires based on profiling data; calculation of edge boudndaries is now cached along with multires mapping data to improve the performance of the catmull-clark code.

* Removed an unneeded call to create the temporary data when loading files.
2007-06-10 21:51:11 +00:00
c6158b9293 Put declarations at the top of the block to save some compile problems. 2007-06-02 13:46:16 +00:00
b726b64ead Fix error in the version patch for the SSS scene flag. 2007-06-01 16:53:55 +00:00
1a9f0e692a == Multires ==
* Moved the multires vertex data from struct MultiresLevel to struct Multires. There's no longer any reason to store data seperately for each level; it was just taking up extra memory.

* Incremented the subversion to 2 and adjusted do_versions to correctly load older files.

* Refactored the multires update process (which handles propagating changes to other levels)
2007-06-01 02:21:11 +00:00
33466557fc Disable SSS better for preview rendering, so it does not slow down
other preview renders at all.

Also added a flag to enable/disable SSS per scene. There is no
button for it yet, the Render panel has no space left .. will find
a place for it later.

The subversion number was also increased to enable the flag for
older .blends.
2007-05-17 16:51:09 +00:00
3a8c6c81d8 Subsurface scattering:
Documentation on the settings, known limitations and implementation
info can be found here:
http://www.blender.org/development/current-projects/changes-since-243/subsurface-scattering/
2007-05-03 21:37:52 +00:00
c24aa10561 Made it so blender has an active render layer for Uv and Vertex color mesh layers.
This means changing the active UV/VCol layers wont change what renders.
needed to adjust the minor version so old files will copy the active layer to the render-uv/vcol layer.

boxpack2d.py - redoen in C now, dont need python version.
2007-05-02 00:01:23 +00:00
f62f07734f Patch #5629 - Mirror modifier axis' to be toggleable
This patch makes the X, Y and Z axes of the mirror modifier individually
toggleable, so it is possible to mirror in more than one direction with a
single modifier.

Thanks to Juho Vepsäläinen (bebraw) for the patch!

NOTE: BLENDER_SUBVERSION has been incremented to support translation from old
      to new axis specification.
2007-04-29 14:00:30 +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
01335fc7bb Bugfix:
Previous versions of Blender allowed Vertex Groups to be nameless, which
shouldn't be allowed. This caused problems with rigs from previous versions of Blender being loaded in 2.43+ versions, as the new VGroup feature for the
Armature modifier mis-identified these nameless group(s) as being the Vertex Group
to be used. As well as the checks done when renaming VGroups (from another commit), files created prior to and in 2.43 will have all such groups given default
names.

Code notes:
* I've moved the unique_vertexgroup_name function from src to blenkernel like for
 constraints
* Formatting in deform.c tidied up a bit
2007-04-27 11:16:35 +00:00
ff38a988ae Removed some un-needed code for Limit constraints from file-reading code. 2007-04-12 06:51:48 +00:00
76420c2fec appending libdata no longer breaks all external references.
Existing data is flagged with LIB_APPEND_TAG and all_local only has an option to only operate on un-flagged data.

If you append an object thats linked to a material alredy linked in your scene, the material will not be made local.
So at worst youll need to make local some of the datablocks.

This is fairly simple and though my tests show it to work, do some tests on your own libraries before assuming its problem free.


scripttemplate_mesh_edit wasnt updated with PyAPI changes and moved some functions into generic places.
2007-04-07 17:35:47 +00:00
655f9a61de == Clamp-To Constraint (was Patch #4818) ==
This (new) constraint limits the location of an object/bone to the range of locations
on a given curve. It works by comparing the location of the owner on one axis, to
the extents of the curve's bounding-box on the same axis, to find the location on
the curve.

Usage Notes:
* 'Ob:' field must point to a valid curve object
* This curve should have 'Path' turned on in order for this constraint to work. You
don't really need to do this as it will be taken care of by the code.
* 'Auto' toggle automically determines which axis should be used for the distance estimations/calculations. It is the default option, but may not work that well for
some cases.
* X/Y/Z toggles can be used to select the axis to use for these calculations. Try
to choose the axis along which the curve stretches out for most.

Python Notes:
Python API access for this constraint is not included in this commit. Will be coming
soon.
2007-04-07 03:32:57 +00:00
dca213525a == Multires ==
Fixed bug #6358, UV face select + Multires level change crashes

* Reading in multires files wasn't relinking the MTFace customdata stored for level 1. This was leaving tpage as a bad pointer.
2007-04-02 00:52:38 +00:00
3c256eb9e4 ==== bugfix ====
small fix for uninitialized variable curlib
2007-04-01 19:00:10 +00:00
26fd086bca Removed some more debug prints (regarding camera angle/lens stuff) 2007-03-24 02:20:00 +00:00
bc31d61c3b patch 5341 by Juho
This adds option to show camera angle instead of camera lens value.
(Complete revised patch...)
2007-03-23 13:12:11 +00:00
Ken Hughes
3a834803ef Python API
----------
Support for new bpy.libraries module, which is being proposed to replace
the Blender.Library module.
2007-03-21 02:23:28 +00:00
Ken Hughes
001939bd66 Python API
----------
Bugfix #6255: Library.Load() failed on some blend files prior to 2.43.
Consolidated some code to make Python and Blender UI more in common.  Also
fixed some compiler warnings in the process.
2007-03-16 05:39:30 +00:00
c45e057062 Plumiferos reported bug:
When weights in Meshes are extremely small (< 0.01) normalizing them
can give overflows, thanks to float precision limit.
This is still unsolved, but for now the limit had to be set smaller...
(reason is that Plumiferos uses mixed lattice and vertex-group deform)

Also: running Blender in debug (-d) will print subversion now.
2007-01-28 11:44:32 +00:00
d58cc7b9e6 == Multires ==
Partial fix for bug #5771, Multires tool deletes crease flags on edges

* Modified the edge flags code to support all of the edge flags (not just seams.)
* Added a new array to the Multires struct to store creases.
* For Mark Sharp, Clear Sharp, and Crease, displays an error if applied to a multires mesh not on level 1.
2007-01-22 08:34:53 +00:00
ca56c87312 Addition to fix for bug #5709:
Needed to move the check one subversion further, because files with the
current subversion could already be saved with the wrong value.
2007-01-21 16:08:34 +00:00
1ac4b1d5c3 Fix for bug #5709:
Join triangle threshold was initialized for wrong subversion.
2007-01-21 00:09:24 +00:00
53aabe99f8 Part 2 of bugfix #5741
Modifiers; on read file it sets user counter of linked ID data, except
for Object IDs.
2007-01-18 10:59:23 +00:00
9ff336d14d A few fixes for saving/loading partial mesh visibility (sculptmode): pay better attention to how many verts/edges/faces there really are (not just the visibile ones) 2007-01-16 06:49:57 +00:00