Normal map node produces wrong result after reflection fix patch #56209

Closed
opened 2018-08-02 09:58:43 +02:00 by Yusuf Umar · 33 comments

System Information
Windows 10 64bit & Radeon RX 480

Blender Version
Broken: After this commit d6e769d32e
Worked: Before that commit

Short description of error
After patch D2574 merged, normal map node produces very inaccurate results. For example in this screenshots below.
Before patch:normal_map_before_patch.png
After patch:normal_map_after_patch.png
Normal map used:normal_map_.png
I know reflection fix can be useful in certain cases, but I think it should be optional. It can be a toggle or enum on the normal map node itself.

Blend file:
cycles_normal_map_bug.blend

**System Information** Windows 10 64bit & Radeon RX 480 **Blender Version** Broken: After this commit d6e769d32e79 Worked: Before that commit **Short description of error** After patch [D2574](https://archive.blender.org/developer/D2574) merged, normal map node produces very inaccurate results. For example in this screenshots below. Before patch:![normal_map_before_patch.png](https://archive.blender.org/developer/F4106045/normal_map_before_patch.png) After patch:![normal_map_after_patch.png](https://archive.blender.org/developer/F4106037/normal_map_after_patch.png) Normal map used:![normal_map_.png](https://archive.blender.org/developer/F4106049/normal_map_.png) I know reflection fix can be useful in certain cases, but I think it should be optional. It can be a toggle or enum on the normal map node itself. Blend file: [cycles_normal_map_bug.blend](https://archive.blender.org/developer/F4106067/cycles_normal_map_bug.blend)
Author

Added subscriber: @ucupumar

Added subscriber: @ucupumar

#100420 was marked as duplicate of this issue

#100420 was marked as duplicate of this issue

#67891 was marked as duplicate of this issue

#67891 was marked as duplicate of this issue
Yusuf Umar changed title from Normal map produces wrong result after reflection fix patch to Normal map node produces wrong result after reflection fix patch 2018-08-02 10:03:00 +02:00
Lukas Stockner was assigned by Bastien Montagne 2018-08-02 17:29:30 +02:00
Author

After D3816 patch, it still produce wrong result compared to Blender 2.79. I still think this reflection fix should be optional.
normal_map_after_newest_patch.jpg

After [D3816](https://archive.blender.org/developer/D3816) patch, it still produce wrong result compared to Blender 2.79. I still think this reflection fix should be optional. ![normal_map_after_newest_patch.jpg](https://archive.blender.org/developer/F5333856/normal_map_after_newest_patch.jpg)
Added subscribers: @EugenioPignataro, @dr.sybren, @NahuelBelich
Lukas Stockner was unassigned by Dalai Felinto 2019-12-23 16:36:03 +01:00

Added subscriber: @LukasStockner

Added subscriber: @LukasStockner

Changed status from 'Confirmed' to: 'Needs User Info'

Changed status from 'Confirmed' to: 'Needs User Info'

I can't reproduce this issue with the latest Blender (master @ be8879718e); I get the "before patch" result.

@ucupumar Please re-test this with the latest Blender build from https://builder.blender.org/ and let us know if this is still an issue. If it is, please provide clear steps to reproduce.

I can't reproduce this issue with the latest Blender (master @ be8879718e24e417d299eb298b8a9d4d2ca324ee); I get the "before patch" result. @ucupumar Please re-test this with the latest Blender build from https://builder.blender.org/ and let us know if this is still an issue. If it is, please provide clear steps to reproduce.
Author

I've already tested with the latest build and the bug is still there, you should render the scene using cycles.

I've already tested with the latest build and the bug is still there, you should render the scene using cycles.
Member

Added subscriber: @lichtwerk

Added subscriber: @lichtwerk
Member

Changed status from 'Needs User Info' to: 'Confirmed'

Changed status from 'Needs User Info' to: 'Confirmed'
Member

In #56209#549017, @ucupumar wrote:
After D3816 patch, it still produce wrong result compared to Blender 2.79. I still think this reflection fix should be optional.
normal_map_after_newest_patch.jpg

@dr.sybren: I am also seeing the above ^
So will confirm, not sure though if this should be classified a bug?

note: since this is about ensure_valid_reflection, this is also an issue with it #57109 (Flickering artifacts in (animated) DOF areas)

> In #56209#549017, @ucupumar wrote: > After [D3816](https://archive.blender.org/developer/D3816) patch, it still produce wrong result compared to Blender 2.79. I still think this reflection fix should be optional. > ![normal_map_after_newest_patch.jpg](https://archive.blender.org/developer/F5333856/normal_map_after_newest_patch.jpg) @dr.sybren: I am also seeing the above ^ So will confirm, not sure though if this should be classified a bug? note: since this is about `ensure_valid_reflection`, this is also an issue with it #57109 (Flickering artifacts in (animated) DOF areas)
Author

@lichtwerk I think it still classified as bug since it's a wrong normal result for a standard 3d application. Currently there's no way to get correct normal map value using cycles. My suggestion is to give checkbox on normal map node to use correct normal map or normal map with reflection fix.

@lichtwerk I think it still classified as bug since it's a wrong normal result for a standard 3d application. Currently there's no way to get correct normal map value using cycles. My suggestion is to give checkbox on normal map node to use correct normal map or normal map with reflection fix.

Removed subscriber: @dr.sybren

Removed subscriber: @dr.sybren

I'll defer to the Cycles team for further handling of this.

I'll defer to the Cycles team for further handling of this.

Added subscriber: @rowvn

Added subscriber: @rowvn

Added subscriber: @mmoeller

Added subscriber: @mmoeller

Added subscriber: @Aeraglyx

Added subscriber: @Aeraglyx

Hi, just wanted to say it's still an issue in some cases. For example when you use Bump node to get a derivative of something and use that value for a math operation. In that case you need the actual normal.
Or to give a concrete example, there's a method for even line thickness using Bump node - which only works in Eevee (as Luca Rood and Kolupsy noticed) because of this.

Untitled Project_Untitled Project_blender_sInYFt_2021-05-23_03.09.35.png

So I agree with Yusuf - would it be possible to add something like a Limit Angle checkbox that's perhaps checked on by default?

Hi, just wanted to say it's still an issue in some cases. For example when you use *Bump* node to get a derivative of something and use that value for a math operation. In that case you need the actual normal. Or to give a concrete example, there's a method for even line thickness using *Bump* node - which only works in Eevee (as Luca Rood and Kolupsy noticed) because of this. ![Untitled Project_Untitled Project_blender_sInYFt_2021-05-23_03.09.35.png](https://archive.blender.org/developer/F10136500/Untitled_Project_Untitled_Project_blender_sInYFt_2021-05-23_03.09.35.png) So I agree with Yusuf - would it be possible to add something like a *Limit Angle* checkbox that's perhaps checked on by default?

Added subscriber: @MaxIT

Added subscriber: @MaxIT

This comment was removed by @MaxIT

*This comment was removed by @MaxIT*

Hi,

This has become a frustrating problem for me personally as a 3D creator.

Normal input reflections are not showing correctly in both EEVEE and Cycles.

It appears as though the normal reflections are not showing correctly for normal angles steeper than 45 degrees.

An example of this is to use a spherical normal map connected to the Principled BSDF normal input, and having only the metallic slider at full strength (fully reflective).

You will then see the reflections are not showing the outer 3rd of the spheres reflections correctly, or the normal reflections steeper than 45 degrees; much the same as the incorrect reflections seen in Yusuf Umar's images posted here showing incorrect reflections, only it becomes clearer when fully reflective with an HDRI environment.

The same results can be seen by procedurally generating spherical normal maps, or other shapes, such as a cylinder or sloped edge with some normal angles steeper than 45 degrees.

From testing, normal reflections are not showing correctly for versions 2.91.2 / 2.93.0 / 3.0 Alpha.

Would be great if this can be fixed.

PeteS

Hi, This has become a frustrating problem for me personally as a 3D creator. Normal input reflections are not showing correctly in both EEVEE and Cycles. It appears as though the normal reflections are not showing correctly for normal angles steeper than 45 degrees. An example of this is to use a spherical normal map connected to the Principled BSDF normal input, and having only the metallic slider at full strength (fully reflective). You will then see the reflections are not showing the outer 3rd of the spheres reflections correctly, or the normal reflections steeper than 45 degrees; much the same as the incorrect reflections seen in Yusuf Umar's images posted here showing incorrect reflections, only it becomes clearer when fully reflective with an HDRI environment. The same results can be seen by procedurally generating spherical normal maps, or other shapes, such as a cylinder or sloped edge with some normal angles steeper than 45 degrees. From testing, normal reflections are not showing correctly for versions 2.91.2 / 2.93.0 / 3.0 Alpha. Would be great if this can be fixed. PeteS

Yes, we've the same problem.
I made a water drops seamless,

2.79 cycles
Screenshot from 2021-07-23 12-05-56.png

2.79 blender engine
Screenshot from 2021-07-23 12-05-18.png

THANKS!!!!!

Yes, we've the same problem. I made a water drops seamless, 2.79 cycles ![Screenshot from 2021-07-23 12-05-56.png](https://archive.blender.org/developer/F10235035/Screenshot_from_2021-07-23_12-05-56.png) 2.79 blender engine ![Screenshot from 2021-07-23 12-05-18.png](https://archive.blender.org/developer/F10235034/Screenshot_from_2021-07-23_12-05-18.png) THANKS!!!!!

Added subscriber: @ParallelMayhem

Added subscriber: @ParallelMayhem

Added subscriber: @b5327157

Added subscriber: @b5327157

Added subscriber: @ThomasKole

Added subscriber: @ThomasKole

Added subscriber: @khana

Added subscriber: @khana
Member

Added subscriber: @EAW

Added subscriber: @EAW

Added subscribers: @pauanyu_blender, @iss

Added subscribers: @pauanyu_blender, @iss
Member

Added subscriber: @pragma37

Added subscriber: @pragma37
Philipp Oeser removed the
Interest
Render & Cycles
label 2023-02-09 13:58:13 +01:00
Member

Resolved by dfe7b839bc

Resolved by dfe7b839bc
Blender Bot added
Status
Archived
and removed
Status
Confirmed
labels 2023-03-22 11:34:52 +01:00

@weizhen is it fixed?
The diffuse looks right but the specular still working weird, the problem in the droplets remains, its not possible to make it look right if difuse works properly but specular doesn't
image

@weizhen is it fixed? The diffuse looks right but the specular still working weird, the problem in the droplets remains, its not possible to make it look right if difuse works properly but specular doesn't ![image](/attachments/ef89cbf3-df1d-4ff3-89ef-7605ecc4d601)
592 KiB
Member
@NahuelBelich Please refer to https://projects.blender.org/blender/blender/issues/95729#issuecomment-905927
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
20 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#56209
No description provided.