aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorladevieq <ladevie.quentin@gmail.com>2020-12-31 14:20:40 +0100
committerladevieq <ladevie.quentin@gmail.com>2020-12-31 14:20:40 +0100
commit6713cf8a0be4926011292a28514d60fd9418afd4 (patch)
tree36253e503018524ba29a48219a85c81614666d3b /include
parentea74cfc0a87726218a6ae3a5aece8603460e61af (diff)
Replace double by floats, fix missing padding issues, display a sphere
Diffstat (limited to 'include')
-rw-r--r--include/rt.hpp12
-rw-r--r--include/vec3.hpp24
-rw-r--r--include/vk-renderer.hpp7
3 files changed, 23 insertions, 20 deletions
diff --git a/include/rt.hpp b/include/rt.hpp
index 570fc42..1961d35 100644
--- a/include/rt.hpp
+++ b/include/rt.hpp
@@ -4,22 +4,22 @@
#include <limits>
#include <cstdlib>
-const double pi = 3.1415926535897932385;
-const double infinity = std::numeric_limits<double>::infinity();
+const float pi = 3.1415926535897932385f;
+const float infinity = std::numeric_limits<float>::infinity();
-inline double deg_to_rad(double deg) {
+inline float deg_to_rad(float deg) {
return deg * pi / 180.0;
}
-inline double randd() {
+inline float randd() {
return rand() / (RAND_MAX + 1.0);
}
-inline double randd(double min, double max) {
+inline float randd(float min, float max) {
return min + randd() * (max - min);
}
-inline double clamp(double x, double min, double max) {
+inline float clamp(float x, float min, float max) {
if (x < min) return min;
if (x > max) return max;
return x;
diff --git a/include/vec3.hpp b/include/vec3.hpp
index faed334..26cd2b3 100644
--- a/include/vec3.hpp
+++ b/include/vec3.hpp
@@ -8,21 +8,21 @@ class vec3 {
public:
vec3();
- vec3(double x, double y, double z);
+ vec3(float x, float y, float z);
vec3 operator-() const;
vec3& operator+=(vec3 vec);
- vec3& operator*=(double scale);
+ vec3& operator*=(float scale);
- vec3& operator/=(double numerator);
+ vec3& operator/=(float numerator);
- double length() const;
+ float length() const;
- double length_sq() const;
+ float length_sq() const;
- double dot(const vec3& vec) const;
+ float dot(const vec3& vec) const;
vec3 cross(const vec3& vec) const;
@@ -32,13 +32,13 @@ class vec3 {
static vec3 random();
- static vec3 random(double min, double max);
+ static vec3 random(float min, float max);
float x, y, z;
float padding;
};
-vec3 lerp(vec3 u, vec3 v, double t);
+vec3 lerp(vec3 u, vec3 v, float t);
vec3 operator+(vec3 u, vec3 v);
@@ -46,15 +46,15 @@ vec3 operator-(vec3 u, vec3 v);
vec3 operator*(vec3 u, vec3 v);
-vec3 operator*(vec3 u, double scale);
+vec3 operator*(vec3 u, float scale);
-vec3 operator*(double scale, vec3 u);
+vec3 operator*(float scale, vec3 u);
-vec3 operator/(vec3 u, double scale);
+vec3 operator/(vec3 u, float scale);
vec3 reflect(vec3 v, vec3 n);
-vec3 refract(const vec3& uv, const vec3& n, double etai_over_etat);
+vec3 refract(const vec3& uv, const vec3& n, float etai_over_etat);
std::ostream& operator<<(std::ostream& out, vec3 vec);
diff --git a/include/vk-renderer.hpp b/include/vk-renderer.hpp
index c54009f..d63e501 100644
--- a/include/vk-renderer.hpp
+++ b/include/vk-renderer.hpp
@@ -9,11 +9,14 @@
struct input_data {
color sky_color;
color ground_color;
+ vec3 camera_pos;
float viewport_width;
float viewport_height;
- float pad1;
- float pad2;
+ float proj_plane_distance;
+ float pad;
+
+ vec3 sphere_position;
};
struct path_tracer_data {
struct input_data inputs;