Page MenuHome

Weird bake results with non integer color values
Closed, ResolvedPublic


System Information
Win7 64
Geforce GTX 960

Blender Version
Broken: (example: 2.77 RC2)

Short description of error
Baking Diffuse and Glossy channels we get weird results when your color need to use the float precision.

Baking with color (1,0,0) in Diffuse BSDF Node:

Baking with color (1,0.1,.01) in Diffuse BSDF Node:

That bug seams to happen too with the Glossy pass using Glossy BSDF Node.

Exact steps for others to reproduce the error
Change the current active node conected to the output
Change the pass that you want to bake.
Check the results

Event Timeline

Vitor Balbio (vitorbalbio) raised the priority of this task from to 90.
Vitor Balbio (vitorbalbio) updated the task description. (Show Details)
Vitor Balbio (vitorbalbio) edited a custom field.

I can't reproduce the issue on OSX rBec99778 (master - own build)

I'm still getting this problem here with both GPU and CPU render.
Win7 x64
GTX 960 4GB
rev 02cabda

Another .blend example with this problem. Just change the Diffuse Node, bake and check the results. I could confirm that this problem was happening in Blender 2.76 also.

Does it happen every single time? Or is it only eventually?

Bastien Montagne (mont29) lowered the priority of this task from 90 to 30.Mar 12 2016, 12:00 PM

Every single time.
Also why that was marked as "Incomplete"? It seams a very completed report to me.

Bastien Montagne (mont29) raised the priority of this task from 30 to Normal.Mar 15 2016, 3:52 PM

Incomplete also means 'waiting further info from reporter'…

You are only baking indirect light component which is not supposed to have any color information in it. So your expectation of wrong and correct baking results are inverted.

Will commit fix which makes sure light pass gets properly divided by color shortly.

I can reproduce it on Debian.
But the patch doesn't fix the problem.
Before the patch the direct light was buggy.
After the patch the indirect light is buggy.

@Sergey Sharybin (sergey) As I understand it indirect light has to carry color information from surface to surface.
About direct light I'm not sure. It was something like object color + AO, as I remember.
I'm sure @Brecht Van Lommel (brecht) will correct me.

Indirect looks correct to me. It's still red, but that's because it's only showing light reflected off red surfaces. If you place the object in an environment with different colored surfaces those colors will show up in the indirect pass too. Direct light can have colors too if you use colored lamps.

Seems that baking produces wrong results only for the RGB(1; 0; 0) diffuse color case.
The intermediate values are ok.

That's what Sergey's commit is supposed to fix, are you sure you're using a build with the fix included? The ones on don't include the fix yet.

Yes I compiled it myself, hash 89df672.
Hmm, thats strange: To produce correct indirect diffuse color, all RGB channels have to be non-zero.
If only one channel is non-zero then the result is always grey. (although there are different colored objects that should reflect their light onto the baked object)
Can someone confirm this?

Sorry for the noise. I came to the conclusion that my understanding of correct and incorrect is wrong.