White Noise(shader) with GN attributes issue #92699

Open
opened 2021-11-01 06:28:37 +01:00 by Mill Yang · 26 comments

System Information
Operating system: Windows-10-10.0.18362-SP0 64 Bits
Graphics card: NVIDIA GeForce GTX 1050 Ti/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 471.68

Blender Version
Broken: version: 3.0.0 Beta, branch: master, commit date: 2021-10-27 22:07, hash: b838eaf2b9
Worked:

Short description of error
GN output face "id" can be used as factor for White Noise in a shader.
While in Orthographic view it works as expected, in perspective 3D view it has some issues.
Render is same as viewport (eevee & cycles).
GN attributes in whitenoise shader.jpg

Exact steps for others to reproduce the error

  • Open attached file
  • When using Eevee there's a difference between User Perspective (broken) and User Orthographic (not broken) views
  • Cycles will work correctly in both

Fixed file: white noise with GN attributes1105-fixed.blend

[Original]
white noise with GN attributes.blend

**System Information** Operating system: Windows-10-10.0.18362-SP0 64 Bits Graphics card: NVIDIA GeForce GTX 1050 Ti/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 471.68 **Blender Version** Broken: version: 3.0.0 Beta, branch: master, commit date: 2021-10-27 22:07, hash: `b838eaf2b9` Worked: **Short description of error** GN output face `"id"` can be used as factor for `White Noise` in a shader. While in Orthographic view it works as expected, in perspective 3D view it has some issues. Render is same as viewport (eevee & cycles). ![GN attributes in whitenoise shader.jpg](https://archive.blender.org/developer/F11652952/GN_attributes_in_whitenoise_shader.jpg) **Exact steps for others to reproduce the error** - Open attached file - When using Eevee there's a difference between User Perspective (broken) and User Orthographic (not broken) views - Cycles will work correctly in both Fixed file: [white noise with GN attributes1105-fixed.blend](https://archive.blender.org/developer/F12494984/white_noise_with_GN_attributes1105-fixed.blend) [Original] [white noise with GN attributes.blend](https://archive.blender.org/developer/F11652648/white_noise_with_GN_attributes.blend)
Author

Added subscriber: @Mill-Yang

Added subscriber: @Mill-Yang

#93919 was marked as duplicate of this issue

#93919 was marked as duplicate of this issue
Member

Added subscriber: @PratikPB2123

Added subscriber: @PratikPB2123
Member

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

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

Hi, thanks for the report. I am not able to reproduce this on master: 1e749d0602700f175d70eac75f510512fc3b8b42

Broken: version: 3.0.0 Beta, branch: master, commit date: 2021-10-27 22:07,

Please try again with fresh builds: https://builder.blender.org/download/daily/

Exact steps for others to reproduce the error

Are there any specific steps for reproducing the issue?
Does the issue happen with factory settings? {nav File > Defaults > Load Factory Settings}

(Not sure if this is related to #92652 (Attribute capture causes flickering in render (Geometrynodes))

Hi, thanks for the report. I am not able to reproduce this on master: `1e749d0602700f175d70eac75f510512fc3b8b42` > Broken: version: 3.0.0 Beta, branch: master, commit date: 2021-10-27 22:07, Please try again with fresh builds: https://builder.blender.org/download/daily/ > Exact steps for others to reproduce the error Are there any specific steps for reproducing the issue? Does the issue happen with factory settings? {nav File > Defaults > Load Factory Settings} (Not sure if this is related to #92652 (Attribute capture causes flickering in render (Geometrynodes))
Author

Hi, I tried it with the last build, and rest factory setting.
The issue is still there, and i notice that eevee and cycles' color not match.

GN attributes in whitenoise shader_update1.jpg
test same render, only the 4th setting is clean.
white noise with GN attributes.blend
update the blender file, add a camera and arealight for render. frame 1 is Perspective , frame 2 is Orthographic.

(Not sure if this is related to #92652: Attribute capture causes flickering in render (Geometrynodes)

BTW, I think it's not related Attribute capture. I use Fill Attribut to output the attributes in 2.93.5, and can see the same issue .

Hi, I tried it with the last build, and rest factory setting. The issue is still there, and i notice that eevee and cycles' color not match. ![GN attributes in whitenoise shader_update1.jpg](https://archive.blender.org/developer/F11655316/GN_attributes_in_whitenoise_shader_update1.jpg) test same render, only the 4th setting is clean. [white noise with GN attributes.blend](https://archive.blender.org/developer/F11655382/white_noise_with_GN_attributes.blend) update the blender file, add a camera and arealight for render. frame 1 is Perspective , frame 2 is Orthographic. >(Not sure if this is related to #92652: Attribute capture causes flickering in render (Geometrynodes) BTW, I think it's not related Attribute capture. I use Fill Attribut to output the attributes in 2.93.5, and can see the same issue .
Member

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

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

Hi, still I am not able to reproduce with EEVEE.

Sometimes artifacts like this can be fixed by upgrading the driver. Can you please also check that?: https://docs.blender.org/manual/en/3.1/troubleshooting/gpu/windows/nvidia.html

(Also: I can see some changes when switching to Cycles but not quite sure about the reason so I will leave this for others to triage)


System Information

Graphics card : AMD Radeon(TM) 535 ATI Technologies .```
Hi, still I am not able to reproduce with EEVEE. Sometimes artifacts like this can be fixed by upgrading the driver. Can you please also check that?: https://docs.blender.org/manual/en/3.1/troubleshooting/gpu/windows/nvidia.html (Also: I can see some changes when switching to Cycles but not quite sure about the reason so I will leave this for others to triage) --- **System Information** ```Operating system : Windows-10-10.0.18362-SP0 64 Bits Graphics card : AMD Radeon(TM) 535 ATI Technologies .```
Author

Hi, I changed another computer (nvidia RTX 2060, driver is upgraded) , can see the same issue. Maybe the Nvidia card problem?
Sorry for wasting your time, I can't do any more.
And thansks


System Information
Operating system: Windows-10-10.0.19041-SP0 64 Bits
Graphics card: NVIDIA GeForce RTX 2060/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 472.39

Blender Version
Broken: version: 3.1.0 Alpha, branch: master, commit date: 2021-11-01 19:48, hash: 75f5edcaf3

Hi, I changed another computer (nvidia RTX 2060, driver is upgraded) , can see the same issue. Maybe the Nvidia card problem? Sorry for wasting your time, I can't do any more. And thansks --------------------------------- **System Information** Operating system: Windows-10-10.0.19041-SP0 64 Bits Graphics card: NVIDIA GeForce RTX 2060/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 472.39 **Blender Version** Broken: version: 3.1.0 Alpha, branch: master, commit date: 2021-11-01 19:48, hash: `75f5edcaf3`

Added subscriber: @mano-wii

Added subscriber: @mano-wii

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

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

I also can't replicate the problem in:
Operating system: Windows-10-10.0.22000-SP0 64 Bits
Graphics card: Radeon (TM) RX 480 Graphics ATI Technologies Inc. 4.5.14760 Core Profile/Debug Context 20.45.37.01 27.20.14537.1001

You said: "Render is same as viewport (eevee & cycles)".
Does this mean that the problem is seen in both Eeeve and Cycles?
If so, it's very unlikely that the problem is GPU-dependent.

Please try the latest daily build: https://builder.blender.org/download/

Go to File → Defaults → Load Factory Settings and then load your file to see if you still can reproduce this issue.

If the problem persists, please give us more clear instructions on how to reproduce it from scratch.

I also can't replicate the problem in: **Operating system:** Windows-10-10.0.22000-SP0 64 Bits **Graphics card:** Radeon (TM) RX 480 Graphics ATI Technologies Inc. 4.5.14760 Core Profile/Debug Context 20.45.37.01 27.20.14537.1001 You said: "Render is same as viewport (eevee & cycles)". Does this mean that the problem is seen in both Eeeve and Cycles? If so, it's very unlikely that the problem is GPU-dependent. Please try the latest daily build: https://builder.blender.org/download/ Go to File → Defaults → Load Factory Settings and then load your file to see if you still can reproduce this issue. If the problem persists, please give us more clear instructions on how to reproduce it from scratch.
Author

I tested the lastest daily build and use the Factory setting . Still can see the problem .

Oh , I find the problem!

  1. Create a plane, in edit mode ,duplicate the face(one or two times).

2.Create Geometry Nodes on the plane, use Capture Attribute output the face index, name it as 'id' in modify panel.

3.In Spreadsheet we can see the 'id' have two number(0 and 1 or more) for the separate face in 'Vertex' domain.

  1. Give plane a material , set the shader like the append blendr file.

  2. Now we can see the issue on the duplicated faces in viewport .

  3. Back to Geometry Node, insert a "Add Math" node before the output Attribute . Add more then 1 value, now the every face show the issue.

Maybe the output attribute value bigger then 1 makes the issue.

GN attributes in whitenoise shader_update2.jpg
white noise with GN attributes1105.blend

I tested the lastest daily build and use the Factory setting . Still can see the problem . Oh , I find the problem! 1. Create a plane, in edit mode ,duplicate the face(one or two times). 2.Create Geometry Nodes on the plane, use Capture Attribute output the face index, name it as 'id' in modify panel. 3.In Spreadsheet we can see the 'id' have two number(0 and 1 or more) for the separate face in 'Vertex' domain. 4. Give plane a material , set the shader like the append blendr file. 5. Now we can see the issue on the duplicated faces in viewport . 6. Back to Geometry Node, insert a "Add Math" node before the output Attribute . Add more then 1 value, now the every face show the issue. Maybe the output attribute value bigger then 1 makes the issue. ![GN attributes in whitenoise shader_update2.jpg](https://archive.blender.org/developer/F11726617/GN_attributes_in_whitenoise_shader_update2.jpg) [white noise with GN attributes1105.blend](https://archive.blender.org/developer/F11726553/white_noise_with_GN_attributes1105.blend)

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

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

Added subscriber: @deadpin

Added subscriber: @deadpin

Changed status from 'Needs Triage' to: 'Confirmed'

Changed status from 'Needs Triage' to: 'Confirmed'

I am able to confirm this issue using Eevee and after making some modifications to the file to correct a few things. I'll modify the repro steps in the next message.
Changes required:

  • The Attribute needs to be set to the "Face" domain since the attributes were captured from Faces. It was set incorrectly to Point and that caused issues even with Cycles
  • The 'id' name is reserved and shouldn't be used as it will result in incorrect usage as well.
I am able to confirm this issue using Eevee and after making some modifications to the file to correct a few things. I'll modify the repro steps in the next message. Changes required: - The Attribute needs to be set to the "Face" domain since the attributes were captured from Faces. It was set incorrectly to Point and that caused issues even with Cycles - The 'id' name is reserved and shouldn't be used as it will result in incorrect usage as well.
Member

Added subscriber: @JacquesLucke

Added subscriber: @JacquesLucke
Member

I think this issue has nothing to do with the Mesh Island node. Instead I guess that it is caused by floating point inaccuracies when the attribute is interpolated across the surface. Even though it is an integer attribute, eevee and cycles probably handle it as float internally. The white noise node is extremely sensitive to very small changes in the input. So even if the lowest significant bit of the float changes, the output color of the white noise node changes.

I think that is more a known issue than a bug. Here is how the issue could be resolved:

  • Avoid doing any math operations on the attribute value to interpolate it across the surface. This means that the attribute domain should be set to "Face".
  • Don't use a node that is as sensitive to input changes as the White Noise texture. For example the normal Noise node with a large scale value would have the same effect as the White Noise texture here, but it would still be less sensitive to changes because points that are very close to each other have very similar noise values. Note that a 1D noise should be used for best performance.

I wasn't able to reproduce the issue in eevee, or at least I didn't see it. Not sure if the same solutions apply there.

image.png

I think this issue has nothing to do with the Mesh Island node. Instead I guess that it is caused by floating point inaccuracies when the attribute is interpolated across the surface. Even though it is an integer attribute, eevee and cycles probably handle it as float internally. The white noise node is extremely sensitive to very small changes in the input. So even if the lowest significant bit of the float changes, the output color of the white noise node changes. I think that is more a known issue than a bug. Here is how the issue could be resolved: * Avoid doing any math operations on the attribute value to interpolate it across the surface. This means that the attribute domain should be set to "Face". * Don't use a node that is as sensitive to input changes as the White Noise texture. For example the normal Noise node with a large scale value would have the same effect as the White Noise texture here, but it would still be less sensitive to changes because points that are very close to each other have very similar noise values. Note that a 1D noise should be used for best performance. I wasn't able to reproduce the issue in eevee, or at least I didn't see it. Not sure if the same solutions apply there. ![image.png](https://archive.blender.org/developer/F12727000/image.png)
Member

Added subscribers: @Bradley_G, @CharlieJolly, @HooglyBoogly

Added subscribers: @Bradley_G, @CharlieJolly, @HooglyBoogly
Philipp Oeser removed the
Interest
EEVEE & Viewport
label 2023-02-09 15:13:15 +01:00
Member

Just want to chime in, since I just closed my report #119061 as duplicate.
There is a difference in that in my example I was using a vector as the attribute data instead of an integer in a attempt to avoid the interpolation. I understand that in case of interpolation it can't be guaranteed to have an exact match down to the bit, but I'm wondering why that is even the case when an interpolation wouldn't be necessary.

I guess Eevee still does some interpolation float3 to float3 in some way (?). In Cycles this doesn't happen for vector face attributes.

Just want to chime in, since I just closed my report #119061 as duplicate. There is a difference in that in my example I was using a vector as the attribute data instead of an integer in a attempt to avoid the interpolation. I understand that in case of interpolation it can't be guaranteed to have an exact match down to the bit, but I'm wondering why that is even the case when an interpolation wouldn't be necessary. I guess Eevee still does some interpolation float3 to float3 in some way (?). In Cycles this doesn't happen for vector face attributes.
Member

I don't think it's the interpolation of data types-- it's the interpolation across triangles giving slightly different values to the white noise node

I don't think it's the interpolation of data types-- it's the interpolation across triangles giving slightly different values to the white noise node

Right, float interpolation on GPU side produce extremely small fluctuations. So only way to make such thing, is to use face domain.
Not sure why this is confirmed issue, its expected.

Right, float interpolation on GPU side produce extremely small fluctuations. So only way to make such thing, is to use face domain. Not sure why this is confirmed issue, its expected.
Member

Right, but what I'm saying is that neither attribute data type nor domain should result in interpolation for a vector attribute on the face domain, no? Or are you saying that there is interpolation between the triangles of a face?

Right, but what I'm saying is that neither attribute data type nor domain should result in interpolation for a vector attribute on the face domain, no? Or are you saying that there is interpolation between the triangles of a face?
Member

My point is that the data type is unrelated. This is about the barycentric interpolation within each triangle. Maybe there is a way to avoid it, but I'm not sure. Ideally it wouldn't happen, I agree.

My point is that the data type is unrelated. This is about the barycentric interpolation within each triangle. Maybe there is a way to avoid it, but I'm not sure. Ideally it wouldn't happen, I agree.

It is how rasterization are works..

It is how rasterization are works..
Hans Goudey added
Type
Known Issue
and removed
Type
Report
labels 2024-03-05 14:57:42 +01:00
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
9 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#92699
No description provided.