From 7aa2a67d8381c9a88d69a3f53d74a7f079214263 Mon Sep 17 00:00:00 2001 From: Richard Qin Date: Mon, 9 Mar 2026 21:49:43 +0800 Subject: 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 --- README.md | 45 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) (limited to 'README.md') 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 -- cgit v1.2.3