This commit ports Hue Saturation Value node to the material node system.
Unlike in composite version, each value is an input. Composite node version
will be updated later to use the same scheme.
for shading if their 'visibility factor' is below 0.001. This
gives no perceptible visual difference in my tests, but can
significantly speed up shading when using lots of omni lights
with quad falloff over a large area. Since quad lamps never
actually fall off to 0, previously every lamp would be considered
for shading each pixel, even if such lamps had a tiny falloff
distance, and were miles away.
Submitted by: David Bryant
This patch adds 2 new drawtypes for empties (circle draws a 2d-circle on the x-z plane, and cube draws a regular cube), and allows empties to be used as custom bone shapes.
I've modified the patch a bit to fix up weird formatting, optimising the circle-drawing method, but the cube-drawing function has been maintained. In the process, I also moved the mesh-specific code in draw_object_instance to draw_object_mesh_instance so that empties can be used by whatever else might use draw_object_instance too.
=============================
- In textured drawmode it now draws the texture, with solid mode lighting.
- UVs and vertex colors for subsurf are not computed incremental yet, so
editing in textured drawmode then may not be as fast as the other modes.
Implementation Notes:
- Added textured drawing functions to the editmesh and subsurf derivedmeshes.
- Removed some unused, legacy subsurf code that directly used Mesh.
- Restructured texture drawing a bit to make it more clear and allow for
editmode drawing.
(Peach feature request)
replacing PyWeakref_NewProxy with PyWeakref_NewRef fixes this problem.
list(bpy.data.armatures) # would mess up weakrefs
[arm for arm in bpy.data.armatures] # didnt.
The "Strands" settings is a BlockBut and never return B_MATPRV like the others buttons, because of this,
never call BIF_preview_changed.
It's posible two fix for this:
1) make all the buttons into the "Strands" panel return B_MATPRV (this modify the "work mode" of the panel)
2) Add a call to BIF_preview_changed to the end of strands_menu function (as do_matbuts).
The problem with the first options, is that the panel "close" when you press/release some of the buttons, so
to preserve the current "work mode" of the panel, i choose the second option.
data = arm_ob.data
bones = arm_ob.data.bones.values()
Fixed by returning existing armatures if they exist in the weakref list. tested with FBX and BVH support.
* Grouped Up/Down buttons in constraint panel headers, and fixed their tooltips
* Removed unused variable from action editor code
* Minor formatting in constraint.c
This crash only occurred when the RigidBody constraint was used, and the toObject field was set to an armature, as the RigidBody constraint doesn't use subtargets.
This commit adds autocompletion and "red alert" feature to text input
fields (UV and VCol) of the Geometry material input node. The functionality
is similar to one found in UV part of the "Map Input" panel found in Material
buttons context of the Buttons Window.
Just a quickie feature I needed here at work- the previous linear
interpolation of tilt in curves can give nasty pinching problems
when trying to do flowing curves like a ribbon. This commit lets
you choose the interpolation type, between Linear, Cardinal, and
BSpline. The code was already set up for it pretty easily, mainly
needed to make the choice visible to the user.
Example:
http://mke3.net/blender/devel/etc/tilt_interp_types.png
Works on selected curve 'lines', menu in 'curve tools' panel in
edit mode.
These nodes allow the user to separate and combine RGB color channels
as in the composite node editor. However they don't contain Alpha
channel as it is treated separately in case of material nodes.
"Combine RGB" allows the user to use values beyond standard float range
([0.0, 1.0]) if value input node is used to feed the value to it.
Previously, the implementation of this was quite awkward, with
the preference swapping mouse buttons globally, rather than just
selection, as is advertised on the pref. This had the effect of
changing the painting in sculpt/texture paint/weight paint/etc to
the left mouse button. This was totally silly, since when using a
tablet, left mouse select is the sane way to go, but it meant
that every time you wanted to sculpt or paint, you had to switch
the mouse buttons around so you could actually use the tablet as
normal.
This commit fixes that, and makes the preference do just what it
says, use left mouse for selection (i.e. in object/edit mode) and
only that.
Tooltip getStringSize and getBoundingBox correction
Not really any user-visible changes here, but a nice clean-up of
internal font drawing functions, in this case used in tooltips.
Thanks!
This converts the Ipo editor and Timeline windows to use the BIF_
API for drawing international/antialiased text, following the user
preference or being drawn in Bitmap/Pixmap/Texture mode.
Thanks James!
Added a new event code (B_WORLDPRV2) that forces an update of the world buttons-window preview AND the 3d-view, instead of having only one of the two getting updated (with REDRAWVIEW3D or REDRAWBUTSSHADING)
This commit restores a few useful borderselect tools:
* When borderselect is activated while the mouse cursor is in the horizontal scrollbar, all the keyframes in that occur in the range of frames encompassed by the border get selected.
* When borderselect is activated while the mouse cursor is in the vertical scrollbar, all the keyframes, that occur in the channels that are within the border get selected.
* Insert Key (IKEY) menu was inserting keyframes on all channels when menu was dismissed, instead of not doing anything
* Clean IPO and Insert Key now only work on selected channels (when asked to). Was a missing line of code.
I've added the ability for PyConstraints to define a function (doDriver) that is able to directly modify values of the owner/target, so that certain setups can be created reliably. Users should take note that this is against the basic concept of what a constraint does, and that under no circumstances may they set the values of any variables controlling the transforms. For more details, check out the information in the PyConstraint template script.
I've also updated PyConstraints to be aware of geometry targets. The script template has been updated with this information.
This commit features fixes/improvements for problems I didn't manage to fix in time for the commit yesterday.
* Now for Meshes, the normals of the vertices in the VertexGroup are averaged and used to find the 'rotation' that needs to be applied. Unfortunately, this does not work with Lattices as they do not have normals.
* Depsgraph should now play nicely with geometry targets. Before, the constrained object's location wasn't being updated after the target's geometry was modified.
Add a new command line switch "--" for passing arguments to scripts.
Any arguments after -- are not processed and passed unchanged via
the usual argv mechanism.
Custom arguments can be accessed from a bpy script in python's
sys.argv. Example:
import sys
# slice argv after '--'
i = sys.argv.index('--')
my_args = sys.argv[i+1:]
It is now possible to use the geometry of Meshes and/or Lattices as the target of a constraint. All you need to do, is to create a new Vertex-Group and assign all the points that you wish to use as the target, then type that name into the VG: field for the relevant constraints.
One of the cases where this is beneficial is when you need to copy the location of a vertex. Now you don't need to make extra vertex-parents for that.
Additional Notes:
* The code takes the average of the locations of the nominated vertices, and puts that in world-space for constraint solving (and regular space-conversion stuff).
* Currently, rotation and scaling of points is not taken into account. The rotation/scaling used is from the object's matrix. Hopefully, this will only be a temporary problem (will be fixed soon)