From 9ea707d34516c710df413d23d5936e99099e837a Mon Sep 17 00:00:00 2001 From: sotech117 Date: Wed, 13 Dec 2023 05:26:53 -0500 Subject: debug --- src/.DS_Store | Bin 8196 -> 8196 bytes src/raytracer/raytracer.cpp | 232 +++++++++++++++++++------------------------- 2 files changed, 101 insertions(+), 131 deletions(-) (limited to 'src') diff --git a/src/.DS_Store b/src/.DS_Store index 663fe9e..5d99fdf 100644 Binary files a/src/.DS_Store and b/src/.DS_Store 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(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(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(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(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(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(image.bits()); - QImage image = QImage(width, height, QImage::Format_RGBX8888); - image.fill(Qt::black); - RGBA *data = reinterpret_cast(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(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(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(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; -- cgit v1.2.3-70-g09d2