Commit Graph

1336 Commits

Author SHA1 Message Date
Joshua Leung
dbbf45875b == Scaling Constraints Working in Local-Space ==
* Patch #5442: "Fix Bone SizeLimit" by Heriberto Mendez (gammarayq21)
'Limit Scale' constraint can now work on bone's local scaling too.

* I've also made the 'Copy Scale' constraint able to use the local scaling
of bones too.
2006-12-18 10:17:40 +00:00
Erwin Coumans
0e6518731f Use degrees instead of radians for rigidbody constraint axis (euler angles). Radians can't specifiy 90-degree angles precisely, the input is only 3 decimals accurate... 2006-12-18 07:51:12 +00:00
Ken Hughes
08a7208aa6 Python API
----------
A more robust attempt to avoid creating non-Empty objects with no data while
maintaining backward compatibility.
2006-12-17 00:21:57 +00:00
Joseph Eagar
3a84791b53 =IDProperties Python update=
Updated id properties interface as per
discussed in python meeting.  Basically,
id properties are now entirely accessed
through the dict-like interface if IDGroupType.
Also, tp_getsetters are used throughout the code
now.

Using the dict interface allowed for a major cleanup
of the wrapping code.  The biggest change is that ID
properties are no longer wrapped in a structure with 
.type .name and .data members; instead when you get
properties from the group it returns the direct value.
Ints, strings and floats return simple python types,
while arrays and groups return special wrappers though.

This means to detect the type of an ID property, you
have to use type().  For string and int types this is
easy; for group and array types (which of course have
their own wrappers) you use type() with Blender.IDGroupType
or Blender.IDArrayType.

Update of epydocs plus a temporary gui script will be
forthcoming; the gui script will be removed before release
as of course by then we'll have a built-in gui for id
properties.
2006-12-16 23:54:45 +00:00
Joshua Leung
4935f0b231 Constraints on bones working in 'local' mode, now obey the Enforce
value for constraints. Only Copy Rotation used to do so.

Note: only enforce values of 0.0 or 1.0 are useful/totally predictable
2006-12-14 22:58:22 +00:00
Ton Roosendaal
ae7fcb58bc Armature Proxy bugfix: synchronizing the pose went wrong when the proxy
had new dependencies added internally (like constraints), changing the
evaluation order for pose channels. My optimized code didn't like it, so
now it falls back to a reliable slower method.

Bug showed as totally messed up characters for proxies...

Also: increased range for 3D Window properties clip-start/end, this is
still a bad construct though...
2006-12-13 08:50:11 +00:00
Campbell Barton
080a5d5664 exposed CustomData_get_active_layer_index in BKE_customdata.h (needed by python to get the active layer)
added python api stuff to deal with Color and UV/Image layers.

me.activeUvLayer - int
me.activeColorLayer - int
me.totUvLayers - int
me.totColorLayers - int

me.addUvLayer()
me.addColorLayer()
me.removeUvLayer()
me.removeColorLayer()


Variable names may need changing.
2006-12-13 00:50:02 +00:00
Brecht Van Lommel
80ee52e444 Multiple UV and vertex color layers: (still work in progress)
These can be created and deleted in the Mesh panel in the same place as
before. There is always one active UV and vertex color layer, that is
edited and displayed.

Important things to do:
- Render engine, material support
- Multires and NMesh now lose non active layers

Also CustomData changes to support muliple layers of the same type, and
changes to layer allocation, updated documentation is here:
http://mediawiki.blender.org/index.php/BlenderDev/BlenderArchitecture/CustomData
2006-12-12 21:29:09 +00:00
Ton Roosendaal
dd88a8ca0f Bugfix: usage of 2 unitialized variables (again!). I should set gcc to use
O2 by default... without O2 it doesnt warn me for it.

This should fix errors in Material Node and "Vector Math" node.
2006-12-12 20:24:12 +00:00
Ton Roosendaal
4595bef2b4 Three-fixes-in-one:
#5417: Only Shadow material gave shadow outside of Spot bundle
#5414: Material Nodes: sockets without input were always treated as single
       value inputs, ignoring color or vector. (Caused by commit to do
       automatic conversions of socket links).
#5420: When reading with old Blender a new file that has a new window type,
       saving it over, and read back in current Blender, the window type
       should be reset to EMPTY, because all its data got lost.
2006-12-12 11:13:43 +00:00
Ton Roosendaal
a919981d60 Bugfix #5401
Material Nodes still have undefined output to the passes. Currently only
the active Material node gives pass info. Bug was that check for active
was wrong, giving stripes because of hanging variables.
I'll work soon on providing all pass options in the Material nodes. This
fix at least correctly provides passes for active material, and clears
memory of pass info in advance.

