18 years agoCode reorganization to allow a clean export to plugin alternative for
Alejandro Conty Estevez [Thu, 8 Jan 2004 23:12:56 +0000 (23:12 +0000)]
Code reorganization to allow a clean export to plugin alternative for

18 years ago - added displist option to 10-timer (ctrl-alt-t), runs makedisplist
Daniel Dunbar [Thu, 8 Jan 2004 20:08:27 +0000 (20:08 +0000)]
 - added displist option to 10-timer (ctrl-alt-t), runs makedisplist
    on current option (for timing subsurf stuff).

18 years ago - committed new uiDef{Icon,IconText,}ButBit? functions
Daniel Dunbar [Thu, 8 Jan 2004 19:53:19 +0000 (19:53 +0000)]
 - committed new uiDef{Icon,IconText,}ButBit? functions
 - change object draw flag buttons to use new functions (just an example)

 While I probably wouldn't recommend patching other buttons to use the new
functions a week before release, it is a good (simple but tedious) project
to complete. Note that some code actually defined the constants for the
bit index, when such code is fixed the _BIT constant should be removed from
the headers.

#define CONSTRAINT_DISABLE 0x00000004


The button definition should change to:
uiDefIconButBitS(block, ICONTOG, CONSTRAINT_EXPAND, ...);

(whats that, the more correct way uses less typing, GOOD GOD!)
and the CONSTRAINT_DISABLE_BIT define should be removed.

18 years agosome cosmetic changes to make the compiler shut up when building with scons
Stefan Gartner [Thu, 8 Jan 2004 16:28:45 +0000 (16:28 +0000)]
some cosmetic changes to make the compiler shut up when building with scons
on os x

18 years agofix (?) for compiling with quicktime support on some versions of os x
Stefan Gartner [Thu, 8 Jan 2004 16:26:30 +0000 (16:26 +0000)]
fix (?) for compiling with quicktime support on some versions of os x
with some versions of gcc (aka. the nasty ID problem). see also

18 years agofix building with quicktime support on os x.
Stefan Gartner [Thu, 8 Jan 2004 16:14:09 +0000 (16:14 +0000)]
fix building with quicktime support on os x.
some platform specific sections had link_env.Append(CPPDEFINES=defines)
(darwin was not one of them). I moved that line to the global part of
SConstruct and added "defines = []" to the platforms that didn't have
it (sunos and hp-ux). I hope I didn't break anything...

18 years ago - Corrected scale factor to be independant of object
Robert Wenzlaff [Thu, 8 Jan 2004 14:19:25 +0000 (14:19 +0000)]
- Corrected scale factor to be independant of object
rotation.  (Still not right, but better).

18 years agoAdded export for caustic settings based on the raytrans values. And settings
Alejandro Conty Estevez [Thu, 8 Jan 2004 11:42:40 +0000 (11:42 +0000)]
Added export for caustic settings based on the raytrans values. And settings
for casting them from GI (pathlight). A new contro "caus depth" in the panel
controls the maximun number of bounces going through objects.

Now images like this:
are possible with scenes like this:

18 years ago- fixing a bug which can lead users to potentially resize windows such that they...
Nathan Letwory [Thu, 8 Jan 2004 09:16:19 +0000 (09:16 +0000)]
- fixing a bug which can lead users to potentially resize windows such that they can't be regained anymore. Also, when removing the header from the userdefs, resizing it to 1 pixel height made it very inaccessible. This problem was reported _and_ fixed by ndh (Andreas Haferburg). Thanks!

18 years agoFrom Eeshlo, also create the temporary dir inside yafray's install dir if the
Alejandro Conty Estevez [Thu, 8 Jan 2004 08:55:21 +0000 (08:55 +0000)]
From Eeshlo, also create the temporary dir inside yafray's install dir if the
user does not put a valid path on YFexport. So now all windows path problems
should be fixed, but never understimate windows.

18 years ago - removed duplicate flags from BKE_mesh.h
Daniel Dunbar [Thu, 8 Jan 2004 04:42:29 +0000 (04:42 +0000)]
 - removed duplicate flags from BKE_mesh.h
 - removed rendermesh_uses_displist (no longer relevant)
 - converted appropriate me->flag tests to using mesh_uses_displist
 - made vert and face counting (for info header) use proper counts
 - changed flip_subdivision to allow level==0 argument
 - ps. thanks for subsurf orco fix ton

18 years agotsk, little screwup on last commit
Rob Haarsma [Wed, 7 Jan 2004 23:45:09 +0000 (23:45 +0000)]
tsk, little screwup on last commit

18 years agoPossible definitive fix for the problem of not finding yafray executable
Alejandro Conty Estevez [Wed, 7 Jan 2004 23:40:19 +0000 (23:40 +0000)]
Possible definitive fix for the problem of not finding yafray executable
on win32. Since yafray saves its installation path in the registry, we read it
from there and convert to a legal path for system()

18 years agoApplied Daniel Fairhead's patch for a correct working DELKEY in textinput buttons.
Rob Haarsma [Wed, 7 Jan 2004 23:33:40 +0000 (23:33 +0000)]
Applied Daniel Fairhead's patch for a correct working DELKEY in textinput buttons.

Added a 'void' somewhere to silence a compiler warning.

(Windows only)
Moved the flip fullscreen button in the topheader a little to the right, since the
questionmark button mysteriously disappeared.

