From 28d8022265a12e5032ddb54077f90af9f1bcb4f5 Mon Sep 17 00:00:00 2001
From: Vito Caputo <vcaputo@pengaru.com>
Date: Fri, 26 May 2017 23:46:41 -0700
Subject: ray: s/nlerp/lerp/ where normalize is unnecessary

It's only necessary to normalize the direction stored vector in x_step(),
the rest can simply be linearly interpolated which saves some divides.
---
 src/modules/ray/ray_camera.c | 4 ++--
 src/modules/ray/ray_camera.h | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

(limited to 'src/modules')

diff --git a/src/modules/ray/ray_camera.c b/src/modules/ray/ray_camera.c
index 0703c2e..5910094 100644
--- a/src/modules/ray/ray_camera.c
+++ b/src/modules/ray/ray_camera.c
@@ -77,8 +77,8 @@ void ray_camera_frame_begin(ray_camera_t *camera, fb_fragment_t *fragment, ray_r
 	frame->x_alpha = frame->x_delta * (float)fragment->x;
 	frame->y_alpha = frame->y_delta * (float)fragment->y;
 
-	frame->cur_w = ray_3f_nlerp(&frame->nw, &frame->sw, frame->y_alpha);
-	frame->cur_e = ray_3f_nlerp(&frame->ne, &frame->se, frame->y_alpha);
+	frame->cur_w = ray_3f_lerp(&frame->nw, &frame->sw, frame->y_alpha);
+	frame->cur_e = ray_3f_lerp(&frame->ne, &frame->se, frame->y_alpha);
 
 	ray->origin = camera->position;
 	ray->direction = frame->cur_w;
diff --git a/src/modules/ray/ray_camera.h b/src/modules/ray/ray_camera.h
index 387f8c5..6e48839 100644
--- a/src/modules/ray/ray_camera.h
+++ b/src/modules/ray/ray_camera.h
@@ -67,8 +67,8 @@ static inline int ray_camera_frame_y_step(ray_camera_frame_t *frame)
 	}
 
 	frame->y_alpha += frame->y_delta;
-	frame->cur_w = ray_3f_nlerp(&frame->nw, &frame->sw, frame->y_alpha);
-	frame->cur_e = ray_3f_nlerp(&frame->ne, &frame->se, frame->y_alpha);
+	frame->cur_w = ray_3f_lerp(&frame->nw, &frame->sw, frame->y_alpha);
+	frame->cur_e = ray_3f_lerp(&frame->ne, &frame->se, frame->y_alpha);
 	frame->ray->direction = frame->cur_w;
 
 	return 1;
-- 
cgit v1.2.3