diff --git a/include/viennaray/rayReflection.hpp b/include/viennaray/rayReflection.hpp index 1bf09a5..c232244 100644 --- a/include/viennaray/rayReflection.hpp +++ b/include/viennaray/rayReflection.hpp @@ -60,8 +60,13 @@ template // (https://math.stackexchange.com/a/182936) std::uniform_real_distribution uniDist; - assert(maxConeAngle >= 0. && maxConeAngle <= M_PI / 2. && - "Cone angle not allowed"); + if (maxConeAngle <= 0.) { + return ReflectionSpecular(rayDir, geomNormal); + } + + if (maxConeAngle >= M_PI_2) { + return ReflectionDiffuse(geomNormal, rngState); + } Vec3D direction; // compute specular direction