18 years agoLeft over work from localizing renderdata!
Ton Roosendaal [Wed, 7 Jan 2004 21:44:09 +0000 (21:44 +0000)]
Left over work from localizing renderdata!

- when quads get split before render, the vertexcolors and texture face
  (UV) info has to be corrected as well. This happens runtime during
  render, no new data is created. The code was in previous versions, but
  with raytrace and other new features it needed a rewrite
- this now also should work for the new smart split code from robert!

18 years ago- [win32] now really using the directory Blender is installed in. My patch was kinda...
Nathan Letwory [Wed, 7 Jan 2004 21:03:11 +0000 (21:03 +0000)]
- [win32] now really using the directory Blender is installed in. My patch was kinda incomplete, but aphex_ (Simon) was kind enough to point out the lines to edit :)

18 years agoFix for cube map error subsurf.
Ton Roosendaal [Wed, 7 Jan 2004 20:29:21 +0000 (20:29 +0000)]
Fix for cube map error subsurf.

- cubemap relied on pointer to MFace, which is only available for Mesh
  when directly converted to renderfaces.
  It then checked the 'puno' flag where also bits were set to indicate
  the optimal projection for a face (XY, XZ or YZ).
- I found out the renderface also has a puno flag, so the mface pointer
  in a renderface is redundant. Is removed now
- added code in texture cubemap call, which checks on a projection flag
  in 'puno'. If not set, it uses the orco's to calculate one.
- this means, that cubemap now also works for other objects than meshes,
  provided they have an orco block while render.
- if no orco block available, it uses the 'global' projection to find which
  of the cube sides map.

I couldnt find other errors with subsurf & orco though...

18 years agoSome better pose figuring: in pose mode, when *any* parent of a
Chris Want [Wed, 7 Jan 2004 17:11:20 +0000 (17:11 +0000)]
Some better pose figuring: in pose mode, when *any* parent of a
constrained bone is flagged for updating (not just an IK parent) we
should update the constrainted bone (except possibly when the
subtarget bone shares the parent). This solves the "Character doesn't
crouch when I pull his spine downward" bug reported in the testing
builds forum.

18 years ago - Ooops, random keystroke snuck into file between make and commit.
Robert Wenzlaff [Wed, 7 Jan 2004 14:39:50 +0000 (14:39 +0000)]
- Ooops, random keystroke snuck into file between make and commit.

18 years ago - Added UV mapping to displacement.
Robert Wenzlaff [Wed, 7 Jan 2004 14:31:58 +0000 (14:31 +0000)]
- Added UV mapping to displacement.

18 years agoPorted from tuhopuu2:
Matt Ebb [Wed, 7 Jan 2004 12:59:42 +0000 (12:59 +0000)]
Ported from tuhopuu2:

* Added hotkeys Ctrl , (comma) to select 'median point'
pivot and Ctrl . (period) to select 'individual object
centers' pivot.

18 years ago* Added OOPS Schematic menus
Matt Ebb [Wed, 7 Jan 2004 12:26:40 +0000 (12:26 +0000)]
* Added OOPS Schematic menus