Also: outliner view "current scene" did not show render layers.
ALso: outliner click on renderlayer now activates it (for UI)
Also: zbuffer for transparent was not initialized to 'infinity' correctly
2006-12-11 11:33:03 +00:00
Ton Roosendaal
089e87ccea Composite & Pass render goodies:
- New Passes: UV and Rad(iosity)
- New Nodes: UV Map and Index Mask
- Z-combine now is antialiased

As usual, please check the log. Has nice pics!
http://www.blender3d.org/cms/Composite__UV_Map__ID.830.0.html

For devs: the antialias code from Vector Blur is now exported in compo
too. Works pretty good. Even fixed a bug in antialias, so vectorblur
will be better.

Also: found out that OpenGL display list speedup accidentally was still
triggered with the rt button... so it did not work by default.
2006-12-10 20:30:15 +00:00
Ken Hughes
ba36ef9f3f Python API
----------

Bugfix #5373: creating a curve or text object using Object.New() without
linking any data to the object would later cause a segfault when ob->data
was later dereferenced.  This problem will be fixed (hopefully soon) in the
API when new objects are created with data and linked to scenes all in one
step, but for now check for curves that ob->data is defined before using,
otherwise print an error message to the console and skip the object.
2006-12-09 06:17:14 +00:00
Ton Roosendaal
da0433e01d Temporal fix probably... Campbell has crashes in depsgraph, but that case
should not happen. This commit adds a harmless NULL check, but still.
2006-12-08 22:08:52 +00:00
Ton Roosendaal
7f1e3874f9 Node editing usablity!
- Removed stupid idea to insert convertor nodes in Node Shaders, when a
  link is created by non-matching sockets. Now it works like Compositor,
  doing a default conversion. Works like this:

1 from 3 or 4 values: take average
3 from 1: copy to all
3 from 4: copy 3
4 from 1: copy to 3, set alpha to 1
4 from 3: copy 3, set alpha to 1

- Added select-linked in Nodes. Lkey or Shift+L. Also in pulldown menus
2006-12-08 21:20:36 +00:00
Ton Roosendaal
902a69a7d3 Numerous fixes in Render code:
- Bug: material emit was ignored (showed in preview render backdrop)
- Bug: world exposure was ignored
- Bug: lamp halo was ignoring 'render layer light override'.

Further reshuffled the way shadows are being pre-calculated, this to enable
more advanced (and faster) usage of Material lightgroups. Now shadows are
being cached in lamps, using a per-sample counter to check if a recalc is
needed. Will also work (later) for Raytracing node shaders.

- New: Material LightGroup option "Always", which always shades the lights
  in the group, independent of visibility layer. (so it allows to move such
  lights to hidden layer, not influencing anything).
2006-12-08 09:40:44 +00:00
Ben Batt
c3fdaac9b4 Fix for bug #5177: EdgeSplit modifier mode "From Flag" doesn't show sharp
edges in Editmode

This bug was due to CCGDerivedMesh (the DerivedMesh backend used to store
editmode subsurf results) not copying edge flags correctly, meaning that
they were unavailable to the EdgeSplit modifier. I have updated
CCGDerivedMesh to copy edge flags correctly.
2006-12-07 18:30:00 +00:00
Ton Roosendaal
17231f83f3 Work on RenderLayer and Pass control:
Full log:
http://www.blender3d.org/cms/Render_Passes.829.0.html

In short:
- Passes now have option to be excluded from "Combined".
- RenderLayers allow to override Light (Lamp groups) or Material.
- RenderLayers and Passes are in Outliner now, (ab)using Matt's nice
  'restriction collumns'. :)
2006-12-07 14:17:38 +00:00
Joseph Eagar
4d3bafd17d =IDProperties C-API tiny update=
IDP_GroupIterNext returned void* rather then IDProperty*.
Made it IDProperty*.

BTW, any people out there interested in using IDProperties
from the C side, feel free to email me comments and (especially!)
file bugreports assigned to me in the tracker. :)
2006-12-06 19:20:06 +00:00
Ton Roosendaal
bd6db18b81 Bugfix (caused by passes work): the 'default material' needed to become
initialized properly before rendering. Effect was that shadow for Objects
without material looked weird.
2006-12-06 15:40:50 +00:00
Ton Roosendaal
a720296999 Another 3-in-one commit:
- Unitialized variable in new shadow code caused Sun lamp shadow to not
  work.
- Ipo handle bug: when the handle was vertical it flipped around
- Loop select: unitialized variable caused it to work unpredictable in
  cases. Also found an unitialized var in collaps_edgeuvs().
2006-12-06 11:17:34 +00:00
Ton Roosendaal
54e946e839 Three fixes:
- Crash, caused by commit of 1 hour ago to fix 'All Z' render problem
- Bug: yesterday's fix for node material renders caused some issues with
  precalculating correct shadow.
