What you will get
- Understand why rotating normal-map pixels alone produces incorrect lighting.
- Apply one aligned transform to a complete PBR texture stack.
- Choose the correct normal convention and export a traceable ZIP package.
Core Material Workflow
Rotate albedo, normal, roughness, metallic, AO, height, emissive, opacity, packed, and custom maps as one aligned PBR set while transforming tangent-space normal vectors and OpenGL or DirectX Y conventions correctly.
A base-color image can be rotated by moving pixels because each pixel still means the same color after it changes location. A tangent-space normal map is different. Its red, green, and blue channels encode a local surface direction. Red represents the tangent X axis, green represents tangent Y, and blue represents the direction away from the surface. If the image rotates but those directions do not, the visual feature and the lighting field disagree.
That disagreement can be subtle under flat environment light and obvious under a moving key light. Mortar seams may brighten from the wrong side, brushed grain may respond as though it runs in the old direction, and dents can appear skewed. Correct rotation therefore has two parts: move every texel to its new location and rotate the decoded tangent vector by the same screen-space angle.
The browser tool performs that sequence only on files assigned the Normal role. Albedo, roughness, metallic, AO, height, emission, opacity, packed masks, specular, glossiness, and custom maps remain ordinary image data because their channels describe color or scalar values rather than a tangent-space direction.
PLAYTEX AI defines positive input angles as clockwise on the image canvas. After normalizing the input convention into a canonical Y-up tangent basis, the transformed components are X prime equals cosine theta times X plus sine theta times Y, and Y prime equals negative sine theta times X plus cosine theta times Y. Z is carried through the rotation, and alpha remains untouched.
For a 90-degree clockwise turn, the formula simplifies to X prime equals Y and Y prime equals negative X. For a 90-degree counterclockwise turn, X prime equals negative Y and Y prime equals X. A 180-degree turn negates both X and Y. These formulas are why a normal-safe rotator cannot be replaced by a generic image rotate command.
OpenGL and DirectX labels describe how tangent Y is encoded, not a different physical surface. The tool first decodes either convention into the same canonical basis. It then rotates the vector and finally encodes Y for the requested output. That order avoids mixing convention conversion with the actual spatial transform.
A material is a coordinated set of signals. Rotating only albedo and normal leaves roughness highlights, metallic regions, AO cavities, height relief, emissive masks, or opacity cutouts in the old location. The result may still load, but it no longer describes one surface. This is why the tool applies one angle and framing mode to the entire loaded set.
Packed maps deserve the same discipline. An ORM texture may store occlusion in red, roughness in green, and metallic in blue. Rotation must move the texel but must not swap those packed channels. Assigning the Packed ORM or RMA role makes that intent explicit while preserving the stored channel layout.
Output dimensions also belong to alignment. A 90-degree rotation swaps width and height for a non-square image. A custom angle can require a larger bounding rectangle. Expand Canvas keeps the complete result; fixed framing center-crops it. Whichever choice you make, apply it to the whole set and verify the reported dimensions before download.
A transformed material is easier to trust when the package explains itself. The generated manifest lists every input and output file, its assigned role, original and transformed dimensions, the signed clockwise angle, the input and output normal conventions, the vector formula, and whether renormalization was enabled. This is useful evidence during review and a practical hook for later automation.
The precision note matters as much as the transform record. Browser Canvas output is 8-bit per channel. That is common for base color, masks, packed maps, and tangent-space normals, but it is not a substitute for a 16-bit or floating-point height master when the material depends on fine displacement range. Use the rotator for delivery-grade 8-bit sets and keep higher-precision sources in a compatible desktop pipeline.
Finally, import the rotated package into the destination shader and move a directional light across it. A correct file transform is necessary, but engine import flags, normal conventions, compression, color-space settings, UV orientation, and shader bindings still determine the final result.
These controls define the spatial operation shared by every map in the material.
These controls affect files assigned the Normal role; all other map roles remain ordinary image data.
These settings control the files handed to the next tool or engine.
Rotate albedo, normal, roughness, metallic, AO, height, emissive, opacity, packed, and custom maps as one aligned PBR set while transforming tangent-space normal vectors and OpenGL or DirectX Y conventions correctly.
Add the individual images or one ZIP. Include every map bound to the material, not only the base color and normal, because roughness, metallic, AO, height, emission, opacity, and packed channels must remain spatially aligned.
Filename detection recognizes common albedo, normal, roughness, metallic, AO, height, emissive, opacity, ORM or RMA, specular, glossiness, and custom labels. Correct any ambiguous role manually. Only files assigned Normal receive tangent-space vector math.
Use 90 degrees clockwise, 90 degrees counterclockwise, 180 degrees, or a custom clockwise angle. Expand Canvas preserves the complete rotated rectangle; turning it off keeps the original dimensions and center-crops content that extends outside them.
Choose OpenGL Y+ or DirectX Y- for the input, then keep that convention or convert it on output. Renormalization is useful after custom-angle interpolation; cardinal rotations do not change vector length by themselves.
Switch through the map tabs, compare source and result orientation, verify the output dimensions, then download the synchronized PNG or WebP set. Keep manifest.json when another artist or build step needs the exact angle, convention, and filename record.
The texture features moved but the tangent-space X and Y directions stored in red and green did not. The renderer therefore shades the rotated groove or bump as though it still pointed in the original direction.
After decoding the input Y convention, a 90-degree clockwise transform uses X prime equals Y and Y prime equals negative X. A 90-degree counterclockwise transform uses X prime equals negative Y and Y prime equals X.
No. Flipping green converts the tangent Y convention between Y+ and Y-. Rotation mixes or negates both X and Y according to the chosen angle. The tool can perform both operations in one canonical calculation.
A mathematically exact cardinal rotation preserves vector length, but image interpolation at custom angles can shorten decoded vectors. Renormalization restores unit length after that sampling step.
Yes. Packed channel data is spatially rotated without color interpretation, so AO, roughness, metallic, or other masks remain in their original channels and stay aligned with the rest of the set.
No. Browser decoding, canvas transforms, vector processing, previews, and ZIP creation happen locally on the device.
Open the live workflow that this guide is documenting.
PBR Map Generator: Create Normal, Roughness, AO, Height, Metallic, and Emission MapsTurn one viable image, procedural source, or hybrid source into a coherent map stack, review every channel as part of one material system, and export for the renderer you actually use.
What Is a Normal Map? How It Works and When to Use OneUnderstand how tangent-space direction data changes lighting across a low-detail mesh, when normal maps are the right tool, and how to avoid strength and Y-axis mistakes during engine import.
Image to Texture: Convert a Photo into a Seamless TextureExtract a usable surface from a photo, scan, artwork crop, or generated reference; correct the source problems first; then tune seamless reconstruction while protecting the material character.