すらりん日記は 技術書典12に参加します

すらりん日記は、サークル名「すらりんラボ」として、技術書典12(オンライン) に参加します。今回のすらりんラボでは、新刊2冊を出します。技術書典12は 1/22 (土曜) から 1/30 (日曜) まで、オンラインイベントで開催されます。

頒布情報

  • 日時: 2022/1/22 から 2022/1/30
  • 場所: 技術書典オンラインマーケット
  • 頒布物:
    • 【新刊】Vulkan Raytracing Programming Vol.1
    • 【新刊】手軽に使う Docker の本 ~用途別コンテナカタログ
    • DirectX Raytracing Programming Vol.1

続いて、技術書典12に向けて用意している新刊の内容を紹介します。

Vulkan Raytracing Programming Vol.1

Vulkan にもレイトレーシングの標準化された拡張機能が追加され、各ベンダーで共通のAPIで H/W を活かしたレイトレーシングができるようになりました。これを用いてプログラミングをする入門書籍となっています。基本的な描画から始め、反射や屈折、影の簡単な描画、最終的にはキャラクターモデルの描画を行う1冊となっています。

レイトレーシングということで写実的なリアルな映像を期待するかもしれませんが、本書では基礎的な内容となっており、 API の使い方を学ぶための1冊という位置づけです。これから Vulkan Raytracing のプログラミングを始めてみよう!と考えている人が対象となっています。

目次

本書の目次です。

  • 第1章 はじめに
  • 第2章 Vulkan Raytracing
  • 第3章 セットアップ
  • 第4章 レイトレーシングシェーダーの関数
  • 第5章 シェーダーのコンパイル
  • 第6章 ここから始める Vulkan Raytracing
  • 第7章 Vulkan Raytracing による 3D シーン
  • 第8章 マテリアルを分けた描画
  • 第9章 影を追加する
  • 第10章 Any Hit シェーダー
  • 第11章 Intersection シェーダー
  • 第12章 シェーダーバインディングテーブル
  • 第13章 モデルを描画する
  • 第14章 キャラクターモデルを描画する
  • 第15章 デバッグ・調査ツール
  • 第1章 はじめに
    1.1 Vulkan Raytracing の簡単な紹介
    1.2 対象読者
    1.3 動作環境
    1.4 サンプルコード
    1.5 免責事項
    1.6 禁止事項
  • 第2章 Vulkan Raytracing
    2.1 レイトレーシング法
    2.2 Vulkan Raytracing の歴史
    2.3 レイトレーシングのためのデータ構造
    2.4 レイトレーシングパイプライン
    2.5 シェーダー設定の新しい方法
    2.6 まとめ
  • 第3章 セットアップ
    3.1 Vulkan SDK のセットアップ
    3.2 依存ライブラリについて
    3.3 まとめ
  • 第4章 レイトレーシングシェーダーの関数
    4.1 traceRayEXT 関数
    4.2 reportIntersectionEXT 関数
    4.3 terminateRayEXT 関数
    4.4 ignoreIntersectionEXT 関数
    4.5 executeCallableEXT 関数
    4.6 システムビルトイン変数
    4.7 まとめ
  • 第5章 シェーダーのコンパイル
    5.1 Vulkan Raytracing のシェーダー
    5.2 オフラインコンパイル(glslangValidator)
    5.3 オフラインコンパイル(glslc)
    5.4 実行時コンパイル
    5.5 まとめ
  • 第6章 ここから始めるVulkan Raytracing
    6.1 オーバービュー
    6.2 Raytracing の初期化
    6.3 BLAS の準備
    6.4 TLAS の準備
    6.5 出力バッファの生成
    6.6 レイアウトの生成
    6.7 シェーダーの準備
    6.8 パイプラインの生成
    6.9 Shader Binding Table の生成
    6.10 レイトレーシングによる描画
    6.11 まとめ
  • 第7章 Vulkan Raytracing による3D シーン
    7.1 3D ジオメトリの生成
    7.2 Acceleration Structure の生成
    7.3 レイアウトの生成
    7.4 カメラ視点からのレイ生成
    7.5 シェーダーで頂点属性を求める
    7.6 パイプラインの生成
    7.7 Shader Binding Table の構築
    7.8 動的なユニフォームバッファ
    7.9 Dear ImGui を組み込む
    7.10 描画
    7.11 まとめ
  • 第8章 マテリアルを分けた描画
    8.1 マテリアル毎の描画をわけるアイデア
    8.2 マテリアルID を使う
    8.3 テクスチャを使う
    8.4 反射
    8.5 屈折
    8.6 本章のサンプルの実行結果
    8.7 RADEON RX シリーズの場合
    8.8 まとめ
  • 第9章 影を追加する
    9.1 シャドウレイを飛ばそう
    9.2 点光源とソフトシャドウの手前
    9.3 ソフトシャドウ(の手前)
    9.4 RADEON RX シリーズの場合:シャドウ編
    9.5 TLAS の動的更新
    9.6 まとめ
  • 第10章 Any Hit シェーダー
    10.1 Any Hit シェーダーの役割
    10.2 アルファ抜き(アルファテスト)
    10.3 Any Hit シェーダーによるアルファ抜き実装
    10.4 まとめ
  • 第11章 Intersection シェーダー
    11.1 Intersection シェーダーの役割
    11.2 AABB ボックスおよび球体を書くための判定処理
    11.3 Intersection シェーダーを使うための準備と設定
    11.4 レイマーチングによるジオメトリの記述
    11.5 本章のサンプルの実行結果
    11.6 まとめ
  • 第12章 シェーダーバインディングテーブル
    12.1 各テーブルのアライメント
    12.2 シェーダーレコードのアライメント
    12.3 呼び出されるレコードの決定
    12.4 まとめ
  • 第13章 モデルを描画する
    13.1 glTF 形式の読み込み
    13.2 描画用インスタンスとBLAS の構築
    13.3 描画用のシェーダー
    13.4 シェーダーテーブルの構成
    13.5 TLAS の構成と描画
    13.6 まとめ
  • 第14章 キャラクターモデルを描画する
    14.1 オーバービュー
    14.2 glTF からスキニング情報を読み込む
    14.3 スキニングの変形処理を実装
    14.4 描画処理
    14.5 スキニング計算
    14.6 まとめ
  • 第15章 デバッグ・調査ツール
    15.1 NVIDIA Nsight Graphics
    15.2 Radeon GPU Profiler
    15.3 まとめ

