diff options
Diffstat (limited to 'src/intersect/normals.cpp')
-rw-r--r-- | src/intersect/normals.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/intersect/normals.cpp b/src/intersect/normals.cpp index a5ffdbe..50d4af5 100644 --- a/src/intersect/normals.cpp +++ b/src/intersect/normals.cpp @@ -74,6 +74,15 @@ glm::vec3 getCubeNormal( return glm::vec3(0.f); } +glm::vec4 getSphereNormal( + glm::vec4 intersectPointObject) +{ + return {2.f * intersectPointObject.x, + 2.f * intersectPointObject.y, + 2.f * intersectPointObject.z, + 2.f * intersectPointObject.w}; +} + glm::vec3 RayTracer::getNormal( glm::vec4 intersectPointObject, const RenderShapeData& shape, @@ -83,7 +92,8 @@ glm::vec3 RayTracer::getNormal( { case PrimitiveType::PRIMITIVE_SPHERE: // gradient in object space for sphere is 2x, 2y, 2z - return 2.f * intersectPointObject; + // return 2.f * intersectPointObject; + return getSphereNormal(intersectPointObject); case PrimitiveType::PRIMITIVE_CONE: return getConeNormal(intersectPointObject); case PrimitiveType::PRIMITIVE_CYLINDER: |