CANDIDATE POINT VECTORS

The next step is to calculate vectors to what we call the Candidate Points. These are the actual positions of the values for perlin noise we want to generate.

In some cases, it might be good to imagine the grid of vectors as a coordinate system, where each grid vector is at a grid vertex (x=1,2,3... & y=1,2,3...). In this coordinate system, each of our candidate points sits in between the coordinate grid.

For example our candidate point might be at (x=1.3, y=0.4), and it is surrounded by the grid vectors at coordinates (1,0), (1,1), (2,0), (2,1). Each of these 4 grid points have an associated random unit vector from the previous step, but we won't worry about these until the next step.

The Candidate Point Vectors are the vectors which will point at the candidate point from each of the surrounding grid points. In our example above, there are four surrounding grid vertexes, and so there will be four candidate point vectors, one from each of these vertexes pointing to the candidate point.

This of course is dependent on the dimensionality of noise you are generating. For example in 3D space there would be 8 surrounding grid vertices, and therefore 8 surrounding candidate point vectors (forming a cube surrounding the point).

Each of these surrounding vertices has a vector created which points towards the candidate point. Now, each candidate point has 4 surrounding normalised grid vectors, and 4 surrounding candidate point vectors (in 3D this would be 8 each, in 4D it would be 16 each, in 5D space it would be 32 each etc.).

CANDIDATE POINT & VECTORS DEMO
Candidate Point: Vector A (Top Left): Vector B (Top Right): Vector C (Bottom Left): Vector D (Bottom Right):