18 years ago - removed some old cruft from init_render_displist_mesh (for smeshes-RIP)
Daniel Dunbar [Wed, 7 Jan 2004 10:17:37 +0000 (10:17 +0000)]
 - removed some old cruft from init_render_displist_mesh (for smeshes-RIP)
 - reduced main subsurf interface to two functions to make DispListMesh
    structures from an editmesh or a regular mesh. for the most part this
    means that to implement a geometry modifier you only need to write
    these two functions (not very plugable yet however).
 - added displistmesh_from_mesh and displistmesh_from_editmesh functions
    which allow simple support of subdivLevel(0) subsurfs, somewhat handy
    for testing things (like why orco doesn't work for subsurf).

18 years agoSmall usability fix for Knife Subdivide
Matt Ebb [Wed, 7 Jan 2004 07:30:29 +0000 (07:30 +0000)]
Small usability fix for Knife Subdivide

* If there are no selected edges when the function's
invoked, it now gives an error message and returns.

If anyone can think of a better message, please suggest it
(or just commit it ;)

18 years ago - removed some cruft from old method of subsurf hiding during editmode
Daniel Dunbar [Wed, 7 Jan 2004 06:31:16 +0000 (06:31 +0000)]
 - removed some cruft from old method of subsurf hiding during editmode

18 years ago - added BLI_ghash_size(), number of entries in table
Daniel Dunbar [Wed, 7 Jan 2004 06:13:43 +0000 (06:13 +0000)]
 - added BLI_ghash_size(), number of entries in table
 - added GHashIterator ADT, for iterating over GHash-tables

18 years ago - migrated a subsurf routine to displist.c: displistmesh_calc_vert_normals()
Daniel Dunbar [Wed, 7 Jan 2004 05:50:17 +0000 (05:50 +0000)]
 - migrated a subsurf routine to displist.c: displistmesh_calc_vert_normals()
 - removed some vertice tweaking for subsurf->displist conversion
 - replaced stupid way of doing edcode calculation for ME_OPT_EDGES flag

18 years ago - Displacement now works for all object types. (However, some are only
Robert Wenzlaff [Wed, 7 Jan 2004 04:10:50 +0000 (04:10 +0000)]
- Displacement now works for all object types. (However, some are only
marginally suitable, like curves, because of relatively low renderface
count).  Will have to thoroughly document pros and cons of each type.

Usefullness order (greatest to least):
CC Subsurf Meshes (Displacement likes the smooth normals)
Simple Subsurf Meshes
Manual subdivided meshes
Surfaces (Normal errors/ hidden seams)
Curves (Large flat areas with few renderfaces to displace).

18 years agoAdded multi-processor setting for yafray and quotes around the xml
Alejandro Conty Estevez [Tue, 6 Jan 2004 23:33:25 +0000 (23:33 +0000)]
Added multi-processor setting for yafray and quotes around the xml
file in the system call to avoid problems with complex paths.

18 years ago- decided to use a new variable for the new exposure option, instead of
Ton Roosendaal [Tue, 6 Jan 2004 20:25:50 +0000 (20:25 +0000)]
- decided to use a new variable for the new exposure option, instead of
  re-using old one. New one = 'exp'.
- at first I used the old 'exposure' value, and just mapped it to 0. this
  causes a problem with upward compatibility, old blenders then render a
  black picture. is too confusing!
- warning; exposure values saved with commit of last week will get lost.

18 years agoimprovements in the reflection/refraction exporting for yafray.
Alejandro Conty Estevez [Tue, 6 Jan 2004 20:24:33 +0000 (20:24 +0000)]
improvements in the reflection/refraction exporting for yafray.
Now should be more intuitive and controlable.

18 years agoEeshlo fixed the iYFexport path problem and added a file selector button
Alejandro Conty Estevez [Tue, 6 Jan 2004 12:28:31 +0000 (12:28 +0000)]
Eeshlo fixed the iYFexport path problem and added a file selector button
for it. Now win32 users should have less problems.

I added export of the "no shadow" flag (traceable) And changed the reflection
export scheme so now blender's RayMir is used as yafray's min_refle and the
amount of reflection is controled by the mir color. This seems more intuitive.
And now IOR is exported also for reflection only, wich is needed for fresnel.

18 years ago- Adaptive spliting of renderfaces for displacement. Choose to split
Robert Wenzlaff [Tue, 6 Jan 2004 05:21:16 +0000 (05:21 +0000)]
- Adaptive spliting of renderfaces for displacement.  Choose to split
        between verts 1-3 or 2-4 based on minimum displacement gradient.
        drastically improves smoothness with out additional subdividing.

18 years ago- displacement 'map to' channel now has three values, to allow to negate
Ton Roosendaal [Mon, 5 Jan 2004 23:33:22 +0000 (23:33 +0000)]
- displacement 'map to' channel now has three values, to allow to negate
  the effect as well.

18 years agoSCons updates:
Michel Selten [Mon, 5 Jan 2004 21:30:26 +0000 (21:30 +0000)]
SCons updates:
* Removed debug print in ftfont.
* Added FreeType/FTGL support to the Linux build.
  NOTE: This feature is on by default, but depends on the pre-build libraries.
  So checkout the lib directory. The lib dir should be on the same level as
  the blender dir. (In case you didn't know).

18 years ago- previewrender with mapping type "Cube" didnt show correctly.
Ton Roosendaal [Mon, 5 Jan 2004 21:18:47 +0000 (21:18 +0000)]
- previewrender with mapping type "Cube" didnt show correctly.
  added fake 'face normal' for this case

18 years agoDisplacement map
Ton Roosendaal [Mon, 5 Jan 2004 20:25:07 +0000 (20:25 +0000)]
Displacement map

- changed code to make use of actual textures, not the hackish
  'externtex', which is only for tools
- added a 'displacement' vector in ShadeInput, and moved calculation of
  displacement vector to texture.c itself. So it works with stencil, but
  also for options as 'add', 'mult' and 'sub'.
- for RGB textures it uses the brightness value of color for displace
- for stucci, and plugin textures returning a normal, it uses that

- Also: wrote call in end of preparing renderfaces, to split non-flat
  quad faces in triangles. gives a lot fewer errors in displace textures,
  but also raytracing irregular subsurfs goes better now.

- texture mapping that works for displace: orco, sticky, global, obj, normal.
  UV not yet. Reflection-displace? uhh! :)

18 years agoFix building a bundle for MacOS. (SCons related).
Michel Selten [Mon, 5 Jan 2004 19:39:20 +0000 (19:39 +0000)]
Fix building a bundle for MacOS. (SCons related).
This is a dirty solution. Maybe when we get to understand SCons better, we can
come up with a better one. For now, it works - and that's important!

18 years ago- Added the SConscripts for ftfont and quicktime
Nathan Letwory [Mon, 5 Jan 2004 18:17:23 +0000 (18:17 +0000)]
- Added the SConscripts for ftfont and quicktime
- [win32] python_include was missing, there was a double python_libpath. Corrected
- [win32] the soundsystem SConscript broke the win32 build.

18 years agoTweaks to get yafray stuff working with Makefiles
Kent Mein [Mon, 5 Jan 2004 17:42:07 +0000 (17:42 +0000)]
Tweaks to get yafray stuff working with Makefiles


18 years ago- Added projectfiles for yafray
Roel Spruit [Mon, 5 Jan 2004 15:58:48 +0000 (15:58 +0000)]
- Added projectfiles for yafray
- renamed some variables in yafray_render.cpp so msvc doesn't whine

I'm not fluent in MSVC, so I hope I don't screw up :)

18 years agoupdate scons files to build with yafray support
Stefan Gartner [Mon, 5 Jan 2004 15:33:32 +0000 (15:33 +0000)]
update scons files to build with yafray support

18 years agoYafray export code moved to source/blender/yafray to keep blender/src pure C
Alejandro Conty Estevez [Mon, 5 Jan 2004 14:53:56 +0000 (14:53 +0000)]
Yafray export code moved to source/blender/yafray to keep blender/src pure C
code. Now all the cpp code is in intern under yafray and the api include
file is just plain C

Also changed old include in initrender.c and updated and
so the new dirs are taken into account.

18 years agodon't link makesdna against libpng and friends when building with scons
Stefan Gartner [Mon, 5 Jan 2004 14:49:52 +0000 (14:49 +0000)]
don't link makesdna against libpng and friends when building with scons

18 years agoadded yafray_Render.cpp to scons files
Stefan Gartner [Mon, 5 Jan 2004 14:48:59 +0000 (14:48 +0000)]
added yafray_Render.cpp to scons files

18 years ago- this commit enable compile blender at IRIX again
Jiri Hnidek [Mon, 5 Jan 2004 13:49:16 +0000 (13:49 +0000)]
- this commit enable compile blender at IRIX again
- #include <math.h> was missing

18 years ago-First port of Displacement mapping from tuhopuu. Image textures not working
Robert Wenzlaff [Mon, 5 Jan 2004 08:44:49 +0000 (08:44 +0000)]
-First port of Displacement mapping from tuhopuu.  Image textures not working
yet ( and R.vlr no longer exist, and were needed to get the image mapped
right).  Works esp. well with Subsurfs. Sensitive to vertex normal issues
in Simple and Mesh modes.

-Also porting Simple Subdivide.  Subdivides mesh at rendertime w/o changing
shape, for smooth displace and Radiosity.

-Removed an unused var from KnifeSubdivide.

18 years ago- Revert to NaN makefiles
Wouter van Heyst [Mon, 5 Jan 2004 00:06:11 +0000 (00:06 +0000)]
- Revert to NaN makefiles

18 years agoBasic initial yafray integration by Eeshlo.
Alejandro Conty Estevez [Sun, 4 Jan 2004 22:10:36 +0000 (22:10 +0000)]
Basic initial yafray integration by Eeshlo.

Materials are exported the best we can do by now. It will look almost as in
blender except for the missing procedural textures and some minor issues.
You have to tweak normal modulation amount to get the desired result cause
is not the same in yafray.

We added a panel in render space to adjust some yafray settings (GI and so)

Also we export transparency and reflection using new raytracing settings,
but that will be changed and improved soon.

Remember that you have to set YFexport path in user defaults and yafray must
be on path (version 0.0.6)

We added the "yafray" button to activate all this stuff in the render window.
Panel and settings are only shown when checked.

So now when activated the code calls yafray export instead of the internal
renderer and finally the resulting image is loaded back into render window's
buffer. So animation is also possible and results can be saved using blender
usual scheme.

18 years agoForgot to add some lines and cleanup in the makesdna/intern/SConscript file.
Michel Selten [Sun, 4 Jan 2004 21:42:01 +0000 (21:42 +0000)]
Forgot to add some lines and cleanup in the makesdna/intern/SConscript file.
The makesdna tool is SDL 'aware', but I forgot to pass some crucial flags to
the build command.
While working in that file, did some cleanup to make it more consistent with
the other SConscript files.

18 years ago- oren nayar call didnt return float value... but still worked on my
Ton Roosendaal [Sun, 4 Jan 2004 21:32:50 +0000 (21:32 +0000)]
- oren nayar call didnt return float value... but still worked on my
  system, and gcc refuses to see it as warning. weirdos!
  this caused previewrender to show black for oren nayar.

18 years agoSCons build system files added.
Michel Selten [Sun, 4 Jan 2004 21:11:59 +0000 (21:11 +0000)]
SCons build system files added.
You'll need SCons ( to build.
Platforms currently working:
* Linux (me)
  - options for quicktime, openal and international disabled
  - uses the system libs and include files for building - no option to build
    with the precompiled libraries yet.
* Windows (jesterKing)
  - builds with quicktime (optional)
  - builds with openal (optional)
  - builds with international support (optional)
  - Use the DOS box to build
  - builds with precompiled libraries
* Irix (Hos)
  - Uses default Irix compiler
  - Not all optimization levels correct yet
  - options for quicktime, openal and international disabled
  - builds with precompiled libraries
* Cygwin (me)
  - has a problem in the linking stage
  - uses free build tools (gcc)
  - options for quicktime, openal and international disabled
  - uses the system libs and include files for building - no option to build
    with the precompiled libraries yet.
* MacOS (sgefant)
  - builds with quicktime (optional)
  - options for openal and international disabled
  - builds a nice bundle
  - builds with precompiled libraries

Thanks to IanWill for a bugfix in the Linux build.
Note: This is a work in progress. A lot still has to be done - for example the
      optional parts are only to be enabled by directly setting 'true' or
      'false' in the SConstruct file. This needs to be moved to a user config
      file. Also, the .o/.obj files are stored in the source tree. This needs
      to be fixed as well.
      The game engine is not yet built.

18 years agoFixed a problem where duplicating bones with a freshly created
Chris Want [Sun, 4 Jan 2004 17:11:22 +0000 (17:11 +0000)]
Fixed a problem where duplicating bones with a freshly created
armature would segfault (access to a non-existent pose).

18 years ago- changed calculus for area light to use double precision. Using float
Ton Roosendaal [Sun, 4 Jan 2004 13:27:18 +0000 (13:27 +0000)]
- changed calculus for area light to use double precision. Using float
  already gave noise with area size of 0.1.
  Limited buttons to minimum value of 0.01 for area light. For people
  who want smaller they can scale it down in 3d, effectively reducing
  the energy then as well.

18 years agoReturning the copy/paste/'paste flip' buttons to the 3D window header
Chris Want [Sun, 4 Jan 2004 07:47:51 +0000 (07:47 +0000)]
Returning the copy/paste/'paste flip' buttons to the 3D window header
while in pose mode.

18 years agoAdding a call to countall() to the select non-manifold, select more,
Chris Want [Sun, 4 Jan 2004 06:11:09 +0000 (06:11 +0000)]
Adding a call to countall() to the select non-manifold, select more,
and select less features.

18 years agoA few related bug-fixes/refinements
Chris Want [Sun, 4 Jan 2004 03:39:06 +0000 (03:39 +0000)]
A few related bug-fixes/refinements

  * A patch to make sure that constraints on bones that point to
    external objects are evaluated correctly (and that the bones that
    depend on these bones are evaluated correctly, etc, ad nauseum).
    This addresses some of intrr's issues (the blender-related ones,
    that is).

  * Make sure that deformed displists are updated when the user
    manipulates any of the constraint buttons.

  * Added a nice little function, ik_chain_looper(), that executes a
    callback for every bone in an IK chain.

