Page MenuHome

linear interpolation issues of alpha masked normal map
Closed, ResolvedPublic


System Information
Operating system: Linux-4.13.10-041310-generic-x86_64-with-debian-stretch-sid 64 Bits
Graphics card: GeForce GTX 1050/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 390.67

Blender Version
Broken: version: 2.80 (sub 68), branch: master, commit date: 2019-05-13 19:09, hash: rB27d097e92d54
Worked: 2.80 (sub 68), branch: master, commit date: 2019-05-12 22:25, hash: rB`05f1451d7248`

Short description of error
Alpha masked normal maps, that use linear interpolation cause strong visible aliasing since `rB27d097e92d54'.
Using the new alpha input of the principled PBR shader produces the same result.

To me it looks like the transparent pixels are ignored by the linear interpolation, and instead transparent pixels are treated like some default(white/black/grey?) color.
This worked flawlessly in the past, where thhe transparent pixels in the texture I'm using are normal colored (128, 128, 255) and are treated as such by the interpolation.

video demo

In the attached zip you can verify the texture is properly created and has in fact normal colored transparent pixels.

Exact steps for others to reproduce the error

  • load the blend from the zip in 05f1451d7248 or older and in rB27d097e92d54 or newer
  • compare the artefacting at the transparent border

Event Timeline

MACHIN3 (MACHIN3) updated the task description. (Show Details)
MACHIN3 (MACHIN3) updated the task description. (Show Details)
MACHIN3 (MACHIN3) updated the task description. (Show Details)
MACHIN3 (MACHIN3) updated the task description. (Show Details)

I suspect rB7ad802cf3ae5 is the reason.
@Brecht Van Lommel (brecht) Is there any solution, that doesn't involve having to unpack the alpha channel in a separate image?

Duplicating the existing texture node (so they're both using the same png) and hooking them up separately seems to work.

That is interesting Will, thanks for pointing that out. I wonder why this happens.

Actually, changing the color space to linear on a single texture node also seems to work.