Personal Projects
The Ray Tracer Challengeを読んでGo言語で実装してみた。
2022-07-24
『The Ray Tracer Challenge: A Test-Driven Guide to Your First 3D Renderer』を読み始めました。
この本はレイトレーサーの書き方についてのガイドです。私はCGについてほとんど知識がありませんが、スクラッチからレイトレーサーを書くことは良いプログラミングの練習になると思い、読み進めることにしました。本は特定の言語を指定していないため、Golangでレイトレーサーを実装することにしました。Golangを練習したかったからです。
第1章、第2章
第1章では、点、ベクトル、色などのコンピュータグラフィックスの基本概念について学びます。第2章では、キャンバスを作成して簡単なイメージを描きます。
本に従い、点、ベクトル、色、キャンバスを使って簡単なイメージを作成しました。
2022-07-24
第3章、第4章
第3章と第4章では、レイトレーサーの基本機能を実装します。第1章や第2章よりも少し難しかったですが、とても面白かったです。点、ベクトル、色、キャンバスを用いて時計のイメージを作成しました。すべての時計の点は、点、ベクトル、色、キャンバスを使用してマトリックス変換で描画されたものです。
時計の上の画像を注意深く見ると点が見えます。
2022-07-28
第5章
いよいよ円を描いてレンダリングすることができました。
2022-07-29
第6章
レイトレーサーの実装はだんだん難しくなってきましたが、ますます面白くなってきました。
2022-08-01
第7章、第8章
デバッグとユニットテストの勉強になりました。
第9章
この章を読む前に既に構成を作っていました。球体だけでなく、他の形状も実装すると思ったからです。この章では、新しいシェイプとしてプレーンの追加について説明します。今思えば、OOP的なアプローチだったので、FP言語で違う方法で実装も面白いかもと思いました。
2022-08-03
第10章
第10章のパターンを実装しました。
2022-08-04
第11章
Golangは素晴らしい言語ですね。バグを簡単に見つけることができました。Golangのタイプシステムのおかげです。この本もまた、素晴らしいです。
2022-08-07
第12章
キューブです!
2022-08-09
第13章、第14章
シリンダーとダブルナップコーンです。とても勉強になりました。デバッグ能力が向上しているのが実感できました。
2022-08-12
第15章
最後に、オブジェクトファイルをロードして、結果を見ることができました。
ここで勉強は一旦終了します。まだいくつか章がありますが、ここで終わらせようと思います。最後まで本を読み切ることもできそうですが、新しいプロジェクトを始めることにしました。
Golangの使用はとても楽しかったです。