From c6f2be2fed772f300c0cdfe59a4a8a2733d15574 Mon Sep 17 00:00:00 2001 From: sotech117 Date: Wed, 13 Dec 2023 00:51:26 -0500 Subject: fixing rays directions 4d --- src/vec4ops/transform4d.cpp | 2 +- src/vec4ops/vec4ops.cpp | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) (limited to 'src/vec4ops') diff --git a/src/vec4ops/transform4d.cpp b/src/vec4ops/transform4d.cpp index 66ca8e3..48957f4 100644 --- a/src/vec4ops/transform4d.cpp +++ b/src/vec4ops/transform4d.cpp @@ -13,7 +13,7 @@ glm::vec4 Vec4Ops::transformPoint4(glm::vec4 point4, glm::mat4 transformDirecti glm::vec4 Vec4Ops::inverseTransformPoint4(glm::vec4 point4, glm::mat4 inverseTransformDirectionMatrix, glm::vec4 inverseTranslationPointVector) { // do the direction then translation point4 += inverseTranslationPointVector; - point4 = inverseTranslationPointVector * point4; + point4 = inverseTransformDirectionMatrix * point4; return point4; } diff --git a/src/vec4ops/vec4ops.cpp b/src/vec4ops/vec4ops.cpp index 9bd29e8..cf0900a 100644 --- a/src/vec4ops/vec4ops.cpp +++ b/src/vec4ops/vec4ops.cpp @@ -23,7 +23,6 @@ glm::vec4 Vec4Ops::cross4( result[1] = -(u[0] * f) + (u[2] * c) - (u[3] * b); result[2] = (u[0] * e) - (u[1] * c) + (u[3] * a); result[3] = -(u[0] * d) + (u[1] * b) - (u[2] * a); - return result; } @@ -34,23 +33,23 @@ glm::vec4 Vec4Ops::dot4( } glm::mat4 Vec4Ops::getViewMatrix4( - glm::vec4 upVector, glm::vec4 lookVector, + glm::vec4 upVector, glm::vec4 overVector) { // start with the e3 basis vector, the normalized look vector - glm::vec4 e3 = glm::normalize(lookVector); + glm::vec4 e3 = glm::normalize(-lookVector); // calculate e0 basis vector, from the combinatory cross of up and over with e3 glm::vec4 e0 = cross4(upVector, overVector, e3); e0 = glm::normalize(e0); - if (glm::distance(e0, glm::vec4{0, 0, 0, 0}) < 0.0001f) { + if (glm::isnan(e0[0]) || glm::isnan(e0[1]) || glm::isnan(e0[2]) || glm::isnan(e0[3])) { throw std::runtime_error("invalid up vector"); } // calculate e1 basis vector, from the cross of only the over vector glm::vec4 e1 = cross4(overVector, e3, e0); e1 = glm::normalize(e1); - if (glm::distance(e1, glm::vec4{0, 0, 0, 0}) < 0.0001f) { + if (glm::isnan(e1[0]) || glm::isnan(e1[1]) || glm::isnan(e1[2]) || glm::isnan(e1[3])) { throw std::runtime_error("invalid over vector"); } -- cgit v1.2.3-70-g09d2 From 07776876eb4638a224fd332944ce9ddca1f5a592 Mon Sep 17 00:00:00 2001 From: sotech117 Date: Wed, 13 Dec 2023 01:30:52 -0500 Subject: hardcode the camera depth to where a result is shown --- .idea/QtSettings.xml | 2 +- cmake-build-release/.ninja_deps | Bin 174976 -> 265104 bytes cmake-build-release/.ninja_log | 116 +++++++++++++++---- .../projects_ray_autogen.dir/ParseCache.txt | 124 ++++++++++----------- cmake-build-release/Testing/Temporary/LastTest.log | 4 +- cmake-build-release/projects_ray | Bin 350537 -> 350681 bytes scenefiles-4d/unit_sphere.json | 2 +- src/accelerate/myqtconcurrent.cpp | 32 +++--- src/illuminate/illuminate.cpp | 1 + src/intersect/intersect.cpp | 2 + src/vec4ops/vec4ops.cpp | 2 +- 11 files changed, 182 insertions(+), 103 deletions(-) (limited to 'src/vec4ops') diff --git a/.idea/QtSettings.xml b/.idea/QtSettings.xml index faa7b06..dd42746 100644 --- a/.idea/QtSettings.xml +++ b/.idea/QtSettings.xml @@ -1,7 +1,7 @@ -