Skip to content

fix: use transformedNormalView for MRT to fix InstancedMesh normals#1282

Merged
braedonsaunders merged 1 commit into
mainfrom
claude/fix-triangle-artifacts-Yghw8
Feb 3, 2026
Merged

fix: use transformedNormalView for MRT to fix InstancedMesh normals#1282
braedonsaunders merged 1 commit into
mainfrom
claude/fix-triangle-artifacts-Yghw8

Conversation

@braedonsaunders

Copy link
Copy Markdown
Owner

The root cause was using normalView instead of transformedNormalView for MRT output. Plain normalView doesn't account for instance matrix transformations (Three.js #18497), causing incorrect normals for InstancedMesh decorations.

transformedNormalView properly handles:

  • Instance matrix rotations
  • Skinning transformations
  • Morph target modifications

This fixes the triangular artifacts on decorations when SSAO/GTAO is enabled, as GTAO now receives correctly transformed normals.

Also reverted forced normal recomputation - use original GLTF normals instead.

https://claude.ai/code/session_012kqvccEiiHNQHAjUEoposi

The root cause was using `normalView` instead of `transformedNormalView` for
MRT output. Plain normalView doesn't account for instance matrix transformations
(Three.js #18497), causing incorrect normals for InstancedMesh decorations.

transformedNormalView properly handles:
- Instance matrix rotations
- Skinning transformations
- Morph target modifications

This fixes the triangular artifacts on decorations when SSAO/GTAO is enabled,
as GTAO now receives correctly transformed normals.

Also reverted forced normal recomputation - use original GLTF normals instead.

https://claude.ai/code/session_012kqvccEiiHNQHAjUEoposi
@braedonsaunders braedonsaunders merged commit 41a118c into main Feb 3, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants