Browse Source

AAAAAAAAAAAAAAAAAAAAA

place-stuff
Joel 4 years ago
parent
commit
ece3b88411
  1. 23
      camera.c
  2. 6
      scene.c

23
camera.c

@ -6,7 +6,7 @@ @@ -6,7 +6,7 @@
#include "camera.h"
#define DRAW_DIST 255.0
#define MAX_ITERATIONS 255
#define MAX_ITERATIONS 32
#define EPSILON 0.1
#define NORMAL_EPSILON 0.0001
@ -30,7 +30,7 @@ double manidist(struct vec *v) @@ -30,7 +30,7 @@ double manidist(struct vec *v)
{
// return v->elements[3];
//double yeet = (SDL_GetTicks() / 10);
double yeet = 300;
double yeet = 10;
v->elements[3] -= yeet;
double out = magnitude_vec(v) - yeet;
v->elements[3] += yeet;
@ -67,9 +67,8 @@ estimateNormal(struct vec *r, struct solid *sol) @@ -67,9 +67,8 @@ estimateNormal(struct vec *r, struct solid *sol)
double s1 = solid_dist(sol, tmp);
tmp->elements[i] = -NORMAL_EPSILON;
double s2 = solid_dist(sol, tmp);
out->elements[i] = s1 - s2;
tmp->elements[i] = 0;
out->elements[i] = s1 - s2;
}
free_vec(tmp);
return normalise_vec_ip(out);
@ -186,8 +185,9 @@ manifoldstep(struct ray *r, double distance) @@ -186,8 +185,9 @@ manifoldstep(struct ray *r, double distance)
manifoldturn(r, r->dir, distance);
}
void place(struct solid *v) {
struct vec *dirs [v->pos.dimension];
void
place(struct solid *v) {
struct vec **dirs = malloc(sizeof(struct vec *) * v->pos.dimension);
for (int d = 0; d < v->pos.dimension; d++) {
dirs[d] = new_vec(v->pos.dimension);
dirs[d]->elements[d] = 1;
@ -197,11 +197,18 @@ void place(struct solid *v) { @@ -197,11 +197,18 @@ void place(struct solid *v) {
for (int d = 0; d < v->pos.dimension; d++) {
for (double yee = v->pos.elements[d]; dabs(yee) > EPSILON; yee -= dsign(yee) * EPSILON) {
manifoldstepaxees(tpos, dirs[d], dirs, v->pos.dimension, EPSILON);
struct vec *temp = copy_vec(dirs[d]);
manifoldstepaxees(tpos, temp, dirs, v->pos.dimension, EPSILON);
free_vec(temp);
}
tpos->elements[d] = v->pos.elements[d];
}
v->pos.elements = tpos->elements;
free(tpos);
free_vec(tdir);
free_vec(tpos);
for (int d = 0; d < v->pos.dimension; d++) free_vec(dirs[d]);
free(dirs);
}

6
scene.c

@ -47,9 +47,9 @@ new_scene(int num_scene_objects, struct object* scene_objects) @@ -47,9 +47,9 @@ new_scene(int num_scene_objects, struct object* scene_objects)
scene.num_objects = num_scene_objects;
scene.objects = scene_objects;
// for (int i = 0; i < num_scene_objects; i++) {
// place(&(scene.objects[i].sol));
// }
for (int i = 0; i < num_scene_objects; i++) {
place(&(scene.objects[i].sol));
}
struct object *scene_rep = malloc(sizeof(struct object));
scene_rep->sol.dist = distance_function;

Loading…
Cancel
Save