- Instead of defining such defines for the entire codebase in Blender.py, add
the right checks and definitions to the places where it matters.
- Only check+set WITH_BULLET instead of also GAMEBLENDER=1
- NOTE: No global defines allowed in BlenderLib.
Additions/Features...
- Painting onto multiple images at once.
- Clone with an offset similar to the gimp, also an option to clone between UV layers, (not both offset and between layers atm)
- Stencil layer, similar to The Gimp's quickmask.
- Face mask mode - (painting onto only selected faces).
- Texture brushes (so image and texture-node brushes too)
- Seam bleed so you don't see gaps when painting over UV seams (new option set in the panit panel)
- Occlusion (only point onto the first face under the paintbrush, can also be used for masking out parts of the model to paint onto) - (new option set in the paint panel)
- Muti-threaded, each thread operates on its own bucket.
- Support partial updates to speedup OpenGL texture refreshing.
- Support tile based multiple undo's
- Support float image buffers.
- Backface culling (new option set in the paint panel)
- All color blending modes - Add/Multiply.. etc.
- Airbrush rate. (used to be broken)
- Improve the way paint is mixed when painting, so painting with 0.2 alpha will not accumulate above 0.2 alpha on the image as you paint.
- Option to use normals to fade out strokes on the edge of a surface to avoid ugly edges. (same as Vertex Paints "Normal" option)
Known Problems
- Not directly related to painting but changes in selection flags are not updated on the final derived mesh.
- Smear tool has some distortion when in perspective mode.
- While in perspective view any faces with 1 vert behind the viewpoint, will be completely ignored.
- Painting can be initially slow while buckets are being initialized, a number of solutions exist.
- Size 1 brushes don't work yet.
- When painting onto large faces its still possible to get artifacts.
- Spatial optimizations are needed to skip occluded faces and test pixel occlusion. (will look into using blenders BVH )
* pixels with <= the current opacity are not painted onto, speeds up painting especially with low spacing. (only when airbrush is disabled)
* use qsort rather then own crufty sorting function
* grouped projection painting functions together.
* Fixed another face clipping bug (some artifacts still when using screen aligned faces)
* Removed Soften and Warp buttons on the panit panel since they are not used for projection painting
* added do_versions to initialize bleed and normal values
* float buffer support for all painting operation and undo.
* only run brush_sample_tex() for textures brushes.
* redraw the brush outline even when nothing is painted.
Robin (Frrr) Allen did a decent job on this, so we can also welcome him
as a member in the svn committers team to maintain it!
I do the first commit with some minor fixes:
- get Makefiles work
- fix rounding issue with tiles on unit faces
- removed UI includes from tex node
A nice doc in wiki is here:
http://wiki.blender.org/index.php/User:Frr/TexnodeManual
On the todo for Robin is:
- When using one or more Texture-input nodes, you cannot edit them by activating
(as works now for Material nodes).
- The new "output node" option fails on the default case, when only one
output node is active. It then shows often a blank menu. Will get fixed asap.
- When using a NodeTree-Texture as input node, the menu for 'active output'
should not show. NodeTree should ignore other nodetrees to keep things sane
for now.
- On a future todo is proper usage of "Dxt" and "Dyt" texture vectors for
superior antialising of checkers/bricks.
General note; I know people are dying to get a full integrated shader system
with nodes. In theory we could merge this with Material Nodetrees... but I
rather wait for a solid and very well thought out design proposal for this,
also including design ideas for unifying with a shader language (GPU, CPU).
For the time being this is a nice extension of current textures. :)
* When making a proxy, the lib linked IPO driver was also changed to
point to the proxy object, and after undo this local proxy object
was replaced so the pointer became invalid. In fact it is not needed
at all to change this because the IPO code maps the pointer to the
local proxy object already.
* Undoing the make proxy operation would crash because the proxy_from
pointer in the library linked object would still point to the removed
object. Now it clears all these pointers before undo, because on each
undo memory file read they will be set again anyway.
Enable soft body collision clusters by default.
Add option to 'disable collision' button between soft body and rigid body connected by constraint (option was already available between two rigid bodies)
Definitely one of the oldest bugs ever (1995 or so).
Case is a path (child on path, or deformer, or motion modifier) where the
child is far away from path (300 units or so). In that case you can see
the path jumping to another position a bit after a few frames.
Reason:
For interpolating path positions, I was using bspline code still having a
very ancient constant 0.1666f.
Floats have higher precision, like 0.16666666. That solved it :)
Playanim now works for:
- tiff, cineon, dpx, hdr, exr
Only multilayer not, that's too much for a bugfix. Multilayer is a totally
different image format, handled separately.
ALso removed redundant printing for dpx/cineon.
And fixed crash in cineon when G.scene doesnt exist. Bad bad, should
not be there!