THE FROST– 書籍紹介

THE FROST– 書籍紹介

画像は実際のサンプルプログラム実行時画面です。

THE FROST(本書はPDF書籍です)

霜を生成し、レンダリングする。
DXRによるプロシージャルフロストのリアルタイム表現

本書では、DirectX Raytracing(DXR)を用いて
霜の構造生成から最終的なレンダリングまでを実装します。
DLA(Diffusion Limited Aggregation)による成長モデルをベースに、
形状・成長・法線といった情報を段階的に構築しながら、霜の表現を完成させていきます。

本書の特徴

本書は、DirectX Raytracing(DXR)を用いたリアルタイムレンダリング技術を解説する実践的な技術書です。題材として、ガラス表面に形成される「霜(Frost)」の構造とその描画を扱います。

霜は、ランダムな粒子の拡散と付着によって形成される複雑なフラクタル構造を持ちます。このような自然現象は、一見すると不規則に見えますが、単純なルールの繰り返しによって生成されます。本書では、この成長過程をDLAによって再現し、構造そのものをプログラムで生成します。

解説はサンプルプログラムを中心に進められ、単一シードによる基本構造から始まり、複数シードによる拡張、距離場や成長順序(Height)、法線(Normal)の生成へと段階的に発展します。最終的には、それらをテクスチャとして出力し、DXRによるリアルタイムレイトレーシングで霜表現を完成させます。

リアルタイムレンダリングにおける「形状生成」と「光の表現」を一貫して理解したい開発者に向けた内容となっています。

対象読者

・DirectX Raytracing(DXR)によるリアルタイムレンダリングを学びたいプログラマ
・プロシージャル生成やフラクタル構造に興味のある開発者
・Normal MapやHeight Mapの生成を理解したい方
・C++によるリアルタイムCGプログラミングの経験を持つ方

DXRを初めて扱う方でも問題ありません。
低レベルのAPI詳細には踏み込みすぎず、処理の流れと構造を重視して解説しています。

必要な開発環境

・Windows 10 / 11
・Visual Studio 2022 以降
・DXR対応GPU必須(RTXシリーズ推奨)

本書には、動作確認用プログラムも付属しています。

付属データ

・各章のサンプルプログラム
・モデルデータ、テクスチャデータ

このシリーズについて

本書は、リアルタイムレンダリング技術を題材に、具体的なテーマを一つ取り上げてその実装を解説するシリーズの一冊です。各巻では特定のモチーフを中心に据え、実際に動作するサンプルプログラムをベースにしながら、アルゴリズムとレンダリングの関係を段階的に解説します。

シリーズでは、理論だけでなく「実際に動くプログラム」を通して技術を理解することを重視しています。コードを追いながら処理の意味を確認し、最終的に完成した結果を自分の環境で再現できる構成になっています。

本書『THE FROST』では、霜の構造生成とそのレンダリングを題材に、DirectX12 + DXRによるリアルタイム表現を扱います。サンプルプログラムを中心とした、実装ベースの解説となっています。

一冊につき、一つの質感。
一冊につき一つの現象を深く掘り下げることで、特定の表現を実装レベルで習得できる構成になっています。

著者より

アルタイムCGの分野では、多くの技術がレンダリングやシェーダーの視点から語られます。しかし実際には、「どのように形を作るか」も同じくらい重要な問題です。

本書では、霜という自然現象を題材に、構造の生成からレンダリングまでを一貫して扱います。DLAによって形を作り、HeightやNormalといった情報を付与し、それを光によって可視化するという流れを通して、形とレンダリングの関係を理解することを目的としています。

霜は一見複雑に見えますが、その生成は非常にシンプルなルールの繰り返しです。本書では、その過程を段階的に実装しながら、最終的にリアルタイムで描画される霜表現を完成させます。

本書が、プロシージャル生成とリアルタイムレイトレーシングの理解を深める一助となれば幸いです。

書籍外観

「はじめに(全文)」

本書では、「霜(Frost)」という一つのテーマを通して、形状生成からレンダリングまでの一連の流れを解説します。

霜は、一見すると単なる模様のように見えます。しかしその構造をよく観察すると、枝分かれした複雑なパターンが広がっており、自然界に見られる特徴的な成長現象を反映しています。このような構造は、ランダム性と局所的なルールの組み合わせによって生まれます。

