From b0dd97ee6bf8d5daa587da40ad941efac68152df Mon Sep 17 00:00:00 2001 From: brett weiland Date: Sat, 1 Jun 2024 01:36:18 -0500 Subject: got raycasting laid out --- camera.cuh | 81 -------------------------------------------------------------- 1 file changed, 81 deletions(-) delete mode 100644 camera.cuh (limited to 'camera.cuh') diff --git a/camera.cuh b/camera.cuh deleted file mode 100644 index 61944fe..0000000 --- a/camera.cuh +++ /dev/null @@ -1,81 +0,0 @@ -#ifndef CAMERA_H -#define CAMERA_H - -#include "entity.cuh" -#include "common.cuh" -#include - - -//template class scene; - -//I am soooo high lol -template -class camera : public entity { - using T3 = typename vect_t3::vect_t; - using T2 = typename vect_t2::vect_t; - public: - __device__ void render(); - __device__ camera(scene *pscene, const T fov = 1, const T3 pos = vect_create(0), const T3 rot = vect_create(0)) - : pscene(pscene), fov(fov), entity(pos, rot, vect_create(0)) {}; - - //__device__ ~camera(); - private: - T fov; - T2 size; - int steps = 100; - T clip_min = .1; - T clip_max = 100; - scene *pscene; -}; - -/** -//later we'll make scenes objects, rn im lazy (TODO) -template __device__ void camera::render() { - //TODO *really* need to clean this up once you get further - //extra dimentions is extra math - //either generisize float3 or stop using this fucking template nonsense - const uint3 unnormalized_uv = ((blockDim * blockIdx) + threadIdx); - const unsigned int img_index = (unnormalized_uv.x + (unnormalized_uv.y * blockDim.x * gridDim.x)) * 4; - const T3 uv = ((2 * vect_create(unnormalized_uv)) / vect_create(gridDim * blockDim)) - 1; - const T3 ray_direction = normalize(vect_create(uv.x, uv.y, 1)); - T dist; - T total_dist = 0; - T3 ray; - int i; - - - //if(img_index == 640) { printf("%f, %f, %f\n", uv.x, uv.y, uv.z); } - - T min_dist = clip_max; - - render_object **objs = pscene->get_objs(); - for(i = 0; i < steps; i++) { - ray = this->pos_ + (total_dist * ray_direction); - //gyagh memory lookups - for(unsigned int oi = 0; objs[oi] != NULL; oi++) { - dist = object.distance_estimator(ray); - } - if((dist < clip_min)) { - //image[img_index] = 0xff; - break; - } - if((dist > clip_max)) { - //image[img_index+2] = 0xff; - break; - } - total_dist += dist; - } - - - - - //image[img_index] = 0x00; - //image[img_index+1] = 0x00; - //image[img_index+2] = p; - //image[img_index+3] = 0xff; - -} -**/ - - -#endif -- cgit v1.2.3