Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Normal Mapping displays incorrect in Compatibility mode

Open
#1,533 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
48/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
cpp

Research direction

Start with the minimal reproduction project and compare the skinned mesh’s normal mapping in Compatibility and Forward+ modes, including the unrigged export. The issue points to normal-tangent basis generation for skinned meshes, but names no source files or tests; first trace that rendering path and check how bone transforms affect the basis. Done means animated, rigged meshes show matching normal-map behavior in Compatibility and Forward+.

Written by the indexing model from the issue text.

Description

bug topic:3d topic:rendering
Tested versions

Redot 4.4, Redot 26.3 stable, Godot 4.6.1

System information

Windows 10 - Geforce GTX 1660 - 16 GB ram - Intel Core I5 - Redot 26.3 Stable

Issue description

The skinned mesh renderer doesn't properly generate normal-tangent basis in Compatibility render mode. Meaning that normal bump mapping on bone animated characters doesn't look correct. Coordinate axes look to be flipped and not updated properly according to bone transforms
Video in Compatibility mode:
https://github.com/user-attachments/assets/50905a33-3dec-4e30-8e28-9fd18cccbc0e
Normal behavior in Forward+:
https://github.com/user-attachments/assets/a4ef34a7-7312-4618-a7f1-be8f171f105a
Picture, Compatibility:
Image
Picture of desired behavior, Forward+:
Image

Steps to reproduce

Import any character or mesh object with a skeletal rig and normal bump shader. Compare the results between Forward+ and Compatibility (also with same object, but exported without a rig). Ideally in a lit scene and with animated mesh (though issue should be evident even in rest pose)
The example assets with a scene:
normal map test.zip

Minimal reproduction project (MRP)

normal-bug-compatibility.zip

Dominant language
C++
Stars
6.1k
Forks
337
Avg merge
1d 51m
Merged PRs (30d)
41

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Redot-Engine/redot-engine

All issues in Redot-Engine/redot-engine

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.