cuda-based-raytrace/src/illumination/Raycaster.h

34 lines
669 B
C

#ifndef RAYCASTER_H
#define RAYCASTER_H
// #include "Camera.h"
#include "cuda_runtime.h"
#include "FrameBuffer.h"
#include "linalg/linalg.h"
// #include <thrust/device_ptr.h>
__global__ void raycastKernel(float* volumeData, unsigned char* framebuffer);
struct Raycaster {
// thrust::device_ptr<Camera*> d_camera;
// CameraInfo camera_info;
cudaGraphicsResource_t resources;
FrameBuffer* fb;
float* data;
int w;
int h;
Raycaster(cudaGraphicsResource_t resources, int nx, int ny, float* data);
// ~Raycaster();
void set_camera(Vec3 position, Vec3 forward, Vec3 up);
void render();
void resize(int nx, int ny);
};
#endif // RAYCASTER_H