PBR Texture-Set Rotator: rotate normal maps correctly

Transform a complete PBR texture set in one browser pass. Tangent-space normal vectors rotate with the pixels instead of being treated like ordinary color.

Open the PBR texture-set rotator · Read the normal-safe rotation guide

How do you rotate a PBR texture set correctly?

Apply the same spatial angle and framing mode to albedo, normal, roughness, metallic, AO, height, emissive, opacity, packed, and custom maps. For tangent-space normal files, also rotate the decoded red and green X/Y vector components so the new texture orientation and lighting direction stay aligned.

For a 90 degree clockwise rotation in a canonical Y-up tangent basis, X prime equals Y and Y prime equals negative X. The tool decodes OpenGL Y+ or DirectX Y- before this math and encodes the requested convention afterward.

Aligned map-stack rotation

Rotate albedo, normal, roughness, metallic, ambient occlusion, height, emissive, opacity, packed, specular, glossiness, and custom maps together

Correct tangent-space vectors

Transform tangent-space X and Y normal vectors for cardinal or custom-angle rotations

OpenGL and DirectX conversion

Decode OpenGL Y+ or DirectX Y- normals and optionally convert the exported convention

Local ZIP handoff

Keep files local in the browser and export the complete result as a ZIP with a JSON manifest

How to rotate texture maps together

  1. Add the complete material set. Choose multiple image maps or one ZIP. Filename detection assigns common PBR roles, and every role can be corrected manually before processing.
  2. Choose one shared rotation. Pick 90 degrees clockwise, 90 degrees counterclockwise, 180 degrees, or enter a custom angle. Expand the canvas when a non-square or custom-angle result should not be cropped.
  3. Confirm tangent-space normal settings. Select the input Y convention, choose the output convention, and decide whether interpolated vectors should be renormalized. Scalar and color maps receive only the spatial transform.
  4. Preview each transformed map. Switch through the loaded map tabs to compare source and result dimensions, orientation, transparency, and the visible normal-map direction before export.
  5. Download the synchronized set. Export PNG or WebP files in one ZIP. The optional manifest records the rotation, map roles, normal conventions, dimensions, and generated filenames.

Browser format and precision limit

The local Canvas workflow exports 8-bit PNG or WebP. Keep 16-bit and floating-point height or displacement masters in a precision-preserving desktop pipeline when that extra range is required.

PBR Texture-Set Rotator FAQ

Why can’t I rotate a normal map like a regular image?

A tangent-space normal map stores direction in its red and green channels. Rotating only the pixels moves the surface features but leaves those directions pointing the old way. The rotator spatially moves the pixels and rotates the decoded X and Y vectors by the same angle.

What happens to a normal map during a 90 degree clockwise rotation?

In a canonical Y-up tangent basis, the tool applies X prime equals Y and Y prime equals negative X. It decodes the selected OpenGL or DirectX input convention before this transform, then encodes the requested output convention.

Which PBR maps can I rotate together?

The tool recognizes albedo or base color, normal, roughness, metallic, ambient occlusion, height or displacement, emissive, opacity, packed ORM or RMA, specular, glossiness or smoothness, and custom maps. Every loaded image receives the same spatial transform.

Does the tool upload my texture maps?

No. Image decoding, previews, normal-vector processing, and ZIP creation happen locally in the browser. The files are not sent to PLAYTEX AI for rotation.

Can it convert OpenGL normals to DirectX normals?

Yes. Set the input convention to OpenGL Y+ or DirectX Y-, then choose the other convention for output. Conversion and rotation happen in one canonical tangent-space calculation.

Does browser export preserve 16-bit height maps?

No. This browser workflow uses Canvas 2D and exports 8-bit PNG or WebP. Keep a 16-bit or floating-point height source in a dedicated image or material editor when that precision is required.