Skip to main content

New Page

Vectors describe positions or directions within a coordinate space.
Matrices describe how to transform vectors from one space to another.

[ Xaxis.x  Yaxis.x  Zaxis.x  Tx ]
[ Xaxis.y  Yaxis.y  Zaxis.y  Ty ]
[ Xaxis.z  Yaxis.z  Zaxis.z  Tz ]
[   0        0        0      1 ]

A 4×4 transformation matrix is made up of:

  • 3 direction vectors (X, Y, Z axes — orientation)

  • 1 position vector (T — translation)

  • 1 extra row that supports homogeneous coordinates

Action Result
Set w = 1 Vector becomes a position → gets full matrix transform (T * R * S)
Set w = 0 Vector becomes a direction → skips translation
Divide by w Converts clip space → NDC (perspective divide)
Store something in w Use w as a packed value (for instancing, motion, etc.)

YES — asking what is a basis means you’re ready to understand all of 3D spacebuilding and matrix logic. Let’s break it down clearly, intuitively, and practically for tech art 👇


What Is a Basis?

A basis is a set of vectors that define a coordinate space.
It tells you:

  • Where the origin is

  • What direction X, Y, Z go

  • What "1 unit" means in each direction

It’s like building a mini coordinate system — your own local grid.


✅ Example: Standard Basis in 3D

The default basis in world space is:

X = (1, 0, 0)
Y = (0, 1, 0)
Z = (0, 0, 1)

This is called an orthonormal basis:

  • Each axis is unit length

  • Each axis is perpendicular to the others

This is what Unity uses for world space, object space (by default), and more.


🧩 Why Is a Basis Useful?

A basis lets you build your own space inside another space.

You can:

  • Rotate it (to align to a surface)

  • Scale it (to stretch/compress space)

  • Offset it (with a position = origin)

  • Pack it into a matrix → for transforming vectors


🧱 Basis = The Building Blocks of a Matrix

In a transformation matrix, the 3 main columns are your basis vectors:

[ Right  Up  Forward  Position ]
[   X     Y     Z        T     ]

So:

  • The first 3 columns = your basis vectors (local X, Y, Z)

  • The 4th column = your new origin (translation vector)

✅ A matrix is just a basis with a location.


🧪 Real Tech Art Examples

Use CaseBasis Involved?What It Does
Tangent space normal mapsTBN basisConverts normals from UV space to world space
Custom pivot controlCustom basisReorients local X/Y/Z axes
Surface alignment shaderBasis from world normalsBuilds a local space aligned to geometry
Procedural animationCreate and apply basisBones, aim constraints, etc.
BillboardingRebuild basis using cameraRotate object to face view direction


✅ A basis is a set of vectors that define a space's axes.
A matrix = basis + position.
You use it to move, rotate, or remap things between spaces.

  • Identity Matrix

    • Does nothing when applied to a vector.

    • Basis for understanding other transformations.

    • Represents standard world coordinates.

  • Uniform Scaled Matrix

    • Modify all diagonal values equally.

    • Scales objects equally in all directions.

    • E.g., 0.5 on all diagonal entries = mesh is scaled down by half.

  • Axis Scaled Matrix

    • Change individual diagonal values independently.

    • Scales the object along specific axes.

    • E.g., a 3 in the X-axis = stretches object 3x in X only.

  • Mirror (Reflection) Matrix

    • Multiply a diagonal entry by -1 to mirror on that axis.

    • E.g., -1 in X = flips mesh on the X-axis.

  • Matrix with Normalized Basis

    • Basis vectors (matrix columns) are unit length and orthogonal.

    • Often used for pure rotation without scaling.

    • Each axis remains perpendicular and consistent in size.

  • Matrix with Non-Orthogonal Basis

    • Columns are not perpendicular.

    • Causes skewing—object axes are no longer at right angles.

  • Matrix with Non-Normalized Basis

    • Basis vectors may differ in length.

    • Can scale along arbitrary axes (not just X, Y, Z).

  • Rotation Matrices

    • Represented by changing off-diagonal values (not just diagonal).

    • Rotate vectors in space while maintaining their magnitude.

  • Matrix Interpretation Tip

    • Think of each matrix column as defining a new space axis.

    • Multiplying a vector by a matrix expresses it in that new space.

Let me know if you’d like a diagram or Unity version of any of these!