This is 'ported' from Nicholas Bishop's sculpting GSoC tree. I'm bringing it
over now so a) it can be there for when lukep does his GHOST refactor b) it's
something that GHOST should have anyway, particularly now there's interest in
painting tools and c) it's missing support in Windows, so hopefully now some
enterprising Windows coder can add that more easily in the main bf tree.
Right now X11 and Mac OS X are supported. I added and can maintain the Mac OS X
part, but I'm not familiar with the Xinput stuff, which Nicholas wrote. Both
X11 and Mac are collecting active device and pressure, and Mac is also
collecting x and y tilt data. Up to coders how they want to use this info! :)
Although the data's coming in, I haven't actually made this do anything. I
thought it best to leave it to brecht to figure out what he wants to do with the
painting stuff, and I wonder what other interesting uses there could be for it
(proportional edit?). I'll write implementation details in a separate mail to
the committers list.
Everyone else was using gzip. On the latest downloads many of them
are using bzip2, (I think everyone using scons)
So I decided to update make release so that everyone is using
gzip2. I don't mean to step on anyones toes, I know at least some of
the platform maintainers do not use make though so feel free to change
it back and or to something different for your platform.
While I was at it I also changed default path of OPENEXR to /usr on linux.
Was suggested on mailing list by Matt.
(I'm pretty sure the linux maintainer is using scons)
Kent
locations are: smart, middle, v1, and v2
where smart is an attempt to generate a loc that will collapse without loosing volume.
This can now collapse a subdivided cube properly.
before funky stuff like IPO bezier curve fitting etc are added.
* Fixed problem with zero length bones being removed.
* Sped up import by writing to ipo curves rather then inserting keyframes
* detect linear rate of change and ommit unneeded ipo points.
* cleanup
moment, but they can useful so rather than let them go to waste I've merged and
committed them.
* Camera Info
Input, just provides a view vector, view z depth, view distance
* Scalar Math
A bunch of various mathematical operations on values
* Vector Math
A bunch of various mathematical operations on vectors
- pending commit for OSX intel systems, with intel graphics. These now call
an extra swapbuffers after glFlush(). Code is ifdeffed, and doesnt affect
other systems.
- show-off commit: option to have transparent nodes over the composite
result. Only draws Image for active Viewer Node now, and image doesnt
translate nor zoom (which isnt bad though).
Set in themes the alpha color of "node backdrop" to make nodes
transparent.
- ImagePaint now uses ImBuf directly, and the rect blending functions
were moved into the imbuf module.
- The brush spacing, timing and sampling was abstracted into brush.c, for
later reuse in other paint modes.
Float ImagePaint support.
Textured Brushes:
- Only the first texture channel is used now.
- Options for size and offset should be added, but need to find some space
in the panel, or add a second one ..
Added better docscrings
Added a texture baker for procedural textures,
Its able to make a WYSIWYG image from the texture, by using the texmesh property, so texture coords arnt lost up when flattening the mesh.
Use a high res image not to see any seams
* Combine RGBA
Basically the opposite of separate RGBA, brings 4 value channels into a single
RGBA image). Has interesting possibilities for reordering channels, when used
with separate RGBA!
* Dilate/Erode
Originally written by Brecht van Lommel, with some minor modifications and
tweaking by myself. Positive distances dilate, negative distances erode.
* I also added the 'value' field to the hue/saturation node. Minimal extra cost,
and can be handy.
Some optimizations and Ctrl will escape the script properly if you want to skip merging the islands.
Thanks to Melchior FRANZ for the report and debug blend
- bake wire
- bake image
- bake vcol
- bake normals
Fitting all the options for these into 1 PupBlock was not good.
An example of 4 different baking made from these scripts
http://members.iinet.net.au/~cpbarton/temp.png
* NMesh to Mesh
* Optimized vertex importing
* Import NGons properly and make them blender FGons
* lots of other small updates
image_bake_from_uvs - ignore meshes without faceUV's
bvh2arm was for importing empties in a BVH, direct bvh armature import should be good for next release. and Iv removed the Old bvh importer anyway.
Will add a slot in the imaeg meny for image scripts, renamed scripts to go there.
Added options to use material colors (can be multiplied with vcol)
Added wire option for UV Export type functionality. (implys no bleeding)
Added Option to render with no oversampling
changed alpha blending
- Code for brush spacing and timing was rewritten, making spacing more even.
Example: http://users.pandora.be/blendix/brush_spacing.jpg
- Instead of Stepsize for regular brushes and Flow for airbrushes, there is
now Spacing for both, and Rate for airbrushes.
- Airbrush now works more like it does in the Gimp now, by maintaining the
spacing even if the brush moves faster than the painting rate.
- Some preparations to make brushes work in texture paint mode.
vec.normalized()
mat.inverted()
mat.transposed()
made vec/float possible
normalize/invert/transpose now return None because they modify the data in place.
use the ...(ed) versions to return a modified copy.
Fixed Memory leaks from not decreffing PyFloat_AS_DOUBLE from these python functions...
(found when testing above functions)
ob.rbMass
ob.rbRadius
matrix.determinant()
quat*float
vec*float
matrix.transpose()
EXPP_setModuleConstant
Checked all instances of PyFloat_AS_DOUBLE so I dont think there are any mroe leaks there.
- Added a new Brush datablock, only used by image paint, but intended
to be used in texture paint, vertex paint, weight paint and sculpt
mode also.
- Being a datablock, these brushes can be saved, appended and linked.
They have a fake user by default, to make sure they are saved even if
not selected.
Image Painting:
- Replaced the img module with C code in imagepaint.c
- Airbrush is no longer a separate tool, but rather an option that can
be used for soften, smear and clone also.
- Blend modes mix, add, subtract, multiply, darken and lighten have been
added, code taken directly from vertex paint.
Note to project files maintainers:
- The img module was removed from SCons and Makefiles, and this should
be done in other build systems also. I'll wait to remove the module
from cvs, to not break compilation.
Multiplication of 3D vectors by 4x4 matrices converts the vector to 4D but
did not make the vector homogenous. Fixing that so the translation part of
the matrix will also be applied.