18 years ago - removed dead reference to UserStruct, causing problems in some builds.
Daniel Dunbar [Sat, 3 Jan 2004 22:05:26 +0000 (22:05 +0000)]
 - removed dead reference to UserStruct, causing problems in some builds.

18 years agoWoops! Forgot an #include, and rude old GCC didn't even let me know.
Matt Ebb [Sat, 3 Jan 2004 13:44:42 +0000 (13:44 +0000)]
Woops! Forgot an #include, and rude old GCC didn't even let me know.

18 years ago* Small tweaks to improve button positioning in the headers
Matt Ebb [Sat, 3 Jan 2004 13:36:28 +0000 (13:36 +0000)]
* Small tweaks to improve button positioning in the headers

18 years ago* Preliminary UV/Image header menus
Matt Ebb [Sat, 3 Jan 2004 13:35:25 +0000 (13:35 +0000)]
* Preliminary UV/Image header menus

Again, there are still a couple of commented out items that will continued to be worked on. Committed for testing, etc.

Also forgot to mention in the previous commit, thanks to Monkeyboi for some help gathering items for the UV/Image, Action, NLA menus.

18 years ago* Preliminary NLA header menus
Matt Ebb [Sat, 3 Jan 2004 13:13:51 +0000 (13:13 +0000)]
* Preliminary NLA header menus

