From 28d8022265a12e5032ddb54077f90af9f1bcb4f5 Mon Sep 17 00:00:00 2001 From: Vito Caputo 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.1