aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorRichard Qin <richard.qin.x@gmail.com>2026-03-09 21:49:43 +0800
committerRichard Qin <richard.qin.x@gmail.com>2026-03-09 21:49:43 +0800
commit7aa2a67d8381c9a88d69a3f53d74a7f079214263 (patch)
treede149b622a960ffc42bfce1d6a37a81ea3a493a2 /README.md
parent2a65ece16cd237d56c9dac8d9d3d680e9d34b774 (diff)
downloadray-tracing-7aa2a67d8381c9a88d69a3f53d74a7f079214263.tar.gz
ray-tracing-7aa2a67d8381c9a88d69a3f53d74a7f079214263.tar.xz
Establish a well-structured modern C++ project architecture
Focus on code quality: Treat strict warnings as errors, memory checks with Sanitizers, Clang formatting and static analysis Performance optimization: LTO, ccache
Diffstat (limited to 'README.md')
-rw-r--r--README.md45
1 files changed, 44 insertions, 1 deletions
diff --git a/README.md b/README.md
index 4e768b5..71f3ff5 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,44 @@
-# \ No newline at end of file
+# Ray Tracer
+
+Inspired by the book _Ray Tracing in One Weekend_, I'd like to write this project using modern C++ (C++ 23) and attempt to use high-performance approaches.
+
+## Build & Run
+
+Make Sure your build system is properly set up:
+```bash
+cmake -S . -B build
+```
+
+Configure for Release:
+```bash
+# Release mode
+cmake -B build -DCMAKE_BUILD_TYPE=Release
+#Debug mode
+cmake -B build -DCMAKE_BUILD_TYPE=Debug
+```
+
+Compile the source code:
+```bash
+cmake --build build
+```
+
+To normalize the coding style
+```bash
+cmake --build build --target format
+```
+
+Suggests improvements to follow good C++ programming practices:
+```bash
+cmake --build build --target tidy
+cmake --build build --target tidy-all
+```
+
+Run the program
+```bash
+./build/apps/RayTracer > images/image.ppm
+display images/image.ppm
+```
+
+## License
+This project is licensed under the **GNU General Public License v3.0**.
+See the [LICENSE](LICENSE) file for the full text. \ No newline at end of file