A couple of items are still commented out in the code, that still need to be implemented. I'm committing this now, so people can test/help ;)

18 years ago* Ported mesh editmode 'select random' from tuhopuu by popular request
Matt Ebb [Sat, 3 Jan 2004 09:22:33 +0000 (09:22 +0000)]
* Ported mesh editmode 'select random' from tuhopuu by popular request

Mesh editmode header/toolbox: Select -> Random...

Randomly selects a user-set percentage of vertices, adding to the current selection.

* Modified some menu entries to be consistent with the guidelines doc.

* Added 'Align Active Camera to View' in 3D View menu

18 years ago - constline was overwriting stack (this patch brought to you by VC7's
Daniel Dunbar [Sat, 3 Jan 2004 06:52:16 +0000 (06:52 +0000)]
 - constline was overwriting stack (this patch brought to you by VC7's
    nifty runtime stack corruption detection).

18 years agoDuplicating bones in edit mode now also duplicates the constraints
Chris Want [Sat, 3 Jan 2004 06:50:36 +0000 (06:50 +0000)]
Duplicating bones in edit mode now also duplicates the constraints
associated with that bone ... if the constraint subtarget bone is
also duplicated the new constraint points to this new bone as it's

18 years agoWhen a bone is renamed, all constraints that point to it are
Chris Want [Sat, 3 Jan 2004 06:27:53 +0000 (06:27 +0000)]
When a bone is renamed, all constraints that point to it are
updated with the new name.

18 years agoThree new selection techniques in mesh edit mode, two of which are
Chris Want [Sat, 3 Jan 2004 06:01:16 +0000 (06:01 +0000)]
Three new selection techniques in mesh edit mode, two of which are

* "Select non-manifold geometry" via ctrl-alt-shift-M, or through
  the menu or toolbox. Great for troubleshooting weirdness on a
  subsurf, or for preparing a mesh for decimation or for rapid

* "Select more" via ctrl-PADPLUS, or through the menu or toolbox.
  If a selected vert shares an edge with an unselected vert, the
  unselected one gets selected too. Similar to PADPLUS in wings3d.
  This is controversial because maybe it would be more useful to
  select all of the verts that share a face (instead of just an
  edge) with a selected vert -- what do *you* think?

* "Select less" via ctrl-PADMINUS, or through the menu or toolbox.
  If a selected vert shares an edge with an unselected vert, the
  selected one gets unselected too. Similar to PADMINUS in wings3d.
  Also, selected non-manifold geometry becomes unselected. This is
  controversial because of the non-manifold stuff ... is it needed?
  What do *you* think?

18 years agoAdded the prototype for the bone_looper() function to this header
Chris Want [Sat, 3 Jan 2004 05:36:56 +0000 (05:36 +0000)]
Added the prototype for the bone_looper() function to this header
to silence some warnings.

18 years agoHide selected/hide unselected/show all bones in posemode using the
Chris Want [Sat, 3 Jan 2004 05:07:31 +0000 (05:07 +0000)]
Hide selected/hide unselected/show all bones in posemode using the
usual HKEY, shift-HKEY, alt-HKEY, and also through the menu.

Thanks to malefico for the feature request, and thanks to broken
for doing the menu code.

18 years agoArmature speed ups, Part III
Chris Want [Sat, 3 Jan 2004 03:53:18 +0000 (03:53 +0000)]
Armature speed ups, Part III

Another (major) armature speed up for bones with many constraints.

When tranform()-ing, figure out which bones need to be recalculated
beforehand and only update those bones.

18 years agoBPython:
Willian Padovani Germano [Sat, 3 Jan 2004 03:50:58 +0000 (03:50 +0000)]
- Fixed small typo in doc file, reported by user Bill.
- Fixed bug #803:

Bug #803's Summary: print, type() or BezTriple broken

Trying to print type(BezTriple) was crashing Blender because
that type wasn't being initialized to PyType_Type. The other
problem is that the getName method for ipocurves only works for
object ipos.  A warning was added for when users try to use it
with other blocktypes,  we'll later update ipo related stuff in
bpython to work for all types.

18 years ago - predeclared UserStruct with wrong name
Daniel Dunbar [Sat, 3 Jan 2004 03:18:00 +0000 (03:18 +0000)]
 - predeclared UserStruct with wrong name

18 years ago - more duplicate UserStruct patching
Daniel Dunbar [Sat, 3 Jan 2004 03:11:22 +0000 (03:11 +0000)]
 - more duplicate UserStruct patching

18 years ago - solve redefinition of UserStructType in a different way, blenkey.h
Daniel Dunbar [Sat, 3 Jan 2004 02:50:33 +0000 (02:50 +0000)]
 - solve redefinition of UserStructType in a different way, blenkey.h
    is not good to include it would seem.

18 years agomade verify_pose_channel() return the pose channel that is either
Chris Want [Sat, 3 Jan 2004 02:13:04 +0000 (02:13 +0000)]
made verify_pose_channel() return the pose channel that is either
found or created (just removed some silly duplicated work).

18 years agoArmature speed ups, Part II
Chris Want [Sat, 3 Jan 2004 01:40:53 +0000 (01:40 +0000)]
Armature speed ups, Part II
"Delay Deform" option for armatures.

The button is under the X-ray bones button in the edit buttons.
With this armature option selected, manipulations in pose mode
will only deform children after the transformation is finished.
While hardly an optimal solution to the slow armature crisis, this
gives about 4 times speed up on some meshes (ah well, at least lets
me isolate armature vs. displist slowdowns while profiling).

18 years ago - update VC7 projectfiles
Daniel Dunbar [Fri, 2 Jan 2004 23:35:21 +0000 (23:35 +0000)]
 - update VC7 projectfiles

18 years agoArmature speed ups, Part I
Chris Want [Fri, 2 Jan 2004 23:29:34 +0000 (23:29 +0000)]
Armature speed ups, Part I

Major speed up for armatures during times when you aren't
posing a figure.

Background: the calculation of poses generated by actions and the
calculation of displists were getting somewhat out of sync.
This was being remedied by 'clearing the constraint done flag'
of the pose channels and recalculating the displists every time
the 3d view was redrawn, making life slow and unpleasant.
Commenting out the code that was doing this, then reinserting
the 'clearing the constraint done flag' at the right times
made things a bit more perky.

18 years ago - BLO_keyStore.h was redeclaring UserStructType from blenkey.h, removed
Daniel Dunbar [Fri, 2 Jan 2004 23:15:30 +0000 (23:15 +0000)]
 - BLO_keyStore.h was redeclaring UserStructType from blenkey.h, removed
    duplicate definition and include blenkey.h where needed. (VC7 patch)

18 years agoDecoded the 'do_all_actions()' function into smaller functions that are
Chris Want [Fri, 2 Jan 2004 21:23:19 +0000 (21:23 +0000)]
Decoded the 'do_all_actions()' function into smaller functions that are
a bit more sane and readable (actually fit in an 80 character term too).

18 years agoFixed the goofy way the function prototypes in these files were done
Chris Want [Fri, 2 Jan 2004 20:57:43 +0000 (20:57 +0000)]
Fixed the goofy way the function prototypes in these files were done

18 years agoExpanding some work done by Matt Ebb to add menu's to the
Chris Want [Fri, 2 Jan 2004 04:59:45 +0000 (04:59 +0000)]
Expanding some work done by Matt Ebb to add menu's to the
action window (Matt: please check).

18 years agoWork done to build blender on Linux [sparc64].
Wouter van Heyst [Thu, 1 Jan 2004 23:19:08 +0000 (23:19 +0000)]
Work done to build blender on Linux [sparc64].

- Don't include <ieeefp.h> on sparc linux, it doesn't exist.

- While hacking on ode, get rid of that annoying infinite rebuild

- Define a default BINTARGETS (just blenderdynamic) for linux, individual archs
  can override/add to that if they so please

- Add a sparc64 arch target to the linux section of, using the same
  options as powerpc

After the first ode problem, the build completed all but the linking of a
blender binary, because there wasn't any target defined!

On the rebuilding: The usersettings would have a newer date than targets
depending on it, so it would rebuild entirely. I haven't really fixed this, but
isolated it to the platforms where usersettings need to be moved around (darwin
and windows). FBSD patches the usersettings, so it might still happen there.  I
didn't bother with a proper fix, as it looks like we're moving to scons soon.
I'm amazed no one got annoyed enough before to take care of this.

18 years agoFix a problem that has been bugging me for a while. Tracking axis by default are...
Martin Poirier [Thu, 1 Jan 2004 19:21:06 +0000 (19:21 +0000)]
Fix a problem that has been bugging me for a while. Tracking axis by default are different for Lamp and Camera than for the rest. For the constraint, it wasn't using the correct ones for them, so obviously, it didn't track correctly by default.

Fixed by checking the object type and changing the up and track axis accordingly.

Also added some comments in the DNA file (recompiling makedna because of comments is fun!)

18 years agoSome random small stuff packed in one commit:
Martin Poirier [Wed, 31 Dec 2003 22:44:26 +0000 (22:44 +0000)]
Some random small stuff packed in one commit:

- Moved a couple of undo_push_mesh after the action has been confirmed (mainly bevel, merge and mirror)

- Split mirror in two functions, interface and functionality

- Simplified the code of the merge function

18 years ago- removed Quicktime warning from buttons. Thanks for the fix Maarten!
Ton Roosendaal [Wed, 31 Dec 2003 16:51:28 +0000 (16:51 +0000)]
- removed Quicktime warning from buttons. Thanks for the fix Maarten!

18 years agoFixes the freeze on Mac OSX when a Quicktime Settings window for Compression was...
Maarten Gribnau [Wed, 31 Dec 2003 15:47:09 +0000 (15:47 +0000)]
Fixes the freeze on Mac OSX when a Quicktime Settings window for Compression was brought up. Blender swallowed every event, not giving Quicktime a change to receive update events and mouse clicks.

18 years ago- fixed reported bug in doing correct redraws for multiple 3d windows, and
Ton Roosendaal [Wed, 31 Dec 2003 15:45:04 +0000 (15:45 +0000)]
- fixed reported bug in doing correct redraws for multiple 3d windows, and
  using vertex select. Was just caused by being to cheapskate with cpu
  cycles... but I don't give up on that!

18 years ago- added extra check for valid Material pointer array in Mesh. Someone
Ton Roosendaal [Wed, 31 Dec 2003 15:27:31 +0000 (15:27 +0000)]
- added extra check for valid Material pointer array in Mesh. Someone
  reported crash with a popular Python script that apparantly doesnt
  initialize a Mesh good (setting totcol, but not creating pointer array)
  When no Material array is present, 'totcol' is set at zero now.

18 years ago- bug fix #828
Ton Roosendaal [Wed, 31 Dec 2003 13:48:45 +0000 (13:48 +0000)]
- bug fix #828

  Blender crashed when assigning background image to 3d window, when no
  buttons window was visible. This caused by copying code from old location
  with still using some variables of the 'button space' struct.

  Solved by creating these variables in View3d 'space' as well, and using
  these instead. Could also remove old coder /* comment */ that there was
  a unknown bug in the code there. :)

