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).

18 years agoFunction without a return (warning)
Martin Poirier [Sun, 28 Dec 2003 20:24:32 +0000 (20:24 +0000)]
Function without a return (warning)

This function just calls another function which returns a success value, so I'm just passing that value directly as a return value.

Slap me with a trout if I wasn't suppose to fix this.

18 years agobjornmose's UV mapping patch
Martin Poirier [Sun, 28 Dec 2003 19:59:06 +0000 (19:59 +0000)]
bjornmose's UV mapping patch
two new options to uv auto calculation:
"from window to shere", "from window to cylinder".
the differences to sphere/cylinder mapping as is:
1. the around settings of the 3D view sets the projection center
2. the origin of the polar/spherical coordinate system always points out of the screen.
   so the rotation of the view affects mapping.
3. in the cylinder case the radius of the projection cylinder is read by a popup button.

Basicly what you need to do is rotate the viewport until the cylinder/sphere is aligned with the depth (Z axis) of the view, as if you where looking through the mesh from one end to another (makes more sense in the case of a cylinder), and choose the From window to cylinder/sphere mapping option.

18 years ago Another bad flag. Mea Culpa.
Robert Wenzlaff [Sat, 27 Dec 2003 17:29:25 +0000 (17:29 +0000)]
Another bad flag.  Mea Culpa.

18 years ago Accidently committed local flags. Bad coder.
Robert Wenzlaff [Sat, 27 Dec 2003 16:52:51 +0000 (16:52 +0000)]
Accidently committed local flags.  Bad coder.

18 years agoMore cursor port bugs.
Robert Wenzlaff [Fri, 26 Dec 2003 23:01:47 +0000 (23:01 +0000)]
More cursor port bugs.

18 years agoBugfix: Error in cursor port, only showed up under cygwin.
Robert Wenzlaff [Fri, 26 Dec 2003 22:41:51 +0000 (22:41 +0000)]
Bugfix:  Error in cursor port, only showed up under cygwin.

18 years agoadded Robert's cursor stuff to the msvc 6.0 project files
Roel Spruit [Fri, 26 Dec 2003 20:29:11 +0000 (20:29 +0000)]
added Robert's cursor stuff to the msvc 6.0 project files

18 years agoCommit of cursor framework. Cursors now defined in source/blender/src/cursors.c and
Robert Wenzlaff [Fri, 26 Dec 2003 20:12:42 +0000 (20:12 +0000)]
Commit of cursor framework.  Cursors now defined in source/blender/src/cursors.c and
source/blender/include/BIF_cursors.h.  Allows large cursors on Win32 and X11.
See cursors.c for documentatioin on how to use.

18 years ago- improved filling in faces in octree, resulting in less nodes and
Ton Roosendaal [Wed, 24 Dec 2003 19:05:38 +0000 (19:05 +0000)]
- improved filling in faces in octree, resulting in less nodes and
  branches. Especially larger faces give result. Rendering times go down
  with an average of 10%. My reference testfile went down from 30.4 to
  27.9 seconds.

18 years agoDan Sinclair's patch to add --version or -v to blender's command line options.
Kent Mein [Wed, 24 Dec 2003 16:44:24 +0000 (16:44 +0000)]
Dan Sinclair's patch to add --version or -v to blender's command line options.


18 years ago- fixed bug in shaded view mode (SHIFT+Z) when it tried to calculate
Ton Roosendaal [Wed, 24 Dec 2003 16:18:13 +0000 (16:18 +0000)]
- fixed bug in shaded view mode (SHIFT+Z) when it tried to calculate
  reflection normals... NULL pointer reference.
  (thanks Desoto!)

18 years ago- only cosmetic stuff; result of going over the output of mipspro cc
Ton Roosendaal [Wed, 24 Dec 2003 11:44:57 +0000 (11:44 +0000)]
- only cosmetic stuff; result of going over the output of mipspro cc
  compile round. Wrong prototypes, unused variables, zealot const usage,
  and in action.c fixed insane & unreadable function call syntax.

18 years ago- Fresnel V4.0
Ton Roosendaal [Tue, 23 Dec 2003 22:31:48 +0000 (22:31 +0000)]
- Fresnel V4.0

Based on feedback (thnx phase!) I found a big disadvantage of the 'real'
fresnel formula. It doesnt degrade to 0.0, causing 2-3 times too many
rays being fired compared to the previous one. So; a lot slower.

Now committed is a hybrid which allows (close to) real, and nice artistic
freedom, *and* it really goes to 0.0 and 1.0, assisting nicely in optimal
render times.
A real doc how it works (with pics) will be made before real release.

