Commit Graph

4026 Commits

Author SHA1 Message Date
Ton Roosendaal
8fb7bbacad accidentally left in testing printf. 2005-08-25 20:32:49 +00:00
Martin Poirier
6c9d743ef4 Based on a suggestion from Zr, using line line intersection for single axis projection.
This makes perspective handling a bit better.
2005-08-25 18:03:19 +00:00
Ton Roosendaal
8d940dfafe Random() issues with rendering...
- AO and soft shadow AreaLight tables were generated without fixed seed,
  causing animations to give unwanted amounts of noise.
- Made sure these tables now are calculated before render, with fixed seed
- Then found out the BLI_rand() has very bad seeding... it showed up as
  patterns. After some experimenting, found a nice method using noise.c
  hash tables. For compatibility with old code, named it BLI_srandom() to
  use this next to the BLI_srand(). This follows libc rand() and random()
  naming convention.
- Then of course threading should work... so made a BLI_thread_rand version
  of the calls. Now supports up to 16 threads, comments added in .h and .c

Result is stable animation render with AO and soft shadow. But, please
test and feedback!
2005-08-25 13:11:04 +00:00
Ton Roosendaal
c9f01eefcd iBug fix #2965
Switching scene in Edit Mode crashed. Accessed the DAG without it being
initialized yet.
2005-08-24 21:12:58 +00:00
Johnny Matthews
a51896b591 Move the settings in the Mesh Tools panel to the new toolsettings struct in Scene. These settings are now saved per scene. 2005-08-24 20:37:25 +00:00
Ton Roosendaal
a978c122ee Making compiler happy;
- removed unused variables
- #if 0 around unused calls
- init of uninitialized vars
2005-08-24 20:26:28 +00:00
Ton Roosendaal
dfb654ba60 Huge commit, but not much features... had to shuffle a lot of code around.
Main target was cleanup of editconstraint.c and removal of the ugly
ob->activecon (active constraint channel), which was set by the "Show"
button in the Constraint Panel.
Better is to introduce an 'Active Constraint' itself, which stores in
the Constraint itself. By using this setting, and by checking the active
Bone, the UI can update reliably now. This only shows now in IpoWindow
btw (for constraint ipos). The active Constraint is drawn in the Buttons
with a slightly brighter backdrop. Any action in that Panel selects a
constraint now (even click in backdrop).

So now we have pose channels & constraint channels nicely behaving. Now the
darn Action channels... :)

Further in this commit:

- interface.c: Button ROUNDBOX now does button callback too.
               Button NUMSLI didn't do the callback on a click only

- Cleaned up include files in yafray, got annoyed it compiled over all the
  time.

- removed unused variables from Constraint struct
2005-08-24 20:18:03 +00:00
Chris Want
bc3f228bc9 Variable was defined in a header file (constant_Type), resulting in
'multiply defined symbol' warning on IRIX for every file that
included that file. Moved to a C source file.
2005-08-23 22:12:06 +00:00
Daniel Dunbar
9759296483 - more fixes for wpaint mode, need to patch mesh modifier as well
- change wpaint to flush changes during painting... can see this
   is going to be a problem because will also redeform. what to
   do, what to do...
2005-08-23 21:04:17 +00:00
Daniel Dunbar
81f995b741 - disabled incremental subsurf support (during object mode) for the
time being, misses features for texture/color drawing and I don't
   have time to finish at the moment. can return once UV/colors are
   incorporated into subdivision.
2005-08-23 20:39:58 +00:00
Ton Roosendaal
ad9099ea5d Fix for reading older files... it didn't always convert OK for the new
deformation options of Armatures, causing bones not to deform.

It was caused by using the old "boneclass" variable and SKINNABLE.
Apparently the boneclass can have any value in older files. Will be killed.

Please note; in files created after last sunday, with setting "No deform" on a
Bone, that setting has to be done again.
2005-08-23 20:19:01 +00:00
Daniel Dunbar
7396075ef1 - add option to drawMappedFaces to draw with colors (from tface or mcol)
- convert weightpaint/vertexpaint to draw using drawMappedFaces, slightly
   hacky because during weightpaint mcol's get overridden in order to
   have them propogate through modifiers. should work fine.
 - add NULL check in shaded draw, prevents crash w/ dupliframe