18 years agoA fix for the missing pad1 bug: henceforth, world->pad1 shall be known as
Chris Want [Wed, 31 Dec 2003 04:00:26 +0000 (04:00 +0000)]
A fix for the missing pad1 bug: henceforth, world->pad1 shall be known as
world->gameEngine (a la tuhopuu).

18 years agoAdded improved exposure calculation
Ton Roosendaal [Tue, 30 Dec 2003 18:03:37 +0000 (18:03 +0000)]
Added improved exposure calculation

- based at 1.0-exp(-color) trick in Yafray. But to guarantee backwards
  compatibility, and some more control, Stefano Selleri hacked a useful
  formula for it.
- We now have 2 values to set:
  - "exp": the exponential correction value (0-1)
  - "range": the light range that maps on color 1.0 (0-5)
- Using exp(x) (is e^x) we can much better prevent overflows from render,
  which are currently hard-clipped in Blender. Setting a small 'exp' value
  wil efficiently smooth out high energy and map that back to a color for
- total formula:
  newcol= linfac*(1.0-exp(col*logfac))
    col, newcol are colors
  linfac= 1.0 + 1.0/((2.0*wrld.exp +0.5)^10)
  logfac= log( (linfac-1.0)/linfac )/wrld.range
    wrld.exp and wrld.range are the button values