- Fixed bug in raytrace: the first renderpass didn't use fresnel for mirror.
- Fixed bug in previewrender, now it closer matches how fresnel renders

18 years agoFixed bevel width preview drawing which draws the correctly with higher recursion...
Martin Poirier [Tue, 23 Dec 2003 19:03:30 +0000 (19:03 +0000)]
Fixed bevel width preview drawing which draws the correctly with higher recursion level (it was incorrect for anything higher than 2).
Also commented out a couple of unused variables that were shouting warnings (and we all love the lack of warning and the couple of extra free bytes) :)

18 years ago- another fresnel improvement. :)
Ton Roosendaal [Mon, 22 Dec 2003 22:27:51 +0000 (22:27 +0000)]
- another fresnel improvement. :)
  At last irc meeting, eeshlo pointed to an error in the code. It didn't
  use the IOR value correctly. This has been solved. So how it works now:
  - the IOR button value influences (very subtle) the fresnel effect.
    Only for realism diehards.
  - the Fresnel value (slider) now denotes the power in the function
    rf + (1-rf) * (1-c)^5
    where rf= rf = ((ior-1)/(ior+1))^2
    and c the dot-product ray/normal.
  - so, set the slider at '5' and you have real fresnel. Lower values
    for interesting artistic effects.

- put back the forgotten code for gaussian corrected sampling during
  antialising render. Normally, each sub-pixel sample in Blender counts
  equally, and together make up the pixel color.
  With 'Gauss' option set (F10 menu) each sub-pixel sample creates a small
  weighted mask with variable size, which (can) affect neighbouring pixels
  as well. The result is smoother edges, less sensitive for gamma, and
  well suited to reduce motion-aliasing (when things move extreme slow).
  This is result of *long* period of research in NeoGeo days, and based on
  every scientific sampling/reconstructing theory we could find. Plus a
  little bit of our selves. :)

- I should write once how blender constructs Jitter tables for sub-sampling.
  this is a very nice method, and superior to normal block filter or random
  jittering... time!

18 years ago- fixes for the stubs, to make sure blenderplayer compiles.
Ton Roosendaal [Sun, 21 Dec 2003 23:38:41 +0000 (23:38 +0000)]
- fixes for the stubs, to make sure blenderplayer compiles.
  error was caused by moving render calls to render module... but some
  are still called in blender kernel...

18 years ago- globals were defined double... showed up thanks to warning of irix
Ton Roosendaal [Sun, 21 Dec 2003 22:57:02 +0000 (22:57 +0000)]
- globals were defined double... showed up thanks to warning of irix

18 years agoupdated msvc projectfiles: added texture.c and removed some others..
Roel Spruit [Sun, 21 Dec 2003 22:43:10 +0000 (22:43 +0000)]
updated msvc projectfiles: added texture.c and removed some others..

18 years ago- moved render.h struct back to beginning of file...
Ton Roosendaal [Sun, 21 Dec 2003 22:38:29 +0000 (22:38 +0000)]
- moved render.h struct back to beginning of file...

18 years ago- brought back to render.h includes... ifdef SGI and Windows...
Ton Roosendaal [Sun, 21 Dec 2003 22:31:03 +0000 (22:31 +0000)]
- brought back to render.h includes... ifdef SGI and Windows...

18 years ago- removed render.h from this file.
Ton Roosendaal [Sun, 21 Dec 2003 22:23:20 +0000 (22:23 +0000)]
- removed render.h from this file.

18 years agoPhew, a lot of work, and no new features...
Ton Roosendaal [Sun, 21 Dec 2003 21:52:51 +0000 (21:52 +0000)]
Phew, a lot of work, and no new features...

Main target was to make the inner rendering loop using no globals anymore.
This is essential for proper usage while raytracing, it caused a lot of
hacks in the raycode as well, which even didn't work correctly for all
situations (textures especially).

Done this by creating a new local struct RenderInput, which replaces usage
of the global struct Render R. The latter now only is used to denote
image size, viewmatrix, and the like.

Making the inner render loops using no globals caused 1000s of vars to
be changed... but the result definitely is much nicer code, which enables
making 'real' shaders in a next stage.
It also enabled me to remove the hacks from ray.c

Then i went to the task of removing redundant code. Especially the calculus
of texture coords took place (identical) in three locations.
Most obvious is the change in the unified render part, which is much less
code now; it uses the same rendering routines as normal render now.
(Note; not for halos yet!)

I also removed 6 files called 'shadowbuffer' something. This was experimen-
tal stuff from NaN days. And again saved a lot of double used code.

