aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsotech117 <michael_foiani@brown.edu>2023-12-13 05:26:53 -0500
committersotech117 <michael_foiani@brown.edu>2023-12-13 05:27:12 -0500
commit9ea707d34516c710df413d23d5936e99099e837a (patch)
tree599f0950a4729afe0ed8d25c87a36d0035bbc70a /src
parenta4811279e86928181efc24785c336ee92299369e (diff)
debug
Diffstat (limited to 'src')
-rw-r--r--src/.DS_Storebin8196 -> 8196 bytes
-rw-r--r--src/raytracer/raytracer.cpp232
2 files changed, 101 insertions, 131 deletions
diff --git a/src/.DS_Store b/src/.DS_Store
index 663fe9e..5d99fdf 100644
--- a/src/.DS_Store
+++ b/src/.DS_Store
Binary files differ
diff --git a/src/raytracer/raytracer.cpp b/src/raytracer/raytracer.cpp
index 4f641e5..f2944a9 100644
--- a/src/raytracer/raytracer.cpp
+++ b/src/raytracer/raytracer.cpp
@@ -92,8 +92,6 @@ glm::vec4 RayTracer::getPixelFromRay(
for (const RenderShapeData &shape : scene.getShapes()) {
glm::vec4 pObject = Vec4Ops::inverseTransformPoint4(pWorld, shape.inverseCTM, -shape.translation4d);
glm::vec4 dObject = glm::normalize(Vec4Ops::inverseTransformDir4(dWorld, shape.inverseCTM));
-// std::cout << "pObject: " << pObject.x << ", " << pObject.y << ", " << pObject.z << ", " << pObject.w << std::endl;
-// std::cout << "dObject: " << dObject.x << ", " << dObject.y << ", " << dObject.z << ", " << dObject.w << std::endl;
bool isHit = false;
glm::vec4 newIntersectionObj = findIntersection(pObject, dObject, shape, isHit);
if (!isHit) // no hit
@@ -156,142 +154,114 @@ void RayTracer::sceneChanged(QLabel* imageLabel) {
// m_image = image;
}
-// void RayTracer::settingsChanged(QLabel* imageLabel) {
-// if (settings.sceneFilePath.size() == 0) {
-// // no scene loaded
-// m_image.fill(Qt::black);
-// imageLabel->setPixmap(QPixmap::fromImage(m_image));
-// m_imageData = reinterpret_cast<RGBA *>(m_image.bits());
-// return;
-// }
-
-// int width = 576;
-// int height = 432;
-
-// QImage image = QImage(width, height, QImage::Format_RGBX8888);
-// image.fill(Qt::black);
-// m_imageData = reinterpret_cast<RGBA *>(image.bits());
-
-// RayTraceScene rtScene{ m_width, m_height, m_metaData, m_depth };
-// Camera camera = rtScene.getCamera();
-// if (m_controlPointIndex % 3 == 0) {
-// m_controlPoints = camera.m_controlPoints;
-// }
-
-// auto P1 = m_controlPoints[m_controlPointIndex];
-// auto P2 = m_controlPoints[m_controlPointIndex];
-// auto P3 = m_controlPoints[m_controlPointIndex];
-// auto P4 = m_controlPoints[m_controlPointIndex];
-
-// glm::vec4 xa = getPt(P1, P2, settings.currentTime);
-// glm::vec4 xb = getPt(P2, P3, settings.currentTime);
-// glm::vec4 xc = getPt(P3, P4, settings.currentTime);
-
-// // Calculate points on the lines between the above points
-// glm::vec4 xm = getPt(xa, xb, settings.currentTime);
-// glm::vec4 xn = getPt(xb, xc, settings.currentTime);
-
-// // Calculate the final point on the Bezier curve
-// glm::vec4 pointOnCurve = getPt(xm, xn, settings.currentTime);
-// m_metaData.cameraData.pos = pointOnCurve;
-
-// settings.xy += 4.f;
-// if (m_controlPointIndex % 1 == 0) {
-// settings.xz += 8.f;
-// }
-// if (m_controlPointIndex % 3 == 0){
-// settings.yz += 8.f;
-// }
-// this->render(m_imageData, rtScene);
-
-// QImage flippedImage = image.mirrored(false, false);
-// flippedImage = flippedImage.scaled(width, height, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
-// imageLabel->setPixmap(QPixmap::fromImage(flippedImage));
-// m_controlPointIndex++;
+ void RayTracer::settingsChanged(QLabel* imageLabel) {
+ if (settings.sceneFilePath.size() == 0) {
+ // no scene loaded
+ m_image.fill(Qt::black);
+ imageLabel->setPixmap(QPixmap::fromImage(m_image));
+ m_imageData = reinterpret_cast<RGBA *>(m_image.bits());
+ return;
+ }
-
-// // QTimer::singleShot(3500, this, [this, imageLabel]() {
-// // // This code will be executed after a 2-second delay
-// // emit rotationChanged(settings.rotation);
-// // });
-// m_image = image;
-// }
-
-void RayTracer::settingsChanged(QLabel* imageLabel) {
- emit timeValueChanged(settings.currentTime);
-
- bool success = SceneParser::parse(settings.sceneFilePath, m_metaData); // FIXME: this is a hack to get the camera position
-
- if (!success) {
- std::cerr << "Error loading scene: \"" << settings.sceneFilePath << "\"" << std::endl;
- // return;
- // render a blank image
- QImage image = QImage(576, 432, QImage::Format_RGBX8888);
- image.fill(Qt::black);
- RGBA *data = reinterpret_cast<RGBA *>(image.bits());
- m_imageData = data;
- imageLabel->setPixmap(QPixmap::fromImage(image));
- }
-
- // if (settings.sceneFilePath.size() == 0) {
- // // no scene loaded
- // m_image.fill(Qt::black);
- // imageLabel->setPixmap(QPixmap::fromImage(m_image));
- // m_imageData = reinterpret_cast<RGBA *>(m_image.bits());
- // return;
- // }
+ int width = 576;
+ int height = 432;
- int width = 576;
- int height = 432;
+ QImage image = QImage(width, height, QImage::Format_RGBX8888);
+ image.fill(Qt::black);
+ m_imageData = reinterpret_cast<RGBA *>(image.bits());
- QImage image = QImage(width, height, QImage::Format_RGBX8888);
- image.fill(Qt::black);
- RGBA *data = reinterpret_cast<RGBA *>(image.bits());
+ RayTraceScene rtScene{ m_width, m_height, m_metaData, m_depth };
- RayTraceScene rtScene{ m_width, m_height, m_metaData, m_depth };
- Camera camera = rtScene.getCamera();
- if (settings.currentTime % 3 == 0) {
- m_controlPoints = camera.m_controlPoints;
- }
+ this->render(m_imageData, rtScene);
- auto P1 = m_controlPoints[settings.currentTime];
- auto P2 = m_controlPoints[settings.currentTime];
- auto P3 = m_controlPoints[settings.currentTime];
- auto P4 = m_controlPoints[settings.currentTime];
-
- // glm::vec4 xa = getPt(P1, P2, settings.currentTime);
- // glm::vec4 xb = getPt(P2, P3, settings.currentTime);
- // glm::vec4 xc = getPt(P3, P4, settings.currentTime);
-
- // // Calculate points on the lines between the above points
- // glm::vec4 xm = getPt(xa, xb, settings.currentTime);
- // glm::vec4 xn = getPt(xb, xc, settings.currentTime);
-
- // // Calculate the final point on the Bezier curve
- // glm::vec4 pointOnCurve = getPt(xm, xn, settings.currentTime);
- // m_metaData.cameraData.pos = pointOnCurve;
-
- settings.xy += 4.f;
- if (m_controlPointIndex % 1 == 0) {
- settings.xz += 8.f;
- }
- if (m_controlPointIndex % 3 == 0){
- settings.yz += 8.f;
- }
- this->render(data, rtScene);
-
- QImage flippedImage = image.mirrored(false, false);
- flippedImage = flippedImage.scaled(width, height, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
- imageLabel->setPixmap(QPixmap::fromImage(flippedImage));
- // m_controlPointIndex++;
+ QImage flippedImage = image.mirrored(false, false);
+ flippedImage = flippedImage.scaled(width, height, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
+ imageLabel->setPixmap(QPixmap::fromImage(flippedImage));
+ m_controlPointIndex++;
- // QTimer::singleShot(3500, this, [this, imageLabel]() {
- // // This code will be executed after a 2-second delay
- // emit rotationChanged(settings.rotation);
- // });
- m_image = image;
-}
+ // QTimer::singleShot(3500, this, [this, imageLabel]() {
+ // // This code will be executed after a 2-second delay
+ // emit rotationChanged(settings.rotation);
+ // });
+ m_image = image;
+ }
+
+//void RayTracer::settingsChanged(QLabel* imageLabel) {
+// emit timeValueChanged(settings.currentTime);
+//
+// bool success = SceneParser::parse(settings.sceneFilePath, m_metaData); // FIXME: this is a hack to get the camera position
+//
+// if (!success) {
+// std::cerr << "Error loading scene: \"" << settings.sceneFilePath << "\"" << std::endl;
+// // return;
+// // render a blank image
+// QImage image = QImage(576, 432, QImage::Format_RGBX8888);
+// image.fill(Qt::black);
+// RGBA *data = reinterpret_cast<RGBA *>(image.bits());
+// m_imageData = data;
+// imageLabel->setPixmap(QPixmap::fromImage(image));
+// }
+//
+// // if (settings.sceneFilePath.size() == 0) {
+// // // no scene loaded
+// // m_image.fill(Qt::black);
+// // imageLabel->setPixmap(QPixmap::fromImage(m_image));
+// // m_imageData = reinterpret_cast<RGBA *>(m_image.bits());
+// // return;
+// // }
+//
+// int width = 576;
+// int height = 432;
+//
+// QImage image = QImage(width, height, QImage::Format_RGBX8888);
+// image.fill(Qt::black);
+// RGBA *data = reinterpret_cast<RGBA *>(image.bits());
+//
+// RayTraceScene rtScene{ m_width, m_height, m_metaData, m_depth };
+//// Camera camera = rtScene.getCamera();
+//// if (settings.currentTime % 3 == 0) {
+//// m_controlPoints = camera.m_controlPoints;
+//// }
+////
+//// auto P1 = m_controlPoints[settings.currentTime];
+//// auto P2 = m_controlPoints[settings.currentTime];
+//// auto P3 = m_controlPoints[settings.currentTime];
+//// auto P4 = m_controlPoints[settings.currentTime];
+////
+//// // glm::vec4 xa = getPt(P1, P2, settings.currentTime);
+//// // glm::vec4 xb = getPt(P2, P3, settings.currentTime);
+//// // glm::vec4 xc = getPt(P3, P4, settings.currentTime);
+////
+//// // // Calculate points on the lines between the above points
+//// // glm::vec4 xm = getPt(xa, xb, settings.currentTime);
+//// // glm::vec4 xn = getPt(xb, xc, settings.currentTime);
+////
+//// // // Calculate the final point on the Bezier curve
+//// // glm::vec4 pointOnCurve = getPt(xm, xn, settings.currentTime);
+//// // m_metaData.cameraData.pos = pointOnCurve;
+////
+//// settings.xy += 4.f;
+//// if (m_controlPointIndex % 1 == 0) {
+//// settings.xz += 8.f;
+//// }
+//// if (m_controlPointIndex % 3 == 0){
+//// settings.yz += 8.f;
+//// }
+// this->render(data, rtScene);
+//
+// QImage flippedImage = image.mirrored(false, false);
+// flippedImage = flippedImage.scaled(width, height, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
+// imageLabel->setPixmap(QPixmap::fromImage(flippedImage));
+// // m_controlPointIndex++;
+//
+//
+// // QTimer::singleShot(3500, this, [this, imageLabel]() {
+// // // This code will be executed after a 2-second delay
+// // emit rotationChanged(settings.rotation);
+// // });
+// m_image = image;
+//}
void RayTracer::keyPressEvent(QKeyEvent *event) {
m_keyMap[Qt::Key(event->key())] = true;