From 34b90e8d4858a8ee43eee17ba2d1215ef2904706 Mon Sep 17 00:00:00 2001 From: alistair Date: Sun, 18 Oct 2020 12:31:20 +1000 Subject: [PATCH] lighting --- camera.c | 8 +++----- distfuncs.h | 1 + main.c | 19 ++++++++++++------- types.h | 1 + 4 files changed, 17 insertions(+), 12 deletions(-) diff --git a/camera.c b/camera.c index 138f102..372da5a 100644 --- a/camera.c +++ b/camera.c @@ -28,9 +28,9 @@ double dsign(double yeet) { double manidist(struct vec *v) { - // return v->elements[3]; + return v->elements[3]; //double yeet = (SDL_GetTicks() / 10); - double yeet = 900; + double yeet = 100; v->elements[3] -= yeet; double out = magnitude_vec(v) - yeet; v->elements[3] += yeet; @@ -277,9 +277,7 @@ process_pixel(int i, int j) // p.col.r += p.travel_dist; if (!(p.flags & 0x01)) { p.col.b = 255; - p.col.r = j * 2.55; - - + p.col.r = j * 7; p.col.g += (16.0 / p.scene_dist); p.col.b += (16.0 / p.scene_dist); } else { diff --git a/distfuncs.h b/distfuncs.h index fa1aa3e..6cd93b5 100644 --- a/distfuncs.h +++ b/distfuncs.h @@ -22,6 +22,7 @@ struct colour yeet_col(struct ray *); double sdf_3ellipsoid(struct vec *x); double sdf_4ellipsoid(struct vec *x); +double clamp(double val, double min, double max); #endif diff --git a/main.c b/main.c index caf9993..37b2530 100644 --- a/main.c +++ b/main.c @@ -38,7 +38,6 @@ struct SDL_Window* make_window(void) { } - void handle_inputs(void) { /* this is so broken it leaks memory everywhere and crashes and idek why @@ -147,14 +146,22 @@ void setup_camera_scene() camera->y->elements[1] = 1; camera->z->elements[2] = 1; + camera->light = new_vec4(0, 0, 0, 0); + // struct object white_sphere = new_box(new_vec3(-0.75, 0, 8), 0, 1); // struct object other_white_sphere = new_sphere(new_vec3(0.75, 0, 8), 0, 1); const double lower_pos_bound = -5; - const double upper_pos_bound = -5; + const double upper_pos_bound = 1; const int num_trees = 4; - struct object* scene_objects = malloc(2 * num_trees * sizeof(struct object)); - for (int i = 0; i < 2 * num_trees; i+=2) { + int lastelem = 1; + + struct object* scene_objects = malloc((lastelem + 2 * num_trees) * sizeof(struct object)); + + struct vec *plane_pos = new_vec4(0,1,-5,0); + scene_objects[0] = new_plane(plane_pos, 1, 1); + + for (int i = lastelem; i < lastelem + 2 * num_trees; i+=2) { struct vec* random_pos = new_random_vec(3, lower_pos_bound, upper_pos_bound); random_pos->elements[1] = 0; @@ -169,9 +176,7 @@ void setup_camera_scene() } int main(int argc, char **argv) { - - - SDL_Window * win = make_window(); + SDL_Window *win = make_window(); ren = SDL_CreateRenderer(win, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC); // SDL_RenderSetLogicalSize(ren, B_INTERNAL_HEIGHT, B_INTERNAL_HEIGHT); diff --git a/types.h b/types.h index 67fa54a..33cdfea 100644 --- a/types.h +++ b/types.h @@ -26,6 +26,7 @@ struct camera struct vec *y; struct vec *z; struct vec *pos; + struct vec *light; //struct vec *rot; int dims; };