(From mantis bug tracker, reported by Bachi)
Triangle::GetShadingGeometry compute shading coordinate system by interpolating given per-vertex normal/tangents, and use the axes of the shading frame as the dpdu/dpdv values in the returned DifferentialGeometry.
However, the magnitude of dpdu/dpdv is lost due to normalization, and this will affect bump mapping calculation since it depends on the magnitude of dpdu/dpdv.
One way to fix this is to separate dpdu/dpdv and shading coordinate system in the DifferentialGeometry structure.
(From mantis bug tracker, reported by Bachi)
Triangle::GetShadingGeometry compute shading coordinate system by interpolating given per-vertex normal/tangents, and use the axes of the shading frame as the dpdu/dpdv values in the returned DifferentialGeometry.
However, the magnitude of dpdu/dpdv is lost due to normalization, and this will affect bump mapping calculation since it depends on the magnitude of dpdu/dpdv.
One way to fix this is to separate dpdu/dpdv and shading coordinate system in the DifferentialGeometry structure.