Log In
New Account
Home My Page Projects Blender 2.x BF release
Summary Activity Tracker SCM Files

Blender 2.6 Bug Tracker: Browse

[#31935] Two equivalent shader which use "add shader" yield different results

Date:
2012-06-26 12:22
Priority:
3
State:
Closed
Submitted by:
Yasuhiro Fujii (y-fujii)
Assigned to:
Brecht Van Lommel (blendix)
Category:
Rendering: Cycles
Status:
Todo / Closed
Relates to:
Duplicates:
Patches:
 
Summary:
Two equivalent shader which use "add shader" yield different results
Detailed description
The two equivalent shaders described below yield different results.
The bug is reproduced on both 2.63a and r48298 SVN, with CPU rendering.

The shader at the left of the attached image:
AddShader {
GlassBSDF{ RGB = 0.8, 0.0, 0.8 }
GlassBSDF{ RGB = 0.0, 0.8, 0.0 }
}

Right:
GlassBSDF{ RGB = 0.8, 0.8, 0.8 }

Followup

Message
  • Date: 2012-06-29 11:11
  • Sender: Sergey Sharybin
  • Brecht, could you please look on this? Thanks!
  • Date: 2012-07-02 12:12
  • Sender: Yasuhiro Fujii
  • Additional information:

    0. This problem seems to be independent from following condition.
    - IOR value
    - bounce limit
    - connection order of the add shader input.

    1. Mix shader also has this problem.

    2. Glossy BSDF also has this problem.
    - Glass BSDF, sharp distribution: incorrect, magenta-tinted (attached image)
    - Glossy BSDF, sharp distribution: incorrect, magenta-tinted but incorrect region is small.
    - (Glass|Glossy) BSDF, (Beckmann|GGX) distribution, roughness = 0.0: incorrect, green-tinted
    - (Glass|Glossy) BSDF, (Beckmann|GGX) distribution, roughness = 0.01: correct, good convergence

    Is this bug due to numerical instability?
  • Date: 2012-09-28 17:20
  • Sender: Brecht Van Lommel
  • Looked into this, and it's actually noise that you are seeing here. If you see the minimum bounces higher, it will converge faster and you can see it becoming less purple, but still very slow. The high IOR and number of bounces mean that the path tracer has difficulty finding all paths, this would work better with e.g. a bidirectional path tracer.

    There might be a way to make the sampling more clever here, and in this simple case we could do an optimization to merge the two closure, but would not consider this a bug, rather a todo item.
 

Attached Files:

Name Date Download
equiv-shaders.png 2012-06-26 12:22 Download
equiv-shaders.blend 2012-06-26 12:22 Download

Changes:

Field Old Value Date By
status_idOpen2012-09-28 17:20blendix
close_dateNone2012-09-28 17:20blendix
StatusNew2012-09-28 17:20blendix
assigned_tonone2012-06-29 11:11nazgul
File Added21268: equiv-shaders.blend2012-06-26 12:22y-fujii
File Added21267: equiv-shaders.png2012-06-26 12:22y-fujii