diff options
| author | ladevieq <ladevie.quentin@gmail.com> | 2020-12-31 14:20:40 +0100 |
|---|---|---|
| committer | ladevieq <ladevie.quentin@gmail.com> | 2020-12-31 14:20:40 +0100 |
| commit | 6713cf8a0be4926011292a28514d60fd9418afd4 (patch) | |
| tree | 36253e503018524ba29a48219a85c81614666d3b /include | |
| parent | ea74cfc0a87726218a6ae3a5aece8603460e61af (diff) | |
Replace double by floats, fix missing padding issues, display a sphere
Diffstat (limited to 'include')
| -rw-r--r-- | include/rt.hpp | 12 | ||||
| -rw-r--r-- | include/vec3.hpp | 24 | ||||
| -rw-r--r-- | include/vk-renderer.hpp | 7 |
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; |
