diff options
author | David Doan <daviddoan@Davids-MacBook-Pro-100.local> | 2023-12-08 14:28:38 -0500 |
---|---|---|
committer | David Doan <daviddoan@Davids-MacBook-Pro-100.local> | 2023-12-08 14:28:38 -0500 |
commit | 1bb87c8ebfa7527e862a9295d7c877c23851ab34 (patch) | |
tree | 44f63305d8117e774ce12768c6893a0954d738b4 /src | |
parent | df15d0f234f464f53cfb2480f31a901f9df51ba7 (diff) |
comment deletion
Diffstat (limited to 'src')
-rw-r--r-- | src/intersect/normals.cpp | 12 | ||||
-rw-r--r-- | src/main.cpp | 76 | ||||
-rw-r--r-- | src/raytracer/raytracer.cpp | 102 | ||||
-rw-r--r-- | src/utils/scenefilereader.cpp | 6 |
4 files changed, 15 insertions, 181 deletions
diff --git a/src/intersect/normals.cpp b/src/intersect/normals.cpp index a5ffdbe..50d4af5 100644 --- a/src/intersect/normals.cpp +++ b/src/intersect/normals.cpp @@ -74,6 +74,15 @@ glm::vec3 getCubeNormal( return glm::vec3(0.f); } +glm::vec4 getSphereNormal( + glm::vec4 intersectPointObject) +{ + return {2.f * intersectPointObject.x, + 2.f * intersectPointObject.y, + 2.f * intersectPointObject.z, + 2.f * intersectPointObject.w}; +} + glm::vec3 RayTracer::getNormal( glm::vec4 intersectPointObject, const RenderShapeData& shape, @@ -83,7 +92,8 @@ glm::vec3 RayTracer::getNormal( { case PrimitiveType::PRIMITIVE_SPHERE: // gradient in object space for sphere is 2x, 2y, 2z - return 2.f * intersectPointObject; + // return 2.f * intersectPointObject; + return getSphereNormal(intersectPointObject); case PrimitiveType::PRIMITIVE_CONE: return getConeNormal(intersectPointObject); case PrimitiveType::PRIMITIVE_CYLINDER: diff --git a/src/main.cpp b/src/main.cpp index 29828d8..36b21ff 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -17,85 +17,11 @@ int main(int argc, char *argv[]) { - // QCoreApplication a(argc, argv); - - // QCommandLineParser parser; - // parser.addHelpOption(); - // parser.addPositionalArgument("config", "Path of the config file."); - // parser.process(a); - - // auto positionalArgs = parser.positionalArguments(); - // if (positionalArgs.size() != 1) { - // std::cerr << "Not enough arguments. Please provide a path to a config file (.ini) as a command-line argument." << std::endl; - // a.exit(1); - // return 1; - // } - - // QSettings settings( positionalArgs[0], QSettings::IniFormat ); - // QString iScenePath = settings.value("IO/scene").toString(); - // QString oImagePath = settings.value("IO/output").toString(); - - // RenderData metaData; - // bool success = SceneParser::parse(iScenePath.toStdString(), metaData); - - // if (!success) { - // std::cerr << "Error loading scene: \"" << iScenePath.toStdString() << "\"" << std::endl; - // a.exit(1); - // return 1; - // } - - // // Raytracing-relevant code starts here - - // int width = settings.value("Canvas/width").toInt(); - // int height = settings.value("Canvas/height").toInt(); - - // // Extracting data pointer from Qt's image API - // QImage image = QImage(width, height, QImage::Format_RGBX8888); - // image.fill(Qt::black); - // RGBA *data = reinterpret_cast<RGBA *>(image.bits()); - - // // Setting up the raytracer - // Config rtConfig{}; - // rtConfig.enableShadow = settings.value("Feature/shadows").toBool(); - // rtConfig.enableReflection = settings.value("Feature/reflect").toBool(); - // rtConfig.enableRefraction = settings.value("Feature/refract").toBool(); - // rtConfig.enableTextureMap = settings.value("Feature/texture").toBool(); - // rtConfig.enableTextureFilter = settings.value("Feature/texture-filter").toBool(); - // rtConfig.enableParallelism = settings.value("Feature/parallel").toBool(); - // rtConfig.enableSuperSample = settings.value("Feature/super-sample").toBool(); - // rtConfig.enableAntiAliasing = settings.value("Feature/post-process").toBool(); - // rtConfig.enableAcceleration = settings.value("Feature/acceleration").toBool(); - // rtConfig.enableDepthOfField = settings.value("Feature/depthoffield").toBool(); - // rtConfig.maxRecursiveDepth = settings.value("Settings/maximum-recursive-depth").toInt(); - // rtConfig.onlyRenderNormals = settings.value("Settings/only-render-normals").toBool(); - - // RayTracer raytracer{ rtConfig }; - - // RayTraceScene rtScene{ width, height, metaData }; - - // // Note that we're passing `data` as a pointer (to its first element) - // // Recall from Lab 1 that you can access its elements like this: `data[i]` - // raytracer.render(data, rtScene); - - // // Saving the image - // success = image.save(oImagePath); - // if (!success) { - // success = image.save(oImagePath, "PNG"); - // } - // if (success) { - // std::cout << "Saved rendered image to \"" << oImagePath.toStdString() << "\"" << std::endl; - // } else { - // std::cerr << "Error: failed to save image to \"" << oImagePath.toStdString() << "\"" << std::endl; - // } - - // a.exit(); - // return 0; - QApplication a(argc, argv); QCoreApplication::setApplicationName("The All Americans 4D Raytracer"); QCoreApplication::setOrganizationName("CS 1230/2230"); - // QCoreApplication::setApplicationVersion(QT_VERSION_STR); + QCoreApplication::setApplicationVersion(QT_VERSION_STR); QSurfaceFormat fmt; fmt.setVersion(4, 1); diff --git a/src/raytracer/raytracer.cpp b/src/raytracer/raytracer.cpp index 435af74..be31b8a 100644 --- a/src/raytracer/raytracer.cpp +++ b/src/raytracer/raytracer.cpp @@ -8,10 +8,6 @@ #include <QKeyEvent> #include <QTimerEvent> -//struct Ray { -// glm::vec3 p; -// glm::vec3 d; -//}; // RayTracer::RayTracer(const Config &config) : m_config(config) {} RayTracer::RayTracer(QWidget *parent) : QWidget(parent) { @@ -25,8 +21,6 @@ RayTracer::RayTracer(QWidget *parent) : QWidget(parent) { m_keyMap[Qt::Key_5] = false; m_keyMap[Qt::Key_6] = false; - // m_timer = startTimer(1000/60); - // m_elapsedTimer.start(); } void RayTracer::render(RGBA *imageData, const RayTraceScene &scene) { @@ -185,9 +179,6 @@ void RayTracer::sceneChanged(QLabel* imageLabel) { image.fill(Qt::black); RGBA *data = reinterpret_cast<RGBA *>(image.bits()); - - - // RayTracer raytracer{ rtConfig }; RayTraceScene rtScene{ width, height, m_metaData }; this->render(data, rtScene); @@ -273,102 +264,9 @@ void RayTracer::keyPressEvent(QKeyEvent *event) { } emit zwRotationChanged(settings.zw); } - - - // std::cout << "key done" << std::endl; - - // 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{ width, height, m_metaData }; - // this->render(data, rtScene); - - // std::cout << "done rendering" << std::endl; - - // QImage flippedImage = image.mirrored(false, false); - // flippedImage = flippedImage.scaled(2*width, 2*height, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); - // m_imageLabel->setPixmap(QPixmap::fromImage(flippedImage)); } void RayTracer::keyReleaseEvent(QKeyEvent *event) { m_keyMap[Qt::Key(event->key())] = false; } -// void RayTracer::timerEvent(QTimerEvent *event) { -// int elapsedms = m_elapsedTimer.elapsed(); -// float deltaTime = elapsedms * 0.001f; -// m_elapsedTimer.restart(); - -// if (m_keyMap[Qt::Key_1]) { -// if (settings.negative) { -// settings.xy -= settings.rotation; -// } else { -// settings.xy += settings.rotation; -// } -// emit xyRotationChanged(settings.xy); -// } - -// if (m_keyMap[Qt::Key_2]) { -// if (settings.negative) { -// settings.xz -= settings.rotation; -// } else { -// settings.xz += settings.rotation; -// } -// emit xzRotationChanged(settings.xz); -// } - -// if (m_keyMap[Qt::Key_3]) { -// if (settings.negative) { -// settings.xw -= settings.rotation; -// } else { -// settings.xw += settings.rotation; -// } -// emit xwRotationChanged(settings.xw); -// } - -// if (m_keyMap[Qt::Key_4]) { -// if (settings.negative) { -// settings.yz -= settings.rotation; -// } else { -// settings.yz += settings.rotation; -// } -// emit yzRotationChanged(settings.yz); -// } - -// if (m_keyMap[Qt::Key_5]) { -// if (settings.negative) { -// settings.yw -= settings.rotation; -// } else { -// settings.yw += settings.rotation; -// } -// emit ywRotationChanged(settings.yw); -// } - -// if (m_keyMap[Qt::Key_6]) { -// if (settings.negative) { -// settings.zw -= settings.rotation; -// } else { -// settings.zw += settings.rotation; -// } -// emit zwRotationChanged(settings.zw); -// } - -// 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{ width, height, m_metaData }; -// this->render(data, rtScene); - -// QImage flippedImage = image.mirrored(false, false); -// flippedImage = flippedImage.scaled(2*width, 2*height, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); -// m_imageLabel->setPixmap(QPixmap::fromImage(flippedImage)); -// } - diff --git a/src/utils/scenefilereader.cpp b/src/utils/scenefilereader.cpp index ef2ad5e..ef06a7b 100644 --- a/src/utils/scenefilereader.cpp +++ b/src/utils/scenefilereader.cpp @@ -675,9 +675,9 @@ bool ScenefileReader::parseGroupData(const QJsonObject &object, SceneNode *node) SceneTransformation *rotation = new SceneTransformation(); rotation->type = TransformationType::TRANSFORMATION_ROTATE; - rotation->rotate.x = rotateArray[0].toDouble(); - rotation->rotate.y = rotateArray[1].toDouble(); - rotation->rotate.z = rotateArray[2].toDouble(); +// rotation->rotate.x = rotateArray[0].toDouble(); +// rotation->rotate.y = rotateArray[1].toDouble(); +// rotation->rotate.z = rotateArray[2].toDouble(); rotation->angle = rotateArray[3].toDouble() * M_PI / 180.f; node->transformations.push_back(rotation); |