2005-08-23 20:04:10 +00:00
Martin Poirier
e12e2469c8 Bretch's patch for 2D transform. Thanks
Using new transform code to handle UV window.

With the ground work done, Transform could more easily be extended to handle IPO window now.

Tracker item: http://projects.blender.org/tracker/?func=detail&atid=127&aid=2946&group_id=9
2005-08-23 18:13:30 +00:00
Erwin Coumans
207cbbd535 don't need Object.h 2005-08-23 16:50:53 +00:00
Johnny Matthews
2540ca88e8 Quad Adjacent edge subdivide type moved to Mesh Tools panel rather than pupmenu on all subdiv calls. This is a session value like beauty and will revert to path each time you load blender. 2005-08-23 14:13:00 +00:00
Erwin Coumans
056a33ac69 new game-menu option 'Record Game Physics to Ipo'
including implementation. hope it works, and doesn't break to much.
it bakes physics objects transform into ipo, every frame of the running gameengine.
When you disable and run the game again, it clears the ipo's again. just for physics objects at the moment.

(perhaps some better UI in the future?)
2005-08-23 13:16:02 +00:00
Daniel Dunbar
0192536102 - added iterator to edgehash
- updated decimator to make edges
2005-08-23 02:29:22 +00:00
Chris Want
3c1887036a Added (non-default) Makefile option to build blender with tweak mode.
To build with this option, set:

export NAN_TWEAK_MODE=true
2005-08-23 02:28:01 +00:00
Daniel Dunbar
4ad5cdf91e - subsurf getVertCos returned verts in wrong order since
shuffling of code... led to fun and crazy results (maybe
   less fun for les artiste)
2005-08-23 02:05:45 +00:00
Chris Want
d6b4392710 On windows/gcc (aka. FREE_WINDOWS), build the blenderplayer whenever
blender is configured to build with the gameengine.
2005-08-23 01:31:11 +00:00
Ton Roosendaal
50315dc100 Another painful editing issue solved!
Adding Ipos on a Constraint just was working totally insane. Here's how
it works now in the constraint Panel:

- Button "Show" will make the IpoWindow show the Constraint Ipo
 (it didn't before, when IpoWindow was not set to correct mode)

- Button "Key" will insert a key point on current frame (and show it in
  IpoWindow)

Note that both options will create an Action too, if not existed yet.
So, without opening an IpoWindow you can already animate Constraints.
(Todo: use the auto key option to always insert on changing slider)

And; selecting a Bone will update the Constraint IpoWindow too. Note
however, that when theres multiple Constraint Ipos on a Bone, it only
shows the first... will solve that later.
2005-08-22 21:58:55 +00:00
Daniel Dunbar
931d0fc235 - switch modifiers_isDeformedByArmature to also include
virtual modifiers
2005-08-22 20:25:54 +00:00
Daniel Dunbar
3d7ed80ed4 - added modifiers_isDeformedByArmature function 2005-08-22 20:24:59 +00:00
Erwin Coumans
43b59afebb more preparation for physics recording to ipo keyframes 2005-08-22 18:31:19 +00:00
Johnny Matthews
3b8e94ac6b This commit introduces 2 new filling methods for subdividing quads which have only 2 adjacent edges selected. Path, Fan and Innerverts. ATM whenever a call is made to any subdivide calling tool, you will be asked for the type by a pupmenu. This will be replaced (perhaps) by a panel setting... 2005-08-22 18:05:40 +00:00
Ton Roosendaal
a5bc9582cb Three little feats;
- Vpaint and Wpaint now use our own custom cursor, this was a very old
  plan anyway. It uses the 'knife' now, we need a good brush icon for it!
- On scaling bones in editmode, the deform distance info gets scaled now
  too when no "Envelope" draw mode was set.
- Disabled front buffer drawing of objects with CTRL+select in Edit Mode.
  Uses a regular redraw now (like for select in Object Mode btw)
2005-08-22 17:52:52 +00:00
Erwin Coumans
65a52fc419 - prepared for automatic game physics -> animation (ipo) conversion (this allows to use bullet for animation)
- default the m_edgecode to 65535, the wireframe was invisible. when is the edgecode available again ?
- added an extra condition, nearsensor is not yet working for bullet, but it crashed.
2005-08-22 15:47:56 +00:00
Ton Roosendaal
838d938522 Some fixes;
- Armature deform options "Envelope" and "Vertexgroup" didn't combine. One
  Vertexgroup added disabled all Envelopes
- "Clear" option in WPaint Panel now sends refresh to deform
- Same for Undo in Wpaint
2005-08-21 22:01:20 +00:00
Brecht Van Lommel
af935e597f Use new BLI_edgehash_* functions in unwrapper. 2005-08-21 21:39:44 +00:00
Ton Roosendaal
bfc5fedb79 Much wanted; Constraint "move up" and "move down" buttons, in the Panel! 2005-08-21 21:20:53 +00:00
Daniel Dunbar
dd7bcb94bf - sillyness... added drawMappedEdges for mesh
- revert to drawLooseEdges instead of general drawEdgesFlag
 - ditched TFace edge flags, done dynamically now which also
   means don't need to recalc surface on flag changes
 - added BLI_edgehash, guess what it does
2005-08-21 20:48:45 +00:00
Ton Roosendaal
5a381a5a12 Made weight-painting more bearable :)
- Hotkey CTRL+TAB toggles weightpaint on/off
- If Mesh has no vertex groups yet, it still accepts Weight Paint mode.
  Then, on a first painting stroke it creates a default group.