Finally I went over the blenkernel and blender/src calls to render stuff.
Here the same local data is used now, resulting in less dependency.
I also moved render-texture to the render module, this was still in Kernel.
(new file: texture.c)

So! After this commit I will check on the autofiles, to try to fix that.
MSVC people have to do it themselves.
This commit will need quite some testing help, but I'm around!

18 years agoFixed the call to CalcNormFloat to use neweve[]->co.
Alexander Ewering [Sat, 20 Dec 2003 13:46:50 +0000 (13:46 +0000)]
Fixed the call to CalcNormFloat to use neweve[]->co.

Goofster: The difference between you and Ton reporting the problem was
that he actually took the time to analyze the warning and pin down the
problem, while your "hahaha, your code has a warning!" didn't really
help me a lot in the first place.

18 years agoMore render stuff:
Ton Roosendaal [Fri, 19 Dec 2003 15:23:12 +0000 (15:23 +0000)]
More render stuff:

- added 'Mapping to" channel "RayMirror", to control mirror with texture
- fixed bug in using mirror-rgb as texture channel... this is cumbersome
  because it is abused by Envmap in a not nice way. Fixing the abuse will
  cause compatibility errors, which can be fixed when we up release # to

- added "Translucency", which is nothing else than allowing another
  shading pass for the backside of a face (with normal inverted). This
  is interesting for all kinds of situations where you want light from
  behind to 'shine through'. Also works to reduce dark areas in
  unlighted parts of rendering transparent faces. Light from behind on
  transparent red window should make it glowing some, right?!
- added texture channel for this as well

- Reorganized Material Panels to reveil some consistancy where buttons
  can be found. Not perfect yet, but at least all options for Shaders and
  options for Mirror & Transparency now are together.
  This gives some space in Shader Panel for nice expansion.

18 years agoUpdated the Mac OS X blender file icon with standard background and xype's nice shine...
Matt Ebb [Fri, 19 Dec 2003 12:07:24 +0000 (12:07 +0000)]
Updated the Mac OS X blender file icon with standard background and xype's nice shiney blender logo

18 years agoBug fixes (sigh...)
Jacques Guignot [Thu, 18 Dec 2003 21:45:15 +0000 (21:45 +0000)]
Bug fixes (sigh...)

18 years agoanother trace commit
Ton Roosendaal [Thu, 18 Dec 2003 21:34:48 +0000 (21:34 +0000)]
another trace commit

- implemented tracing of transparency for shadows. This is a material
  option, in the new RayTrace panel.
  it only traces color and alpha, not shading. So the results of some
  transparant colored unlit faces can look odd. I will look onto that.
- changed fresnel formula (got hint from eeshlo!). this simplifies the UI,
  now only one button needed. The fresnel value "should" be identical as
  the refraction index, but that is booooring! So i added a special fresnel
  refraction slider for both mirroring and transparency. By setting all 3
  sliders equal, you get 'realism'.
- fresnel for transparancy works for Ztra rendering too. Same for transpa-
  rent shadow. But then you need to set 'ray' on in F10 menu.
- uploaded new monkey_glass blend in

Next stage: killing the globals from render, and implement "translucency"
which is effectively allowing faces being lit from behind, as paper or

