After some digging through the Blender source code, I found the answer.
Short answer: They're just Bézier curves.
Long answer: They're normal Bézier curves with certain restrictions placed on the positions of the handles (the red circles). If the first handle is to the left of the second handle, as in the following image, then the curve is evaluated as a ...
An easier way to roll a ball downhill is to use rigid bodies. This way, the active objects are subject to the scene gravity.
For this, you will want two rigid bodies, one active and one passive. The active one will be the ball, the passive will be slope.
Add rigid body physics to each object in the physics tab:
These are the settings for the ball:
It's right under your nose ;-) They are a member of the "Bezier Spline" family called an "F-curve," shortened from "Ferguson's Parametric Cubic Curves."
The F-curve is actually a direct derivative of the Catmull-Rom Spline (names you should recognize from other CGI algorithms). As stated in the introductory research an f-curve:
"attempts to fix the ...
To modify the vectors that define the curve, you can press the V key (or select Key > Handle type)
That will allow you to align the handles into a straight line, making a smoother transition between two vectors.
I'll post another answer since this one will actually solve your problem (I hope). Use this script to set the interpolation of each and every one of your "Image Texture" nodes to "Closest" :
for mat in bpy.data.materials:
if not mat.node_tree:
for node in mat.node_tree.nodes:
if node.type == '...
Let's look at what the two mean and create examples. Our example image will be this (enlarged) $2\times2$ pixel grid:
Linear: In spaces between other pixels, there is a linear gradient of the two mixing colors:
Cubic: In spaces between other pixels, there is a cubic (also called Ease) gradient between the two colors:
When we compare the linear and cubic ...
Use offset factor of follow path constraint.
Use the offset factor of follow curve constraint.
Test script, select the curve in object mode and run script.
context = bpy.context
scene = context.scene
curve_obj = context.object
spline = curve_obj.data.splines
bpy.ops.mesh.primitive_ico_sphere_add(size=0.05, location=(0, 0, 0))
sphere = ...
No, you can't adjust the bounce interpolation.
However, there are manual ways to progress from your state.
Select the two encasing keyframes and press ShiftO (2.7x) or ShiftAltO (2.8x) to sample frames between them, reset their interpolation type to Bezier afterwards. You can now manipulate them as you wish. Note, that this is also important as the down ...
The gradient is linear but not in the colourspace you are expecting - as evidenced by the following :
Here the Attribute node is making the Vertex Color (Col) available to the shader. This is split into separate RGB components and compared with the Generated 'X' coordinate (which runs from 0.0 at the left to 1.0 at the right of the cube).
The gradient is ...
In general, you cannot access data from some other sample than the one you're evaluating. Not in Blender. (This is someplace where I wish we had partial derivatives to work with in shaders....) So you can see the vertex color or location of a sample, but not of two samples, not of some sample and some particular vertex, etc.
One reason vertex color doesn'...
That's not too hard actually:
I just move the UV coordinates around.
Create a seamless background image. Left and right borders should match.
UV-Map it on a plane that fills your background.
Use the Node Editor for the material and create this node setup:
The texture coordinates are provided to a Vector Math node. There, I am adding both vectors together, ...
The first tip is that pressing T will apply the interpolation to every selected keyframe.
First, to simplify the graph editor, hide curves you aren't working on.
It would appear that you want to do this to every third keyframe, so select all won't help. We have the common selection options in the graph editor.
B to box select keyframes
C to circle select ...
The problem is that you're using Quaternion (WXYZ) Rotation, which is the default setting for bones in Pose Mode. Set the Rotation method to XYZ Euler and animate the Y Rotation from 0° to 360°.
You should also set the last keyframe with 360° on frame 101 instead of 100 if you want a looped animation from frames 1-100, because 0° = 360° and the animation ...
In 3D animation tools I've used, the key difference is that animation curves as shown in the graph editor are not actually 2D Bézier splines. They're 1D splines, parameterized by time (plotted along the X axis in the graph editor).
When you use splines to create curves in 2D or 3D, the spline has a parameter t that runs from 0 to 1 along its length, and the ...
@eromod's hint was the solution.
I created a huge ovoid (an icosphere that I compressed on one axis for an additional hump on the other axis),
aligned it carefully manually,
extended the original top surface in top direction,
applied a boolean modifier with "Intersect" operation,
and did a bit afterwork on the mesh.
Please leave a comment if there's ...
You are not supposed to be changing Extrapolation mode, that is used for "extending" or repeating an animation after the last keyframe, as far as I know.
You are supposed to change the handle types, instead.
Select all your keyframes with A and then press V Set Keyframe Handle Type > Vector
It's not exactly what you're asking for, but maybe it can help : there is an (integrated) addon, Simplify Curves. It reduces the number of keyframes, preserving the general shape of the curve.
Activate the addon (search "simplify" and click the checkbox next to "Add Curve: Simplify Curves")
Select your F-curves
type Spacebar then "simplify", select "...
The settings in the N region only apply to the active keyframe (usually the one selected last).
To change the interpolation for all selected keyframes, press Header > Key > Interpolation Mode in the graph editor header, or press T while hovering over the graph editor.
As far as I know you can't modify the default setting easily but you can use a simple node group to force the behaviour wherever you want to use your image texture node :
Related : https://blender.stackexchange.com/a/168033/86891
While can't see how you do it, here is how i do it:
You frame all the wanted keyframes including their handles
Either go in the menu on top or use the context menu with RMB to change the
Here also a visual step by step:
Should this not work with your version, please explain where it differs from this.
In the Dope Sheet you can select one or more keyframes, right click on it and select the interpolation of the segments following the selected keyframes.
You can choose between ease in, ease out, ease in and out, and then choose between various interpolation rates (linear, sinusoidal, quadratic, cubic, ....., bounce, overshoot, elastic).
In 2D grease pencil ...
If you only need grayscale data to be used in shader nodes, here's an ugly workaround - use alpha channel instead.
In your script I set the alpha values to 0.25 and 0.75 respectively and using a greater than 0.5 node visually confirmed that the alpha channel is interpolated lineary.
Perhaps other attributes could be used as well, like UV.
I'm afraid a ...