- When combining WeightPaint mode with Bone selecting, if you select a
  Bone without vertex group it draws Mesh dark blue. On a first painting
  stroke it then also creates a new group, with the Bone name.
2005-08-21 20:09:50 +00:00
Daniel Dunbar
d2f6ff1900 - bug fix, last edge wasn't flagged correctly on make_edges 2005-08-21 19:01:30 +00:00
Ton Roosendaal
6ad0c922af Control over Armature deform. Three new options are added for it;
Armature Panel
- "Vertex Groups"
- "Envelope"

Bones Panel
- "Mult"

The logic works as follows;
- Set "Vertex Groups" will enable vertex group based deform (default)
- Set "Envelope" will enable Bone Envelopes to deform
- Set both will apply Envelope deform on vertices without VertexGroups

- Set the per-Bone "Mult" option to have Envelopes work on top of a
  VertexGroup
- The per-Bone "Deform" option (was called "Skinnable") will dis/enable
  the Bone to deform for all situations.

The old convention was that, without any vertex groups, the Bones deformed
with bone-distances. I can't patch that... so you have to enable it by
hand in older files. Not too bad, since this option was unusable before
anyway. :)
2005-08-21 18:53:12 +00:00
Daniel Dunbar
a669c9d6d1 - edge draw experiment didn't turn out to be useful, removed and reverted
to old.
 - updated fasterdraw() to work with edges
2005-08-21 17:57:06 +00:00
Stephen Swaney
24c8bcf884 bugfix: #2924 Bugs in api2_2x/Material.c
- BPy_Material_methods[] "setFilter" calls Material_setFresnelMirrFac()
 - Material_setSpecSmooth() should be setting param[3], not param[2]

Contributed by Ken Hughes.  Thanks!
2005-08-21 15:16:16 +00:00
Stephen Swaney
bb5ae49992 A large collection of fixes from Ken Hughes including:
- corrections to constants
 - parameter type checking
 - correct use of METH_VARARGS vs METH_NOARGS
 - return objects instead of strings in Scene.getChildren() as per doc.
 - correct logical operators

Thanks, Ken!
2005-08-21 15:00:17 +00:00
Ton Roosendaal
4065cdb550 Temporal; make compiling happy. :) 2005-08-21 14:39:08 +00:00
Ton Roosendaal
9a105042fc At last! B-bones now deform. :)
This works pretty nice for better control over the curvature of any bone
deform. No need to give Bones (vgroups) large influence, just add a coupleof B-bone segments.

Two notes;
- The Bone property "Segments" defines if a deform happens as a 'B-bone'.
  The drawtype B-bone is just for display in 3d window.