- default setting: exp=0.0 and range=1.0 give results extremely close to
  previous rendering.
- graph:  for 'exp' setting
  ranging from 0-1, and with 'range'=2

Thanks Stefano for the help!

18 years ago- fixed switching contexts... the previous commit about this was too
Ton Roosendaal [Tue, 30 Dec 2003 16:00:38 +0000 (16:00 +0000)]
- fixed switching contexts... the previous commit about this was too
  rigurous. Now it only switches context when selecting a new object
  type, also "invisble", when shading buttons are not drawn.

  What I committed changed context always when pressing the 'shading
  context' icon button. This was annoying when you were editing textures
  or radiosity, world, etc. In such cases it should just draw the old

18 years ago- fix for area light versus oren-nayer shading.
Ton Roosendaal [Tue, 30 Dec 2003 00:04:22 +0000 (00:04 +0000)]
- fix for area light versus oren-nayer shading.
  oren-nayer was of course of not built for area-lights... so probably
  Cessen will kill me for this hack. Nice challenge for him to come with
  better solution. Visually it works & looks fine.

18 years ago- forgot to clip negative values coming from arealight formula.
Ton Roosendaal [Mon, 29 Dec 2003 21:32:03 +0000 (21:32 +0000)]
- forgot to clip negative values coming from arealight formula.
- excluded 'dist' factor calculus from arealamps, which caused too much
  distance sensitivity