サンプル

この本の目次を含めたサンプルページを画像にしたものを公開します。参考にしてください。

BOOTH での取り扱い

BOOTH でも取り扱いをしています。

Vulkan Raytracing Programming Vol.1 - すらりんラボ - BOOTH
Vulkan の拡張機能として追加された Vulkan Raytracing API についてのプログラミング入門書籍です。 Vol.1 では、古典的レイトレーシングを対象として、 Vulkan Raytracing によるプログラミングの基礎を説明します。簡単なところから始め、変形可能なキャラクターモデルの描画までを...

手軽に使う Docker の本

使い始めると Docker は便利なのですが、最初の1手に少し手間取ることも多いように思います。それを解決するために、各用途ごとに動く設定をいうものをまとめた1冊を作成しました。コンテナを利用して実験用のサーバー・サービスが欲しいときや、コンテナ内開発など、いざ使おうとしたとき、ちょっと手間取ったらこの本を開くと解決するかもしれません。

設定について誌面省略を行っていませんので、コピペでも動くように配慮しています。仕組みよりも動かせる!を初手として重要と考えていますので、まずは各コンテナを動かして遊んでみませんか?

目次

本書の目次です。

  • はじめに
  • 第1章 Docker のセットアップ
    • 1.1 Docker Desktop for Windows の場合
    • 1.2 Docker on WSL2 の場合
    • 1.3 Windows コンテナのお話
    • 1.4 Docker Desktop for Mac の場合
    • 1.5 docker-compose の基本
    • 1.6 サービスを提供するためのポート設定
  • 第2章 サービスを提供するコンテナ
    • 2.1 Web サーバー: nginx
    • 2.2 データベースサーバー: MySQL
    • 2.3 コンテンツ管理システム: WordPress
    • 2.4 プロジェクト管理ソフトウェア(Redmine)
    • 2.5 ローカルのAmazon S3 環境: MinIO
    • 2.6 リポジトリ管理システム: Gitea
    • 2.7 CI/CD ⽀援サーバー: Jenkins
  • 第3章 ビルド環境のコンテナ
  • 第4章 開発環境としてのコンテナ
    • 4.1 Visual Studio Code によるコンテナ内開発
    • 4.2 Python Flask を使った開発環境
    • 4.3 Spring Boot を使った開発環境
    • 4.4 Vue.js を使った開発環境
    • 4.5 React を使った開発環境
  • 第5章 コンテナの中からDocker
    • 5.1 Docker in Docker (DinD)
    • 5.2 Docker out of Docker (DooD)
    • 5.2.1 docker.sock をマウントする⽅法
    • 5.2.2 DOCKER_HOST 環境変数を使⽤する⽅法
  • 付録A おまけ
    • A.1 Redmine プラグイン⼊⾨
    • A.2 macOS をコンテナで動かす
  • あとがき

サンプル

BOOTH での取り扱い

BOOTH でも取り扱いをしています。
https://booth.pm/ja/items/3564877

タイトルとURLをコピーしました