Three issues:
- When saving a file, without extension added, and no filename provided,
the saving code received the directory name only. That's a potential
danger of getting directories deleted.
Added in the saveover() function a check for this, and return an error
when you try to save over a directory.
- Screendump did not add file extensions yet, when indicated todo so.
- Screendump code was duplicating all image type cases, whilst we have a
nice BKE_write_ibuf() call for that now. (Bug was that this code did not
check for BMP, saving the file in default format.)
The raytracer wasn't calling node shaders yet, so results showed only
shading for the base material.
This now works, but there's a conflict in the internal Blender shader that
makes recursive raytracing with nodes unpredictable. Basicaly the conflict
is that when a ray wants to shade a point, it should be able to check the
material for mirror properties, but this is undefined for node trees...
Probably we need to separate raytrace entirely from material shading. Is
a good topic for NodeShader 2.0, when we really split up materials in
shading components.
I'll add a note in the release log about this. Best results you get now
when you don't include mirror/ray-transp insde a node tree, in that case
a regular material mirror can render that material perfectly.
The F3 key 'save rendered image' made inconsistant choices to save either
in jpg or tga, when the output panel was indicating to render to movies.
Even worse, it was sometimes saying 'save jpg' and saved a targa!
Made it consistantly save .jpg now, since tga isn't a good common format.
2)
Forgot to commit transform.h for previous bugfix in transform numeric input
The transform number input code allowed to keep typing forever. That's nice
but the code uses floats to store values, so there's a limit of 7 digits
resolution to take care of. I've added this limit now, it will stop when
the 8th digit was typed, giving a range of 100 million, quite OK for
Blender measures.
There was also a short in use for values between 0 and 1, causing an error
when you try to type like 0.99999. Here I've added a limit of 7 digits.
When a Sequence setup had a gap, it returned default black frames. However,
this black frame was overriding the float buffer when a new strip started
to render again, so the Sequencer kept saving black.
Also: added extra info print for Scene strip, this didn't tell yet what the
start/end frame of Scene was, and what current frame was.
[ #4581 ] related to scripts window updates, details here:
http://projects.blender.org/tracker/index.php?func=detail&aid=4581&group_id=9&atid=125
Scripts updated:
-Jean-Michel Soler updated some of his scripts: paths importer (ai,
eps, gimp, svg), kml / kmz importer and also updated Axiscopy.py by A
Vanpoucke (xand) and the knife script (this version handles multiple
materials) by Stefano Selleri and Wim Van Hoydonck. Thanks!
When you rename a generated image, like "Render Result" or "Composite"
the float buffer in this image had to be copied, otherwise a next render
will make the renamed Image buffer invalid.
Note that renaming will not mean the images get packed or saved! So on
reloading .blend they're gone.
In december, when testing material layering, I've removed the check that
prevented specular and diffuse to become negative, this because it could
work nice for layering.
However, this breaks quite some cases too. For example negative lamps are
only used to cancel out other lights in same material, and should not give
negative (invisible!) peaks that work on a node system. Same goes for
negative diffuse from AO 'subtract' mode.
In fraka the error happened for AO on a translucent material. The inside
of the mesh got a negative AO, cancelling out the positive AO on the
outside.
Anyhoo; this commits ensures that a 'shade_lamp_loop' call will never
return negative values again!
- AO "Use Distances" can not use 'sky texture' for colors, that bug was
fixed in UI (prevent settings to combine), but better also gets fixed
on reading files.
- Backbuf render, when not existed, didn't initialize backdrop color to 0.
Rewrote the video seek code again. This time it is a _lot_ simpler and a lot
better.
For those interested: instead of letting ffmpeg choose the right final
position, we let it preseek (maybe to I-frame in the rare case, that is
implemented) and then scan for the correct frame on DTS basis by hand.
We therefor only have to seek once and remove all those frame-jumping
jerkiness, people noticed in the same step.
Tested with msmpeg, hd-mpeg2 and DV.
Bugfig #4527: add more robust bitfield checking for Mesh.mface.flags;
unconfirmed bug report that an exception was caused with RC3a that could
not be reproduced. It was possible that a pre 2.42 .blend might have
some additional flag bits set that would have caused an error.
They're getting rare, but here's another bugfix from issue since NaN days:
Orco texture coordinates for surfaces didn't work *at all*!
(Try 2 nurbs spheres in 1 object). Fixed!
Ancient issue in making screendumps in Blender. It used to support making
dumps of popup menus, but that disappeared a while ago. However, when you
press CTRL+F3 in a menu now, Blender hangs in some eternal loop in ghost.
This commit fixes making menu screendumps (nice for docs!).
- press CTRL+F3 *twice* for an exact copy of a menu. (first press exits
menu, 2nd press opens filewindow)
- note, it is ALT+CTRL+F3 in OSX
- what is saved is only the topmost open level of a menu
- full-screen dumps work too by holding SHIFT extra.
Using the 3d window preview render, fluidsim objects gave drawing errors.
Was caused by missing object recalc signals after creating the render
database (happens on different resolutions for fluidsim).
Note to self: the separation between 'render' and 'display' is still a
weak part in the Derived/Displist code...
fixed some other UI logic in the python menu script
Added an option to use a vertex group for a reduction weight map to force reducing some areas more then others.
Mesh epydocs activeGroups can be None as well as string.
Bugfix #4605: mball_to_mesh() doesn't create edges for new mesh, so
me.getFromObject() wouldn't display the new mesh until edit mode was entered.
Added a call to displistmesh_add_edges() to calculate them and then insert
into the new mesh.
Hurmf, then you bring back old backbuffer, and they want to have fields
work on that!
OK... here it is. Although using Compositor features will make this much
easier and advanced to control. :)
Bone renaming goes over a complex series of checks, which includes
checking all objects that have relations to the armature. the call
modifiers_usesArmature() didn't check properly for existing pointer...
ESC for OpenGL render (in anim) was hanging, so a 2nd anim render always
returned immediately.
Own bug collection: the SHIFT+NumPad-0 option didn't do an undo-push.
Option "rotate view about active object" was disabled when object was in
editmode or posemode. Removed this limit so the option just always uses
active object as center, disregarding mode.
Node Editor: selecting Material buttons in header crashed, when no buttons
window was opened. Code didn't check for proper window it was called from.
Also: autoname "Cyan" was spelled dutch! :)