Cycles: Fix rays parallel to the surface in the triangle refine and MultiGGX code
authorLukas Stockner <lukas.stockner@freenet.de>
Mon, 25 Jul 2016 14:02:25 +0000 (16:02 +0200)
committerLukas Stockner <lukas.stockner@freenet.de>
Mon, 25 Jul 2016 14:14:25 +0000 (16:14 +0200)
commitd9cc3ea2c6e8cfd17612c35a82050cb01d8070ec
tree3177efff3295dbd890c17eb36befa828dba2157b
parent83ae0a0e068d1bac498722aea3ee7dbfad3b151f
Cycles: Fix rays parallel to the surface in the triangle refine and MultiGGX code

In the triangle intersection refinement code, rays that are parallel to the triangle caused a divide by zero.
These rays might initially hit the triangle due to the watertight intersection test, but are very rare - therefore, just skipping the refinement for them works fine.

Also, a few remaining issues in the MultiGGX code are fixed that were caused by rays parallel to the surface (which happened more often there due to smooth shading).
intern/cycles/kernel/closure/bsdf_microfacet_multi.h
intern/cycles/kernel/geom/geom_triangle_intersect.h