From 6713cf8a0be4926011292a28514d60fd9418afd4 Mon Sep 17 00:00:00 2001 From: ladevieq Date: Thu, 31 Dec 2020 14:20:40 +0100 Subject: Replace double by floats, fix missing padding issues, display a sphere --- include/rt.hpp | 12 ++++++------ include/vec3.hpp | 24 ++++++++++++------------ include/vk-renderer.hpp | 7 +++++-- 3 files changed, 23 insertions(+), 20 deletions(-) (limited to 'include') 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 #include -const double pi = 3.1415926535897932385; -const double infinity = std::numeric_limits::infinity(); +const float pi = 3.1415926535897932385f; +const float infinity = std::numeric_limits::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; -- cgit v1.3