18 years agoYay! Bevel is back in business. Thanks to intrr for pointing out the problem (flag...
Martin Poirier [Thu, 18 Dec 2003 01:37:50 +0000 (01:37 +0000)]
Yay! Bevel is back in business. Thanks to intrr for pointing out the problem (flag check missing).

18 years agoModification of the function getCurvecurval suggested by Jiba. This function can...
Jacques Guignot [Wed, 17 Dec 2003 14:15:14 +0000 (14:15 +0000)]
Modification of the function getCurvecurval suggested by Jiba. This function can take an integer argument (the position of the curve) or a string (the name of the curve)
Updated documentation in doc/

18 years agoNathanael Law's fix to make numerical input more compatible with axis constraints.
Martin Poirier [Wed, 17 Dec 2003 04:27:29 +0000 (04:27 +0000)]
Nathanael Law's fix to make numerical input more compatible with axis constraints.

I thought this was a nice addition, so I'm commiting it.

To Ton for easier changelog creation: When constraining to an axis, numerical input is limited (and will switch automaticly) to that axis.

Original e-mail
I was playing with the axis constraints for grab and scale transforms
and I thought that the behavior was slightly illogical.  Without axis
constraints, I think everything is great, but once a constraint is used
some irregularities show up.  (Note, this is not a bug, it's more of a
possible improvement)

When you enter grab or scale mode, then constrain the transformation to
particular axis, then enter numeric entry mode by hitting a number or
'n', there is no reason for you to try and edit the numeric value of a
non-constrained axis which is the current behavior.

E.g. You grab an object and want to move it along the z-axis, so you
enter grab mode and either hit 'z' or the middle mouse button and you
move the mouse to get an idea of how it looks.  You decide that you
want to use a value of +4.2 with numeric entry; now you have to enter
the following sequence: 'g', 'z', 'move mouse', 'tab', 'tab', '4.2',
'enter'.  However, you're already constrained to the z-axis, so you
should not have to enter 'tab', 'tab'.

The included patch changes the behavior of grab and scale transforms so
that if you are constrained to an axis, and enter numeric entry mode
'n' or by hitting a number, you will immediately begin editing the
appropriate axis, and will not have to hit 'tab'.

This may not seem like a big improvement (because it's not), but I feel
that it improves the workflow of a commonly used task slightly and does
not negatively impact any other aspects of the program.

I welcome feedback on this idea.

 - Nathanael Law <>

18 years agoFix for the bevel wrapping face detection algorithm. Still some case where quad will...
Martin Poirier [Wed, 17 Dec 2003 04:16:32 +0000 (04:16 +0000)]
Fix for the bevel wrapping face detection algorithm. Still some case where quad will wrap. From the test I did, this seems to happen most of the time with MAJORLY non-coplanar faces. Still trying to find a final fix that would work all the time.

18 years ago- shadeless rendering fixed!
Ton Roosendaal [Tue, 16 Dec 2003 16:07:46 +0000 (16:07 +0000)]
- shadeless rendering fixed!
  error was due to new localized render result code... and of course only
  shading and tracing was tested :)

18 years agoAnother commit for raytracing, now with glass refraction & fresnel!
Ton Roosendaal [Tue, 16 Dec 2003 14:12:01 +0000 (14:12 +0000)]
Another commit for raytracing, now with glass refraction & fresnel!

- enable refraction with button "Ray Transp" in Material buttons.
- set "Angular Index" value for amount of refraction.
- use the "Alpha" value to define transparency.
- remember to set a higher "Depth" too... glass can bounce quite some
  more than expected.
- for correct refraction, 3D models MUST have normals pointing in the
  right direction (consistently pointing outside).
- refraction 'sees' the thickness of glass based on what you model. So
  make for realistic glass both sides of a surface.

- I needed to do some rewriting for correct mirroring/refraction,
  especially to prevent specularity being blended away.
  Solved this with localizing shading results in the rendercore.c.
  Now specularity correctly is added, and reduces the 'mirror' value.
- Localizing more parts of the render code is being planned. The old
  render heavily relies on struct Render and struct Osa to store globals.
  For scanline render no problem, but recursive raytracing dislikes that.

- done test with gamma-corrected summation of colors during tracing, is
  commented out still. But this will give more balanced reflections. Now
  dark reflections that are reflected in a bright surface seem incorrect.

- Introduced 'Fresnel' effect for Mirror and Transparency. This
  influences the amount of mirror/transparency based at viewing angle.
  Next to a new Fresnel slider, also a 'falloff' button has been added to
  define the way it spreads.
- Fresnel also works for Ztransp rendering

- created new Panel for Raytrace options
  I have to evaluate still where it all should be logically located.
- material preview shows fake reflection and fake refraction as well.

18 years agoOK, My turn to break things ...
Chris Want [Tue, 16 Dec 2003 01:27:37 +0000 (01:27 +0000)]
OK, My turn to break things ...

The maximum vertex count for a mesh has been raised from 65000 to
2000000000L (yep, 2 billion!).

Please test!


18 years agoThe final piece to make blender build with the new python stuff
Chris Want [Tue, 16 Dec 2003 01:15:52 +0000 (01:15 +0000)]
The final piece to make blender build with the new python stuff
using the Makefiles (an #include was #excluded). Thanks
for doing the rest of it, Willian!

18 years agoTrying again to fix build problems with traditional makefiles.
Willian Padovani Germano [Tue, 16 Dec 2003 00:17:59 +0000 (00:17 +0000)]
Trying again to fix build problems with traditional makefiles.

I took a look at how other BPY_* functions were working in blenkernel/
and got to bad level calls (ah, so this is what that is for...).
As a test, I added BPY_clear_script to the "stubs", argh.  If this works,
I'm curious: are these bad level calls needed only by some targets (irix)
because of peculiarities in compiler linkage?

Thanks again, Chris, if this doesn't work, I'll move or copy  the function to
script.c, probably, also adding Python.h to it.

18 years agoChris reported build errors w/ traditional makefiles.
Willian Padovani Germano [Mon, 15 Dec 2003 18:18:09 +0000 (18:18 +0000)]
Chris reported build errors w/ traditional makefiles.
This commit moves the 2 undefined references to BPY_interface.c and
changes things a little, hopefully fixing the problem.  I had to add a new dir,
source/blender/include/ to auto*'s in source/blender/python/.

Thanks Chris for the report, and Jiri, for adding a missing declaration.

18 years ago- added declaration SpaceType *spacescript_get_type (void);
Jiri Hnidek [Mon, 15 Dec 2003 16:06:00 +0000 (16:06 +0000)]
- added declaration SpaceType *spacescript_get_type (void);

18 years ago- fix for particle duplicators:
Ton Roosendaal [Mon, 15 Dec 2003 14:18:37 +0000 (14:18 +0000)]
- fix for particle duplicators:
  when an object has an Ipo, the timing for each duplicated Object is
  corrected for the lifetime of particle. Looks great!
  Remark: this won't work  for object location (is at particle) or for
  particle type 'Vect' which gives a rotation already. But now you can
  scale an object small, and let it grow over time.

18 years agoBEVEL FOR MESH **** LONG LOG WARNING ****
Martin Poirier [Mon, 15 Dec 2003 04:38:30 +0000 (04:38 +0000)]

The interesting part:

Bevelling functions for meshes.
Accessible through the Wkey menu.
You then have to enter the recursivity level (Warning, don't use 3 on a big mesh) and interactivly set the bevel width by moving the mouse. It draws the new faces in yellow. Ctrl constraint to 0.1 multiples, Shift switches to low gear, Space to type a value directly.
Support for selective bevelling isn't really working yet, so be sure to select all the vertices beforehand.

The less interesting part:

Code done by intrr (logical stuff, how the algorithm works) and me (math stuff and the interactive bevel width code).

The splitting and bevelling algorithm is not yet fully optimized, and the face shrinking math still doesn't like too big bevel width values. So this will have to be cleaned too.

Selective bevel is on the list next.

If you have any questions about how the code works, send the questions regarding the logic of the method to intrr and math questions to me.

This is very much testing code (or should I say teasing code), so please don't flood me with bug reports. (This excludes OFFICIAL Blender developpers who were there at the meeting and pretty much know what the limitations of the code is and what it should do.)

18 years agoProjectfiles fixes for new script space code thingy
Martin Poirier [Mon, 15 Dec 2003 03:24:47 +0000 (03:24 +0000)]
Projectfiles fixes for new script space code thingy

18 years agoSome fix for local axis translation in edit mode. Sorry, I've fixed that weeks ago...
Martin Poirier [Mon, 15 Dec 2003 03:13:22 +0000 (03:13 +0000)]
Some fix for local axis translation in edit mode. Sorry, I've fixed that weeks ago but never commit, so I really don't remember what the actual bug was. :o(

It wasn't from the bugtracker though.

18 years agoUpdated some pulldown menus to be more consistent within themselves, and with the...
Matt Ebb [Sun, 14 Dec 2003 13:25:38 +0000 (13:25 +0000)]
Updated some pulldown menus to be more consistent within themselves, and with the new guildelines.

18 years agoBPython - first step for better integration of Python in Blender:
Willian Padovani Germano [Sun, 14 Dec 2003 01:18:09 +0000 (01:18 +0000)]
BPython - first step for better integration of Python in Blender:
- add a new space: Space Script
- add a new dna struct: Script
- add these two properly everywhere they are meant to

It's not a tiny commit, but most of it is ground work for what is still to be done.
Right now the benefits should be: freeing the Text Editor to be used in a window even while a script w/ gui in "on" and letting more than one currently running script w/ gui be accessible from each window

Some files are added, so some build systems (not autotools) will need updates

18 years agosupport for curve objects.(the code was ready, but commented out)
Jacques Guignot [Sat, 13 Dec 2003 17:15:15 +0000 (17:15 +0000)]
support for curve objects.(the code was ready, but commented out)
modified functions : New and Object_shareFrom

18 years agoI'm not quite awake yet. commiting wrong things all over the place... part3 of a...
Roel Spruit [Sat, 13 Dec 2003 13:41:29 +0000 (13:41 +0000)]
I'm not quite awake yet. commiting wrong things all over the place... part3 of a simple commit, see my previous 2 commits...

18 years agoMerge at center and at cursor update vertex-counter in the header.....
Roel Spruit [Sat, 13 Dec 2003 13:04:41 +0000 (13:04 +0000)]
Merge at center and at cursor update vertex-counter in the header.....
I will try to remember this stuff for my new stuff :)