aboutsummaryrefslogtreecommitdiff
path: root/main.cc
diff options
context:
space:
mode:
authorRichard Qin <richard.qin.x@gmail.com>2026-03-09 01:44:26 +0800
committerRichard Qin <richard.qin.x@gmail.com>2026-03-09 01:44:26 +0800
commit0671c86d0f0dccd6e94766834c41807b7d6b5388 (patch)
tree444849ba259100817cb60675c08dce869e3e58c3 /main.cc
downloadray-tracing-0671c86d0f0dccd6e94766834c41807b7d6b5388.tar.gz
ray-tracing-0671c86d0f0dccd6e94766834c41807b7d6b5388.tar.xz
The Beginning of the Journey of Exploration
Diffstat (limited to 'main.cc')
-rw-r--r--main.cc30
1 files changed, 30 insertions, 0 deletions
diff --git a/main.cc b/main.cc
new file mode 100644
index 0000000..e92fe3d
--- /dev/null
+++ b/main.cc
@@ -0,0 +1,30 @@
+#include <iostream>
+
+int main() {
+ // Image
+
+ int image_width = 256;
+ int image_height = 256;
+
+ // Render
+
+ std::cout << "P3\n" << image_width << " " << image_height << "\n255\n";
+ for (int j = 0; j < image_height; j++)
+ {
+ std::clog << "\rScanlines remaining: " << (image_height - j) << ' ' << std::flush;
+ for (int i = 0; i < image_width; i++)
+ {
+ auto r = double(i) / (image_width - 1);
+ auto g = double(j) / (image_height - 1);
+ auto b = 0.0;
+
+ int ir = int(255.999 * r);
+ int ig = int(255.999 * g);
+ int ib = int(255.999 * b);
+
+ std::cout << ir << ' ' << ig << ' ' << ib << '\n';
+ }
+ }
+ std::clog << "\rDone. \n";
+ return 0;
+} \ No newline at end of file