- Composite Translate node: input sockets allowed multiple inputs
2006-12-06 09:56:20 +00:00
Jacques Beuarain
1c54c72eaa Fix Debug build failure with ffmpeg enabled on MSVC 8 2006-12-06 09:48:27 +00:00
Ton Roosendaal
5e52bee5a7 Node shaders bug: using 'shadeless' material inside of node tree, a mode
flag messed up that tried to detect if shadow was needed.
2006-12-05 19:47:45 +00:00
Ton Roosendaal
78d3f7358b Two more fixes for pass composite:
- Blur nodes didn't accept RGB buffers (only RGBA or single channel ones)
- Mix node had maximum for 'mix' on 1.0, for passes edit that could become
  more, made it 5!
2006-12-05 18:27:43 +00:00
Ton Roosendaal
2c816da097 Two fixes:
- Shaded view was black, needed to tell it to use 'combined' pass :)
- Crash when deleting in compositor all nodes with an output.
2006-12-05 18:02:43 +00:00
Ben Batt
4f8079d49c Modifier Stack: Limit calculation to required data.
This commit upgrades the modifier stack to only calculate the data which is
needed, either by modifiers further down the stack or by other functions at
the end of the stack (e.g. drawing functions).

This speeds up modifier stack recalculation, especially where vertex
groups and UV coordinates are concerned. For example, a mesh with an Armature
modifier followed by a Subsurf modifier would previously have required the
Subsurf modifier to interpolate all the vertex groups in the mesh, slowing
down modifier calculations considerably. With this update, vertex group data
is not propagated beyond the Armature modifier, so calculations are faster.

