- コンピュータグラフィックスの基礎から高度なトピックまで無料で学べるオンライン学習プラットフォーム
- 3Dレンダリング、数学的基礎、デジタルイメージング、プロシージャル生成、ツーリングなど多様なテーマを体系的に扱う
- 実践重視の講義構成で、理論よりも直接的な結果を先に体験できるよう設計されている
- Vulkan API学習コース(新規)、3Dプログラミングブログ(予定)、**書籍(刊行予定)**など継続的に発展中
- 開発者とデザイナーがコンピュータグラフィックスの原理と実装技術を深く理解できる無料の学習リソース
- Scratchapixelは「Learn computer graphics from scratch and for free」というスローガンのもと、コンピュータグラフィックス全般を無料で学べるウェブサイト
現在公開されているコース
-
3Dレンダリングの基礎 (The Foundations of 3D Rendering)
- 初心者向けの順序で構成されたレンダリング入門講座
- 理論よりも直接的な成果物の実装を先に扱うアプローチを採用
- 主な講義テーマは以下のとおり
- Ray-Tracing入門、3Dシーンレンダリング、Rasterization、投影行列、シェーディングとライティング、テクスチャリング、加速構造、ボリュームレンダリングなど
- 各講義では実際の実装例とともに、ピクセル座標の計算、ピンホールカメラモデル、BRDFおよびシェーダーの概念などを扱う
-
コンピュータグラフィックスのための数学 (Mathematics for Computer Graphics)
- グラフィックス実装に必要な数学的理論とツールを説明
- このセクションは入門用ではなく、他の講義で言及された概念を参照するためのリファレンス資料として構成されている
- 主なテーマは幾何学、行列の逆演算(Gauss-Jordan法)、補間法、LookAt関数、シェーディングの数学、モンテカルロ法、フーリエ変換など
-
Computer Graphics Gems
- 特定のカテゴリには属さないが興味深い個別のグラフィックストピック集
-
Geometry
- コンピュータグラフィックスで形状を定義する方法を扱う
- Bézier曲線と曲面を使った形状表現の方法を説明
-
Digital Imaging
- 画像ファイル処理と色管理を扱う
- 主なテーマは光と色空間、デジタル画像のファイル-画面変換、基本的な画像操作など
-
Procedural Generation of Virtual Worlds
- 自然現象のプロシージャルシミュレーションを扱う
- Value Noise、Perlin Noise、空の色のシミュレーションなどのテーマを含む
-
Tooling
- 3Dツール開発とインタラクション技術を扱う
- ウィンドウ管理(Windowing)、OBJファイルフォーマット、カメラナビゲーション制御などの内容を含む
最近のニュース
- まもなく公開されるブログでは、3DプログラミングだけでなくAIと教育などの関連テーマも扱う予定
- Vulkan APIに関する新しい講義が追加される予定
- "Learn Computer Graphics Programming from Scratch"というタイトルの書籍も刊行予定
1件のコメント
Hacker Newsのコメント
このウェブサイトは本当に大きく進歩した。サンタが寄付を残すべきなくらい素晴らしい
コンピュータグラフィックスの分野には、もっと多くのオープンな教育資料が必要だと思う。昔の技術は古い本の中に埋もれていて、新しい技術は企業の壁の向こうに隠れている。Sergei Savchenkoの3D Graphics Programming Games and Beyondのような本がよい例だ。
最近のグラフィックスAPIは不必要に複雑なので、いっそGPUのことはいったん忘れて、ソフトウェアラスタライザやレイトレーサを自分で実装するのがよい出発点だと思う。
ただ、このサイトはDiscord以外の連絡手段がないのが惜しい。寄付ページもメインページからすぐ行けるとよい
これは本当に宝のような資料だ
私のハンドルネームは、昔作っていたReactor 3Dエンジンに由来している。Quake 3は高校時代の私の人生を変えた。Doomがコンピュータの世界への入口だったなら、Quake 3は私を3Dに夢中にさせた。
数学はあまり分からなかったが、コードを写しながら学び、今ではウェブとグラフィックスが交わるキャリアを歩んでいる。WebGLとWebGPUが一般化したおかげで、職場では博士たちにvertex packingやGPUへの構造体の渡し方を教えたこともある。
XNA Silverlight開発者と一緒に働いたこともあって、MonoGameの遠い親戚みたいなものだ。今ではVulkan/DX12/Metalのような新しい方式が主流だ
このサイトは本当に素晴らしい。ぜひ見てみたい
大学院時代にレイトレーサを自分で実装したが、そのとき参考にした本がAndrew S. GlassnerのAn Introduction to Ray Tracingだった。今では無料でダウンロードできる — リンク
昔作ったグラフィックスプログラミング無料資料まとめがある。今はあまり更新していないが、役に立つかもしれない — gistリンク
私のキャリアの大半で、グラフィックスは盲点だった。データや分散システムのほうに流れていったが、実は最初はゲームを作りたくてプログラミングを始めた
昔、OpenGLで惑星軌道シミュレーションを作ったり、Flashで妙なシューティングゲームを作ったりしたこともある。だが、Vulkanを学ぼうとするとコード量に圧倒されて諦めてしまう。根本的な概念をよく分かっていないからだと思う。いつか余裕ができたら真剣に学び直してみたい
例として Tiny Renderer と Ray Tracing in One Weekend を勧める。
こうした過程を経ると、GPUがなぜあのように設計されているのかを深く理解できる。その後でOpenGL 4.6やD3D11、そして ShaderToy, ShaderAcademy のようなサイトへと広げていくのを勧めたい
CPUベースのレンダリングが今でも重要な理由は、映画用レンダラが精度のためにCPUを使っているからだ。参考までに、WARP と LLVMpipe は実際のプロダクションでも使われているソフトウェアラスタライザだ
このウェブサイトのコンテンツを本当に楽しんでいる。昨年、AIサムネイルに関するフィードバックを反映してくれたのにも感謝している — HNフィードバックリンク
今年の目標の一つは、基礎からソフトウェア3Dレンダラを自分で作ることだ。ゲームエンジンもGPUも使わず、純粋に実装してみるつもりだ
最近はLLMにウェブサイトのリンクやPDFを入れて、インタラクティブな学習資料に変えられる。私も今日1000ページのPDFをそうやって変換して、ゲームエンジンの勉強に活用した。ブックマークしたまま放置しなくて済むのがよい
いつの日か、NVIDIAによるグラフィックスAPIの独占、Googleによるウェブ支配、そしてAMDの弱い代替案が終わることを願っている