18 years ago- since the Object Transform panel in 3d window has sufficient space,
Ton Roosendaal [Mon, 29 Dec 2003 20:12:21 +0000 (20:12 +0000)]
- since the Object Transform panel in 3d window has sufficient space,
  made all buttons display 3 digits after dot, instead of 2.

18 years ago- fixed crashing texture plugin, caused by not checking the tex->nor
Ton Roosendaal [Mon, 29 Dec 2003 20:05:15 +0000 (20:05 +0000)]
- fixed crashing texture plugin, caused by not checking the tex->nor
  Now variables are localized, this is not always set anymore.

18 years agoArea lights and more...
Ton Roosendaal [Mon, 29 Dec 2003 16:52:51 +0000 (16:52 +0000)]
Area lights and more...

- New lamp type added "Area". This uses the radiosity formula (Stoke) to
  calculate the amount of energy which is received from a plane. Result
  is very nice local light, which nicely spreads out.
- Area lamps have a 'gamma' option to control the light spread
- Area lamp builtin sizes: square, rect, cube & box. Only first 2 are
  implemented. Set a type, and define area size
- Button area size won't affect the amount of energy. But scaling the lamp
  in 3d window will do. This is to cover the case when you scale an entire
  scene, the light then will remain identical
  If you just want to change area lamp size, use buttons when you dont want
  to make the scene too bright or too dark
- Since area lights realistically are sensitive for distance (quadratic), the
  effect it has is quickly too much, or too less. For this the "Dist" value
  in Lamp can be used. Set it at Dist=10 to have reasonable light on distance
  10 Blender units (assumed you didnt scale lamp object).
- I tried square sized specularity, but this looked totally weird. Not
- Plan is to extend area light with 3d dimensions, boxes and cubes.
- Note that area light is one-sided, towards negative Z. I need to design
  a nice drawing method for it.

Area Shadow

- Since there are a lot of variables associated with soft shadow, they now
  only are available for Area lights. Allowing spot & normal lamp to have
  soft shadow is possible though, but will require a reorganisation of the
  Lamp buttons. Is a point of research & feedback still.
- Apart from area size, you now can individually set amount of samples in
  X and Y direction (for area lamp type 'Rect'). For box type area lamp,
  this will become 3 dimensions
- Area shadows have four options:
  "Clip circle" : only uses a circular shape of samples, gives smoother
  "Dither" : use a 2x2 dither mask
  "Jitter" : applys a pseudo-random offset to samples
  "Umbra" : extra emphasis on area that's fully in shadow.

Raytrace speedup

- improved filling in faces in Octree. Large faces occupied too many nodes
- added a coherence check; rays fired sequentially that begin and end in
  same octree nodes, and that don't intersect, are quickly rejected
- rendering shadow scenes benefits from this 20-40%. My statue test monkey
  file now renders in 19 seconds (was 30).


- adjusted specular max to 511, and made sure Blinn spec has again this
  incredible small spec size
- for UI rounded theme: the color "button" displayed RGB color too dark
- fixed countall() function, to also include Subsurf totals
- removed setting the 'near' clipping for pressing dot-key numpad
- when you press the buttons-window icon for 'Shading Context' the context
  automaticilly switches as with F5 hotkey

Please be warned that this is not a release... settings in files might not
work as it did, nor guaranteed to work when we do a release. :)

18 years agoAlex Mole's patch for END and HOME
Martin Poirier [Sun, 28 Dec 2003 21:28:35 +0000 (21:28 +0000)]
Alex Mole's patch for END and HOME

Makes HOME and END keys work in text space and text
edit boxes.

I've tested it for some time now and I haven't had any problem or spotted any irregularities of some sort.

One think though. It doesn't update the panning of the text window if the cursor gets out of the screen. I guess someone (more familiar with the code) could look into this.

Really nifty when coding scripts.

18 years agoBugfix for bug #760
Martin Poirier [Sun, 28 Dec 2003 21:16:11 +0000 (21:16 +0000)]
Bugfix for bug #760

When using numerical input with scaling, axis that did not have any input scaled to 0 (it defaults to 1 now). Fix inspired by Koryo's patch (it was easier to recode it than to apply the patch and then run through the code to see if he didn't forget anything).

Also fixed some other stuff (the variables didn't reset correctly at some point).