Note that this depends on the order of modifiers in the stack. If the Armature
and Subsurf modifiers were swapped in the above example, the Subsurf modifier
would have to interpolate vertex groups, as they are needed by the Armature
modifier.
2006-12-05 17:42:03 +00:00
Ton Roosendaal
869eeadeff Damn! Commit for render passes in wrong dir.... 2006-12-05 16:44:57 +00:00
Joshua Leung
0f7f11fafc Removed a few unused variables - compiler warnings. 2006-12-05 02:06:51 +00:00
Joshua Leung
d68d2528ac == Action Editor ==
Cleaned-up drawing code of keyframes. Code redundancy has been
reduced, and there should be slight performance gains (less looping,
no sorting of keys needed, possibly less memory usage).
2006-12-05 01:11:51 +00:00
Martin Poirier
4a2eceff20 === [ #5094 ] TrackTo Constraint with an animatable "up" direction ===
Patch by Matthew Plough: This adds an option to the Track To constraint to use the target's Z axis for Up axis reference instead of the global Z axis.

Off by default for backward compat.
2006-12-03 18:38:51 +00:00
Nicholas Bishop
472c3677fb Better integration of multires with editmode. Setting/adding levels no longer exits editmode, and undo should now work as expected. Still to come is loading customdata from the editmesh. 2006-12-02 23:37:52 +00:00
Jens Ole Wund
08ef0d3466 Klocwork warning fix
Doing NULL pointer paranoia check in time.
It's completely pointless calling the function with null pointer,
but who knows.
At least it does not crash then.
2006-12-02 18:42:20 +00:00
Simon Clitherow
8b65afe877 Added define for atanf to get VC7.1 linking again. 2006-12-02 09:11:32 +00:00
Ton Roosendaal
20ac94e8f0 Two hours of fixing details based on Klocwork source review. Useful report,
although it has a lot of noise. Not to mention our bad string code gives
a load of warnings.

I've reviewed specifically:
- file reading/write
- dna and library code
- node system
- entire render module

Done a couple of files in src/ too, seemed to be nice errors.
2006-12-01 19:52:04 +00:00
Nicholas Bishop
ef389028b9 Added a copy function for multires; duplicating a mesh with multires now works properly. 2006-12-01 18:41:25 +00:00
Ton Roosendaal
db5d58aaa2 Bugfix #5333
Actually no real bug, but unfinished work in Composite:
The ZCombine node only accepted images, no value inputs for sockets.
Now only the first (top) input socket should be an image, the other ones
can use constant color or values too. Nice way to split an image in
foreground and background.

Also: added an output socket for the resulting Z value.

Do note that zcombone is aliased, no AA or sample info is available.
That's for another time.
2006-12-01 10:52:36 +00:00
Joseph Eagar
71da111613 =IDProperties bugfix=
Another bug from the tracker, reported by Mike Stramba.
A duplicated Py_XDECREF in the wrong place made assigning
arrays from Vector objects not work.

Also, fixed nasty bug in C API of idproperties (the function
to look up a property from a group was broken).  Fixed a memory
leak too.

In addition, made "del group['property']" delete properties
from group; previously this would just crash (or at least it
should have).  Added a small addition to the example in the
epydocs for IDGroup.
2006-12-01 03:04:36 +00:00
Ton Roosendaal
51ce503cb2 Armature Proxy bugfix: when adding constraints or bones, the proxy sync
didn't keep in mind the pose channels could change order...

Note the disabled code in readfile.c; will be finished later. It's for
debugging library dependencies.
2006-11-30 21:40:11 +00:00
Ton Roosendaal
94da40a3d8 Bugfix;
More referenced library issues: if an Object loses the Armature (because
for example the linked file removed it) the Object still had the Pose and
posemode flag set, crashing Blender.
2006-11-30 16:44:34 +00:00
Ton Roosendaal
342c900220 Proxy Objects revisited!
The first incarnation assumed that proxies were local objects per
definition. Unfortunately that makes it impossible to - for example -
reference-link an entire Scene with proxies, to be used as a special
character set.

This commit makes the proxy implementation also a bit more clear.

Related work: the scene-sets were not executed fully or correctly for
the dependency graph. That happens now (in 3d view) as well.
2006-11-30 15:54:21 +00:00
Erwin Coumans
2572b9f72c Reserved some Bullet 2.x constraint data.
Although we will delay the main Rigid Body user interface after 2.43 release early 2007, I need some constraint data/UI to make progress with COLLADA Physics.
Added RigidBody constraint UI
LR_ALTKEY+LR_CTRLKEY+LR_SHIFTKEY+ P will bake rigidbody
Contribution by RCRuiz, Ramon Carlos.
2006-11-30 00:19:27 +00:00
Joseph Eagar
99d66e1d5e =IDProperties bugfix=
Fixed the bug of "print type(property)" crashed blender;
just needed to add PyType_Ready init code for all ID property
python types; I made a function IDProp_Init_Types and put
code to call it in types_initAll().

Also added GPL/BL headers to idproperty files.
2006-11-29 23:31:46 +00:00
Ton Roosendaal
8c6fe1bb1f Material Nodes and Composite now also supports unlimited threads.
Maybe we should add for Composite a seperate "Max threads" button though...
having 8 nodes allocating temp buffers at the same time might give issues.
2006-11-29 18:11:59 +00:00
Ton Roosendaal
6543d3e220 Render Monster support: (part 1)
Removed all limitations from render code for maximum threads. The only
define for this now is in BLI_threads.h, and currently set to 8.
Note that each thread renders an entire tile, and also allocates the
buffers for the tiles, so; more threads might work better with smaller
tiles.

IMPORTANT: node system won't work yet with more than 2 threads! So, don't
try material nodes or compositing with over 2 threads. That I'll commit
later today.

What does work (should work :) is AO and soft shadow now.
2006-11-29 17:01:09 +00:00
Ben Batt
35f3682f7c Fix for bug #5325 - curve deform tool doesn't work correctly
This bug was caused by broken's recent patch to make the Curve modifier
determine its axis from the modifier panel, rather than the object's track
axis. In the case where a Curve modifier is applied by parenting the object
to the curve, the curve axis needs to be copied from the object's track axis
in modifiers_getVirtualModifierList(). This commit adds the necessary copy.
2006-11-29 13:52:59 +00:00
Ton Roosendaal
3b23677425 Duplicator feature:
Vertex/Face/Frame duplication now draws using OpenGL display lists. Makes
drawing go much faster (2-5 times, depending on size of duplicated object).
This system uses boundbox checks too, so outside of view it draws faster.

Note for face duplication: I've fixe a bug for incorrect alignment when
the parent was rotated when a parenting happened, the 'inverse parent
correction matrix' then messed up alignment. For face duplication it now
works OK, but for vertex-dupli not... need a way to fix this backwards
compatible.
2006-11-29 12:44:48 +00:00
Ton Roosendaal
eb03a578a3 New feature: Face Duplicators. Like vertex-duplicator, but now on a face
center, rotated according to face edges, and optionally with scale of the
face.

http://www.blender3d.org/cms/Face_Duplicator.828.0.html

Also: bugfix in undo/redo for relinking data to the UI. It was not checking
for Library data, accidentally linking non-library data with same names.
2006-11-29 08:57:32 +00:00
Joshua Leung
35c83ca356 Removed unused 'action specific' marker stuff I committed earlier. In
the meantime, only the 'scene' marker set will be supported.
2006-11-28 04:58:57 +00:00
Ton Roosendaal
2e0084c2d9 IRC reported bug:
When linking a referenced (Library) Image to a texture face, it wasn't
tagged to become saved in file. So you lost data.

Also fixed: tooltip for the "Li" icons was wrong.
2006-11-27 13:00:50 +00:00