- A B-bone also deforms (bends) in Rest-position, if there's a joint that
  creates a curved Bone. Therefore, best results you get by creating a
  rest-position with straight joints. Or, if you prefer a slightly bended
  restposition (for a spine or so), make sure the Mesh model is *not*
  curved, the B-bone will do this for you.

Also added: proper events on changing buttons for Bones, like "Segm" or
"Dist" etc.
2005-08-21 11:26:53 +00:00
Daniel Dunbar
7804860cf6 - added mesh_strip_loose_faces, works in conjunction with make_edges
to get rid of faces with MFace.v3==0
 - change all Mesh's to have ->medge now. This is forced by make_edges
   on readfile, and in the various exotic important routines, and on
   conversion back in python.
 - make python NMesh structure always have medges now (needs testing)
 - with above two changes it is guarenteed that mf->v3 is never ==0
   in main blender code (i.e., all MFace's are actually triangles
   or quads) and so I went through and removed all the historic tests
   to deal with MFace.v3==0. Equals lots of deleting, I am in heaven!
 - removed MEdge edcode flag, no longer needed
 - added experimental replacement for edge flag system

Still are some inconsistencies in FACESELECT mode edge drawing to
be ironed out.

NOTE: This commit adds an experimental edge flag calc system, based
on 10-seconds-of-thought algorithm by yours truly. Would appreciate
feedback on how this system works, esp compared to old one and esp
on complex or interesting models.

To Use: New system is enabled by setting G.rt to a value between
1 and 1000 (Value of 0 uses old system). Value 1000 is reserved for
"auto" edge, which is more or less identical to old system but also
makes sure that at least 10% of edges are drawn (solves errors for
super subdivided meshes). Values between 1 and 999 act as percent
(out of 1000) of edges that should be drawn, starting with "most
interesting" edges first. Please try it and comment!
2005-08-21 07:19:20 +00:00
Johnny Matthews
d29f7c2c84 Some whitespace cleanup... 2005-08-21 03:37:38 +00:00
Johnny Matthews
185054bf5b Temp edge selection for edgeslide draw length now deselected properly at the end of edgeslide 2005-08-20 21:37:52 +00:00
Ton Roosendaal
7e4b62894e Fix for setting in perspective view mode the ALT+B clipping planes.
Fun: do exact camera viewborder to see camera volume!
2005-08-20 20:30:13 +00:00
Daniel Dunbar
fff5d816ab - bug fix, mirror modifier could duplicate edges on boundary in
certain cases
2005-08-20 20:04:32 +00:00
Ton Roosendaal
31a907cddc Left in a testing value for clipping... tsk! Did only three planes :) 2005-08-20 19:45:34 +00:00
Ton Roosendaal
dd5410162a New feature; User definable Clipping Planes.
Press ALT+B in 3d window, draw a rect, and it becomes a clipping
volume of 4 planes. You then can rotate the view anyway you like.
Works for each 3d window individually.

Disable it with another ALT+B press.

Commit is huge because it had to change all selection code as well.
The user-clipping planes are in 'eye space', the other clipping
happens in projected 'viewport space'.

Nice to notice is that the 'x=3200' convention (to denote a coordinate
is clipped) now is a define. Define value is still a number though... but
we now can get up to screens of 12000 pixels without issues!

Known issue; here it refuses to draw the 'object centers' or Lamp icons
within the clipping region. Can't find any reason for it... however, we
might move to non-pixmaps for it anyway.

Testing might reveil numerous issues, will be standby for it.

Curious? Check this http://www.blender.org/bf/rt4.jpg
2005-08-20 19:18:35 +00:00
Daniel Dunbar
ad5ac39ccc - another drawing bugfix, some normals were passed wrong 2005-08-20 18:49:08 +00:00
Daniel Dunbar
77be09dd2d - possible fix #2 for editmode face's draw black 2005-08-20 18:38:33 +00:00
Daniel Dunbar
6c001485fa - bug fix for stooooopid crash in mirror modifier 2005-08-20 18:25:11 +00:00
Daniel Dunbar
3da7c4c5c9 - possible fix for editmesh solid drawing black, I can't reproduce
so working a bit blind here
2005-08-20 18:14:04 +00:00