Page MenuHome

Tangent shader - shadow biases badly
Closed, ArchivedPublic


Machine: Hewlett packard Pavilion 6133sc
Processor: Q6600 - 2.4 Ghz Core 2 Duo Quad
Ram: 8 GB
OS: Ubuntu Linux 8.04 - latest updates - 64 bit.
Blender: 2.48a SVN

Severe render artifacts using the TANGENT Shading option,
especially with rounded, smoothed bevels. Creates some
sort of zig-zag bounce pattern that is impossible to "bias" or
"ajust" away, no matter what shader used.

Please see included example on image (top of pot)
Also - please render closeups of the top corner of the pot (furthest
away, just zoom in on the included blend file - and render) and
the bug becomes even more apparent.

Problem 2:
There are also some ray shadow biasing issues (look at the blocky
shadows in the image example), Biassing has been used - and turned on
but to no effect.


To Do

Event Timeline

Nobody (None) closed this task as Archived.Oct 24 2008, 7:34 PM

Workaround 1: As mentioned in the release notes, when there's no UV layout present, to calculate the tangents, Blender uses a default Sphere unwrap, which seems to perform badly on your model. I'd recommend unwrapping the pot manually, either trying a Sphere or Cylinder unwrap, or by controlling the layout yourself, using the other unwrap tools. At least here you have a lot of control over the direction of the anisotropic effect.

Workaround 2: Blender's current 'tangent' speculars are quite physically incorrect and them not working with ray shadows is a known issue, that I'm not sure if it's possible to resolve. Two possibilities could be to a) subdivide the mesh a lot so the blockiness goes away or b) don't use speculars, but actually add white emitting planes to the scene in place of your lamps, so the glossy anisotropic reflection can reflect it to make 'real' highlights.

1) Yes, without UVs there's no direction info for the tangent, which is approximated then...

2) The terminator problem still is a problem :( for regular diffuse/specular it's solvable, but for extreme cases you see the shadow (correctly) as it derives from the actual faces in geometry. Micropolygons don't solve this either btw, you always ray-trace on a more lower resolution mesh. The literature advises to add a ray-offset per material to shift the boundary, which is a hack too. Still a very interesting topic to look at once...

1) Excellent - that solved that issue quickly and neatly.

2) Not understood - are you saying I should render Raytraces separately with a lower resolution mesh? That's interesting, I gotta know how to do that little trick except making two separate renders.

That actually would count for an interesting feature (If it isn't there already) to render shadows on different SubSurf-levels! O_O.

The 2) was only a theoritical case, we don't have that feature :)

I posted a patch for this issue (Patch [#26632]). The patch should allow us to get much more physically accurate pictures.

Please check it.

Updated the patch [#26632].

Can anyone test it?