aboutsummaryrefslogtreecommitdiffstats
path: root/include/vk-renderer.hpp
diff options
context:
space:
mode:
authorladevieq <ladevie.quentin@gmail.com>2021-01-06 00:34:02 +0100
committerladevieq <ladevie.quentin@gmail.com>2021-01-06 00:34:02 +0100
commit0d0ce0a318c6c26128f24574cbc63005dcd4a757 (patch)
treea78f5cb4d9f76bbc335607ae754578eeb7ffdf91 /include/vk-renderer.hpp
parent8c3376c49f803e1d28e76ed100d4d417394df41f (diff)
Customisalbe camera with focus plan
Diffstat (limited to 'include/vk-renderer.hpp')
-rw-r--r--include/vk-renderer.hpp50
1 files changed, 31 insertions, 19 deletions
diff --git a/include/vk-renderer.hpp b/include/vk-renderer.hpp
index 2e996c8..311b3e5 100644
--- a/include/vk-renderer.hpp
+++ b/include/vk-renderer.hpp
@@ -12,34 +12,46 @@ enum MATERIAL_TYPE: uint32_t {
DIELECTRIC,
};
+struct material {
+ color albedo;
+ float fuzz;
+ float ior;
+ uint32_t type;
+ uint32_t padding;
+};
+
+struct sphere {
+ vec3 position;
+ material mat;
+ float radius;
+ float padding[3];
+};
+
struct input_data {
color sky_color;
color ground_color;
- vec3 camera_pos;
- uint32_t samples_per_pixel;
- float viewport_width;
- float viewport_height;
- float proj_plane_distance;
+ struct camera {
+ vec3 position;
+ vec3 up;
+ vec3 right;
+ vec3 forward;
+ float viewport_width;
+ float viewport_height;
+ float lens_radius;
+ float focus_distance;
+ } cam;
- float random_numbers[200];
+ float random_offset[200];
+ float random_disk[200];
vec3 random_in_sphere[1000];
- struct sphere {
- vec3 position;
- struct material {
- color albedo;
- float fuzz;
- float ior;
- uint32_t type;
- uint32_t padding;
- } material;
- float radius;
- float padding[3];
- } spheres[5];
+ sphere spheres[512];
uint32_t max_bounce;
- float padding[3];
+ uint32_t samples_per_pixel;
+
+ float padding[2];
};
struct path_tracer_data {