polygonization of 512 MetaBalls:
- version 2.33a: 76 s
- current cvs version 8 s
- button "Never" is added in button window: Metaballs are polygonized only during render time (it is useful for particle animation) http://e-learning.vslib.cz/hnidek/misc/bowl_metaballs.blend
New is that objects can have a force field, and Meshes can even deflect
(collide) particles. This is in a new sub-menu in Object buttons F7
The full instructions where on the web, Leon mailed it me and I will put
it in CMS tomorrow. For those who like to play with it now, here are demo
files:
http://download.blender.org/demo/test/
Quite some changes where in the integration though... so previous created
particle deflectors will not work. Changes to mention now are:
- gravity is renamed to 'force field'
- force field and deflector options are in Object now, not in Mesh
- the options also have its own struct, doesnt add to Object by default
- force fields are possible for all object types, but only work on center.
So empty objects are typical for it.
Work to do:
- add draw method in 3d win to denote forcefield objects
- check on the UI (panel with different size?)
- add 'recalc' button in deflector panel
OpenGL draw.
(BTW: the previous commit also solves raytrace errors with negative scaled
objects...)
Further a cleanup of displaylist flags and object/base flags. The #define
ACTIVE is moved to filesel.c (only used here).
The GONNA_MOVE #define got a OB_ added in front.
The Image texture repeat options, now allow a "Checker" repeat. With
odd and even tiles set separately, and a size button to set a
'Mortar' inbetween tiles.
http://www.blender3d.org/cms/Render_engine_features.215.0.html
Also fixed bug: using 'CalcAlpha' option for image textures didn't give
antialised edges for image.
bytes for RGB.
This to allow very bright contrasted images to be used for AO as well. As
a first start also the Texture->Colors panel now allows contrast setting
up to 5.0 (was 2.0).
- fixed two warnings, unused var in Object.c and undeclared function in script.c
- updated Blender.Draw doc, it was missing info about Button object
- refactored pytype initialization to try to fix for once platform (and distro!) specific crashes on startup. This asked for tiny updates in Effect.[ch] (removed static from declaration, moved definitions to the .c file) and modules.h
- fixed error I made trying to fix scripts w/ no [eol] char in menus. Thanks Michael Velikanje for reporting the problem!
played (= packedfiles opened and copied to another block) these
packed data blocks where not freed.
The error showed in console at closing of Blender, like:
read_struct len: 24 0x1c4423c
Problem: when appending data, it called the local_all() function, which
indeed made all data local, including all other dynamic linked data.
Not very nice... but mixing dynamic & appending data from single file is
headcrunching code.
Solution: when appending data, it now only makes local_all() the data from
that specific library file, leaving dynamic data from other files linked.
(Bug report 1183)
mesh_add_normals_flags()
Basically this abuse was only for normals and draw flags. For huge imports
the editmode hack is far too slow.
Now added to vrml importer. Hos can check for his stl work!
- AO energy slider to control amount
- option "Use sky color" for colored AO. The horizon color will define
bottom diffuse color, the zenith works on top
- option "Use sky texture" will do a full sky render to define AO color
Please note that AO energy and color only is found when a ray does not
intersect. So for interior scenes make sure 'Dist' value is sufficient
low.
New also is:
- World "Map input" allows "Ang Map" (Angular mapping) which can be used
for 360 degree spherical maps, aka as Light Probes. Check samples here:
http://www.debevec.org/Probes/
Note that Blender doesn't support HDRI images yet, but option "Use sky tex"
already gives intersting results with such images
- World sky rendering with Image Textures now correctly filters and uses
antialiasing. Also noticable for raytrace mirror reflections
- World preview render for sky type "Real" now gives correct view as
defined by current used camera.
I tried to speed up AO tracing with coherence systems, none of it really
worked yet... time to tackle octree itself i guess!
When more than 30 scenes are in a scene, the sequencer "Add" option didnt
show a databrowse window.
This was a nasty one, because databrowse facilities are more-of tied to
having a header. The fix is that I added option to IDnames_to_pupstring()
to not limit the menu (by passing NULL for menu short pointer).
Also noticed a bug with pupmenu_col(), which did return on a val==0 event
(mouse release) which shouldn't be, this makes sequences of menus not
possible.
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
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.
- 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..
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
Basically this provides three new things:
1. Choice of a list of noise-base functions, which can be used by the
current Clouds, Marble, Wood textures as well.
2. Three new texture types: Musgrave, Voronoi and DistortedNoise
3. Python access to noise functions (not for render!)
All of this together makes Blender's builtin procedural textures a LOT
more powerful. Here again, a full webpage should be made to show off all
possibilities, and explain some of the more scientific names for settings.
A good read on Musgrave textures can be found here:
http://www.ypoart.com/Downloads/Musgrave.htm
About Voronoi:
http://www.ypoart.com/Downloads/Worley.htm
I can't find official DistortedNoise docs easily... maybe its something
Eeshlo created himself.
I've spent some time to change the patch Eeshlo provided. Worth noting:
- created main texture "Musgrave" with 5 sub choices (instead of 5 new
main textures)
- added for all new textures the option to scale (zoom in out)
- added patch in do_versions to initialize variables
I hope the Python team will check on the Noise.c API. And include in docs!
binary subformats, and writes the binary subformat. Read is done with
usual F1, write is done in the menu 'File->Export Selected->STL'. Writes
meshes only, writing the 'displistmesh' if subsurf is on. The 'magic'
to determine whether it is reading the binary or ASCII subformat
could use a little work, but makes the correct choice most of the time.
[SCons] Build with Solid as default when enabling the gameengine in the build process
[SCons] Build solid and qhull from the extern directory and link statically against them
That was about it.
There are a few things that needs double checking:
* Makefiles
* Projectfiles
* All the other systems than Linux and Windows on which the build (with scons) has been successfully tested.
- added mesh_set_smooth_flag, mesh_delete_material_index function
- isolated some globals
- got rid of reliance on meshdata in buttons_editing.c and material.c
(MVert,MFace,etc) off into DNA_meshdata_types.h, to isolate areas
of source that actually edit mesh *data* vs. areas that just edit
mesh object information.
* Created a MESH_MAX_VERTS macro in DNA_mesh_types.h
* fixed vert limit for converting displistmesh ==> mesh
* fixed vert limit when doing boolean operations
of zr). This struct was never written to file and the new 'int based'
MFace can be used in it's place. Some removal of redundant code could
perhaps be done now (I didn't do any though, just "s/MFaceInt/MFace/").
different objects shouldn't share flags this way (still sharing of
other mesh flags in renderer... ickity pickity, but I'm not fixing now)
- removed some unnecessary uses of DNA_mesh_types.h
* Blender static now links. By default this option is disabled on all
platforms. Simply set the option in config.opts to 'true'.
* Added the following flags to config.opts:
- HOST_CC. This is the C compiler for the host platform. This value is the
same as TARGET_CC when not cross compiling.
- HOST_CXX. This is the C++ compiler for the host platform. This value is
the same as TARGET_CXX when not cross compiling.
- TARGET_CC. This is the C compiler for the target platform.
- TARGET_CXX. This is the C++ compiler for the target platform.
- TARGET_AR. This is the linker command for linking libraries.
- PATH This is the standard search path
All SConscript files have been updated to reflect these changes. Now it's
possible to change only the root SConstruct file, and all compiler specific
variables are passed automatically to all SConscript files. Of course, this
does not apply to makesdna because there the host and target platform is
different from all other libraries.
To pass a variable that applies to all platforms, all we now have to do is
set the correct value in library_env
Note: as usual, to get the latest options in the config.opts file, first
remove your version.
* Removed the I18N_DEFINES from the config.opts file. This define is not a
user setting. The defines depend on what options the user enables in the top
of the config.opts file (USE_INTERNATIONAL).
* Moved the defines to the correct SConscript files.
Only the relevant libraries now use these defines.
* Windows fix for the python settings. There were missing brackets [ and ] for
these settings.