Animated metaballs didn't update correctly when changing frame, this when
they were parented (for example) to an object with Ipo.
The fix consists of three things:
- the test_displist() call doesn't remake displist anymore, but frees it.
this works, because when drawing an mball object it checks for a displist
and creates one when needed
- the main drawing routine drawview3d() now has a separate loop where first
all objects are updated with where_is_object(), then they're drawn.
This effectively solves lag for mballs. Might improve other lags too!
- included in NumPad-9 call to test_displist() too, to force a full upgraded
3d view
Message using a python function of the MessageSensor.
Thats a nice thing if you want complex message handling in one python
script. Just get all messages, check the subject and do what you
want. In the current situation you end up with several MessageSensors
connected to the python script, instead of one Sensor and a smart
script.
Some developer (cant remember who) did implement that function, but
however not the way I wanted (maybe I was not clear enough) ;-) So the
getSubject() function will return whats entered in the "Subject:"
filter field of the MessageSensor. Quite useless IMHO.
So I added a new function getSubjects() which is similar to
getBodies(), in fact I stole the code from there ;-)
I left the getSubject() alone, because of backward compatibility
(never saw someone using that function, but...)
The future:
In conjunction with a wildcard subject: filter field the getSubjects()
function will be even more usefull.
i.e. Player* will filter for PlayerScore, PlayerKill etc.
-- Carsten Wartmann
This was a problem with the BezTriple type.
Write access to BezTriple via 'pt' member did not work.
Preferred method to access BPy type members, especially for
write access, is via get*/set* methods.
BezTriple.setPoints() will accept x,y coordinates as either
a tuple or a list.
Updated BezTriple section of Ipo module doc.
Solved by Styken, thanks dude!
the winqreadtextspace() function wants CTRL/ALT events, but also should
accept special characters that are sometimes behind an ALT on certain
keyboards (like [ ] in sweden).
In the old code all ALT events caused ascii to set on zero. Now it
checks first for ispunct() chars.
Quads in radiositizer got normals calculated using 3 vertices only. this
can go wrong in occasions... and made blender hang.
Used CalcNormFloat4() instead!
This more of a quality issue... changes now are:
- in (ortho) 3d view, changing window aspect keeps zooming
level (it zoomed out with extreme portrait aspect)
- pressing 'home' in 3d window now shows all with extreme aspect ratios too
Logic buttons have not been Panelized (will be difficult, dont try!) so
the 'Home' and automatic view-limits didn't work it anymore.
This caused logic blocks not being accessible by scrolling window.
Fixed by updating the code that sets view limits.
Credits go to blendix! Well done!
Reported were errors in using procedural textures on "Map input" UV type.
It was due to un-initialized uv[2] members, which were actually still
used by texture.c for some coord flip magic.
CTRL+SHIFT+A (apply lattice deform) on a Bezier Curve object was not
implemented yet. Added this.
Little sidenote: when curves are 2D the result will remain 2D, disregarding
deformation in 3rd dimension.
When editing a Curve object, type Poly, some code still thought it was
a Nurbs instead, doing nasty stuff with knots arrays.
Also fixed redraw events for buttons while editing Curve, this wasn't
done properly at all, causing the UI showing non-existant data...
brought up the following "fixes":
removed these prototypes since they were not used anymore:
void cspace(struct ImBuf *ibuf, float mat[][4]);
void freezbufImBuf(struct ImBuf * ibuf);
void IMB_init_movie_pointers(void);
Renamed IMB_addzbufImBuf prototype so it maches the actual
function: addzbufImBuf
Kent
When using MotionBlur, the rendered coordinates were not correctly
adjusted, causing visual artifacts using the new AO, but it was also
visible for normal ray-shadow, which didn't become anti-aliased in
Mblur render.
Solved it with 2 globals now, to pass on blur offset to renderloop.
Leave it that way... the entire method used to jitter/AA/blur stuff
needs revision.
- Ambient Occlusion is a more sophisticated ambient trick, which takes
nearby faces into account by firing a hemisphere of shadow-rays
around. AKA 'dirt shader'.
- Eeshlo made it a Lamp type, which doesn't fit well. I've moved the
settings to the World menu, and let the Material->ambient value control
the amount it contributes
- currently, the AO value is added/subtracted/mixed with the 'diffuse'
factor while shading, before it is multiplied with Material color
Buttons are in new Panel 'Amb Occ" in F8 menu. Note:
- "Dist:" by shortening the length of rays you get subtler effects and it
renders faster too
- "DistF:" the attennuation factor gives control over how the 'shadow'
spreads out.
Further it's just raytracing, so tends to be slooooow.... :)
Here same tricks as for other raytraced scenes apply, especially try to
keep the environment as small as possible (exclude faces from Octree by
giving them no Material Traceable).
I still have to think over a couple of aspects, will await feedback on it:
- AO color? Now it just adds 'white'
- other sampling patterns? I tried dithering, which was so-so
- method of controlling final 'samples' in F10? Might be useful for other
oversampling too (area light) to have it reacting to a percentage or so..
In Faceselect Mode, in the Face menu, Copy Vertexcolors, Copy UVs & Textures
and Copy Drawmode did not work.
Also fixed some menu entries redrawing the logic buttons window instead of the
edit buttons window.
changed sprintf (var, "blahhh %"); to sprintf(var, "blahhh %%");
and initilized a questionable variable to NULL.
drawd should be looked at to see if there is ever a time it might not
be initalized and if so what would be a good default? 1?
I left this one, but if I had to guess I'd initalize it to 1.
Kent
multiple functions and partially recoded. Because now all the uv mapping
settings are accessible throught the panel, no popus will be shown when
pressing 'U' to unwrap faces in face select mode. Also From Window to Cylinder
and From Window to Shpere became obsolete, as you can set this in the new
panel.
The panel contains buttons for all the existing uv mapping modes, and the
following settings:
- Cube size: For Cubical unwrapping.
- Radius: Radius for Cylindrical unwrapping.
- View Aligns Face, View Aligns Top, Align to Object: For Cylinder and Shpere.
Respectively means you are in front of the Cylinder/Sphere, look through the
Cylinder, or use the object rotation to determine how the cylinder is
positioned (old Cylindrical unwrapping).
- Polar XZ, Polar XY: With 'View Aligns Top' enabled, defines at which polar
you are looking.
- No Edges, Draw Edges, All Edges: Draw no edges, draw edges z-buffered on top,
draw all edges, without depth test.
All credits for this part (and also at least half of the other UV editor
improvements) go to Jens Ole Wund aka "bjornmose".
Sticky UVs: Ctrl+C
Local Stikcy UVs: Shift+C
Active Face Select: C
Constrained Scaling / Grabbing in the UV editor. Press XKEY or YKEY to scale
or move only in X or Y direction. XKEY and YKEY previously did mirroring while
scaling. Now mirroring can be done using the MKEY.
Grab, Rotate, Scale, Weld / Align and Mirror were added to a new Transform
sub-menu of the UVs menu.
The png file containing the icons, 'blenderbuttons', was updated to contain
these new icons. It now also contains the icons from the 2.30 ui makeover.
The file had not been updated since then.
When you try to SHIFT+F1 Link a file, but accidentally choose the current
file, the error handling didn't immediately close the file. That can give
problems with saving over with CTRL+W.
Fix is that filesel.c now prevents selecting the current file.
The real bug is in the matrices blending function which doesn't handle non-uniform scaling correctly.
I've minimized the occurence of the bug by calling the blending function only when the influence is smaller than one (woah, optimisation AND bug fix!)
This should make the bug disappear approximatly 90% of the time since people don't use influence all that often (also, this only applies to constraint that are alone, not using influence IPOs to switch between two constraints).
I'd solve the blending function bug, but I haven't had much time to dig into it really.
Incidently, by reverting to the previous code, this solves bug #1069http://projects.blender.org/tracker/index.php?func=detail&aid=1069&group_id=9&atid=125
- Added vertex_loop_select to bif_editmesh.h (gave a warning)
- Re-added "Get Same Uv" feature. this selects all faces that have the same uv-texture as the active face. it's placed in the Select headermenu while in faceselect mode.