本書では、この現象をシンプルなアルゴリズムから再現していきます。まず、粒子の拡散と付着によって構造を形成するDLA(Diffusion Limited Aggregation)を用いて、霜の基本形状を生成します。続いて、その構造に対して成長順序(Height)や面の向き(Normal)といった情報を付与し、単なる形から意味のあるデータへと拡張していきます。

さらに、それらのデータをテクスチャとして出力し、最終的にはDirectX Raytracing(DXR)を用いたレンダリングによって、光の相互作用を含めたリアルな表現へと仕上げます。

本書の特徴は、「見た目」だけでなく、その背後にある構造とデータを段階的に構築していく点にあります。形を直接作るのではなく、ルールと情報を積み重ねることで結果として形が現れる、というプロセスを重視しています。

また、使用するコードはすべてシンプルな構成で実装されており、アルゴリズムの理解に集中できるようになっています。レンダリング部分については、筆者が作成したライブラリを用いることで、複雑な初期化や低レベル処理を意識せずに、本質的な部分に焦点を当てられるようにしています。

本書を通して、次のような理解が得られることを目標としています。

・自然な形状がどのように生成されるか

・データ(HeightやNormal)がどのように意味を持つか

・それらがどのようにレンダリングに影響するか

最終的には、「形を作る」のではなく、「構造と光によって形が現れる」という考え方を体験できるはずです。

本書が、リアルタイムレンダリングやプロシージャル生成に興味を持つ方にとって、新たな視点を提供する一助となれば幸いです。

目次

サンプルプログラムのダウンロード 0
ダウンロード方法 0
内容について 0
注意事項 1
はじめに 2
目次 4
第1章 DLAによるフラクタル生成 6
1.1節 霜表現にDLAを用いる理由 6
1.2節 Single Seedによる基本DLA 9
1.2.1項 グリッドと初期状態 9
1.2.2項 粒子の移動と付着 9
1.2.3項 成長の仕組み 10
1.2.4項 描画 11
1.2.5項 まとめ 11
第2章 DLA Multi Seed 12
2.1節 全体構造 12
2.2節 グリッドと基本関数 13
2.3節 シードの生成 13
2.4節 粒子の移動と付着 14
2.5節 成長の特徴 14
2.6節 乱数の固定 15
2.7節 描画 15
2.8節 まとめ 15
第3章 Distance Field 17
3.1節 全体構成 18
3.2節 データ構造 19
3.3節 DLAの変更点 19
3.4節 距離場の初期化 19
3.5節 距離伝播(前方パス) 20
3.6節 距離伝播(後方パス) 20
3.7節 可視化 20
3.8節 意味と応用 21
3.9節 まとめ 21
第4章 Height Map 22
4.1節 全体構造 23
4.2節 成長順序の記録 24
4.3節 Heightとしての変換 24
4.4節 可視化 25
4.5節 本質 25
4.6節 まとめ 26
第5章 Normal Map 27
5.1節 全体構造 27
5.2節 高さの変化と法線 27
5.3節 Heightの取得 30
5.4節 勾配の計算 31
5.5節 法線ベクトルの構築 31
5.6節 正規化 32
5.7節 可視化(Normal Map) 32
5.8節 スケールの調整 32
5.9節 意味と効果 33
5.10節 まとめ 33
第6章 PNG Output 34
6.1節 全体構成 34
6.2節 出力のトリガー 34
6.3節 バッファ生成 34
6.3.1項 Diffuse(Height) 35
6.3.2項 Normal Map 35
6.4節 PNG保存(WIC) 35
6.4.1項 ピクセル書き込み 36
6.5節 BGR順序 36
6.6節 実行結果 36
第7章 THE FROST 38
7.1節 全体構成 39
7.2節 モデルの配置 39
7.3節 カメラとライト 39
7.4節 モデルの変換 40
7.5節 カメラ操作 40
7.6節 レイトレーシング設定 40
7.7節 テクスチャの役割 41
7.8節 DXRによる効果 42
7.9節 本質 42
7.10節 まとめ 42
著者紹介 44
著作権および利用条件について 46
免責事項 47
THE FROST 48