2003年07月29日

書籍紹介

レンダラ書きには多くの数学的知識が求められます。
そこで各種必携リファレンスとなる書籍(個人的判断で)を紹介したいと思います。

近似アルゴリズム
Vijay V. Vazirani (原著), 浅野 孝夫 (翻訳)


book_aa.jpg

NP困難な問題(巡回セールスマン問題など)を、近似を使って現実的な時間で解くためのアルゴリズムについての集大成です。構成は Numerical Recipies のような感じになっています。Structured Importance Samping の実装の時に、 Hochbaum-Shmoys アルゴリズムについて調べていたらこの本の英語版(オリジナル)に出くわして買おうかどうかと思っていたのですが、先日本屋でこの日本語版を発見しました。


レンダラ書きがグローバルイルミネーションをやるにはまずレンダリングアルゴリズムの知識が必要です。

Advanced Global Illumination
Philip Dutre, Philippe Bekaert, Kavita Bala


avg.jpg

グローバルイルミネーションの解説本で、この分野の出版物としては数年ぶりになると思います。SIGGRAPH の同名のコースの内容が元になっています。去年(2002)の SIGGRAPH のコースでこの本が25%引きになるクーポンをもらったのですが、まさか出版が1年後になろうとは・・・もうクーポン捨てちゃったよ(もしかしたらコースノートの方の本が25%引きだったかもしれない)。いずれにせよずっとまえから出版予定なのになかなか出版されずにいたので、出版されてなによりです。

著者の1人である Philip Dutre 氏は、 グローバルイルミネーションのアルゴリズムと数学のコレクションである Global Illumination Compendium(グローバルイルミネーション大全) も書かれています。

http://www.cs.kuleuven.ac.be/~phil/GI/

内容としては、光輸送(light transport)の解説から始まり、パストレーシング、大域反射分布関数(GRDF)、確率論的ラジオシティ、ファイナルギャザリング、双方向パストレーシングなどになります。巻末にはパストレーサと双方向パストレーサのコードライブラリが付録として掲載されています。

評価:
 内容: 超スゴイ
 価格: 超ヤスイ
 射程距離: 超スゴイ
 持続力: 超スゴイ

レンダラ書きにはズキュウウン!とくるでしょう。


レンダラ書きにはシェーダ言語コンパイラを書けるくらいのコンパイラの知識が必要になるでしょう。

コンパイラ構成法
原田賢一 著, 共立出版株式会社, 1999


compilerconst.jpg

この本では、C言語と yacc/lex を用い、実践的なコンパイラの実装の仕方について書かれています。形式は Knuth の文芸的プログラミング(literate programming, どちらかというと読んで書くプログラミングと云ったほうがわかりやすいような)の感じで、設計とその実装のコードのペアを簡単なものから始めて、少しずつ足していって完成させていくという非常に分かりやすく実践的なものになっています。

<= to be continued

投稿者 syoyo : 00:19

2003年10月15日

Quantum Theory of Angular Momentum

PRT などをやる上で必須になる知識が球面調和関数です。

Quantum Theory of Angular Momentum
D.A. Varshalovich, A.N. Moskalev, V.K. Khersonskii
World Scientific Pub Co., 1998


shbook.jpg

この本は、ひたすら球面調和関数をはじめとして、量子力学で必要な数式のコレクションです。そのため詳細な式の背景や導出などはありませんので、入門書ではありません。

しかし球面調和関数と超幾何関数との関係などあらゆる公式が網羅されているので、非常に有益なリファレンスで必携です。
(量子論は今ブームな感じがするので、2, 3 年のうちに量子論によるレンダリングアルゴリズム、量子レンダリング(quantum rendering)法なるものが SIGGRAPH で発表されそうな気がします)

主なコンテンツは以下の通りです。

o ワイナー D 関数
o 球面調和関数
o スピン関数
o テンソル球面調和関数
o クレブシュ・ゴルダン係数(Clebsch-Gordan Coefficients)
o 3jm, 9j, 12j シンボル(3jm, 9j and 12j Symbols)
o 角モーメント理論のグラフ化法

投稿者 syoyo : 00:12

2003年10月29日

Wave Propagation and Scattering in Random Media

サブサーフェススキャタリングのネタについては、基礎理論から復習を兼ねて解説しようと思っていました。

しかし、Jensen の SIGGRAPH 2001 の論文でのボリュームレンダリング方程式からの拡散方程式の導出において cited され、また古くは SIGGRAPH 1994 年の Hanrahan & Krueger のサブサーフェススキャタリングの論文でも cited され、たぶんほとんどのサブサーフェススキャタリング系の論文で cited されているであろう書籍が入手できるまではやめておこうと思っていました。

で、このまえやっとその書籍が届きました。

その書籍が、


wavepropagation.jpg

Wave Propagation and Scattering in Random Media
Akira Ishimaru
John Wiley & Sons Inc, ISBN: 078034717X, 1997

です(通称 散乱本。 not 波紋本)。

著者は ワシントン大学の Akira Ishimaru 博士です。

http://www.ee.washington.edu/people/faculty/ishimaru/

この書籍は、ワシントン大学での大学1年生向けの講義をまとめたものであり、 1997 年に再発行されたものです。

Jensen や Hanrahan の論文では、1978 年発行の volume 1 が reference となっています。

書籍に書かれている説明によると、1978 年発行のものは2巻構成で発行されていましたが、その後絶版になり、1997 年にそれらを1巻にまとめて再発行したとのことです。

Hanrahan の論文では A. Ishimura と石村になっていますが、たぶんこれは a と u を入れ間違えたスペルミスでしょう。

これでサブサーフェススキャタリングの話題ももう少し詳しく解説できると思います。

投稿者 syoyo : 00:50

2003年12月28日

Graphics Programming Methods

紀伊国屋の洋書コーナーに久しぶりに行ってみたときに見つけた書籍。

Graphics Programming Methods
Jeff Lander, Charles River Media, 2003.



Graphics Gems のような構成を取っており、 コンピュータグラフィックスの 3 大カテゴリであるアニメーション、ジオメトリ、レンダリングをカバーしています。
リアルタイムネタ・非リアルタイムネタに関わらずかなり技術方面(研究方面)の記事集です。
論文を書いた人の自分の論文の解説記事とかが多いです。

前書きによると、この本は Game Programming Gems を起源としており、編集者は、Game Programming Gems 3 のレンダリングの章の編集をつとめたそうです。

しかも、どうもこの本はシリーズ化されるようです。

私のように研究方面の人にはかなり貴重な本です。
(っていうか本のタイトルからはなんか入門的な内容の本だと思い、研究的な内容だとは思わなんだのであやうくスルーしそうだった...)

万人向けかどうかは判りませんが、目次に自分の興味のあるネタが引っかかるのであれば買いだと思います。

んで、なんと Szirmay-Kalos László 氏 ( 以前の日記参照 )によるメトロポリス光輸送の論文の記事もあり、ソースコードも付いています。

洋書を本屋で買うと今までは定価の円換算の 2 倍であるのが常でしたが、
最近出版の本はほぼ円換算と同じ値段みたいです。Amazon の影響でしょうか。
実際に中身を見てから買えるのでうれしいですね。

投稿者 syoyo : 21:12

2004年01月05日

A Critical History of Computer Graphics and Animation

オハイオ州立大での CG の歴史のコース。

A Critical History of Computer Graphics and Animation

写真資料の数が半端じゃなく多くて凄いです。へたな書籍よりも詳しいです。SIGGRAH の生まれた経緯とかもあります。

個人的に興味を引いたのは CG 黎明期とプロダクションのセクションです。

投稿者 syoyo : 00:28

2004年01月21日

Hacker's Delight

コンピュータでの処理に適した計算手法のコレクション。


0201914654.01.LZZZZZZZ.jpg

この書籍のホームページ。

http://www.hackersdelight.org/


内容はというと、いかにして計算をビット演算や整数演算に持っていくかというものです。メガデモで使われるトリック(たとえば 50% の半透明化はシフトでできるとか、 RGB の加算や減算はビット演算で全要素同時にできるとか)などのようなものの集大成です。

メガデモ、 Java アプレットや組み込み CPU での 3D エンジン、ゲーム向けには良い本ではないでしょうか。書籍ではとくに整数演算(とビット演算)を主に取り扱っています。レンダラでは浮動小数点がメインになるので、なかなか恩恵を受けられる部分を見つけることは難しいですが、非常に参考になりそうです。

64 ビット CPU なら、 32.32 の固定小数点で演算を行うレンダラを書くというのも面白いかもしれません。まあしかし最近では浮動小数点演算も整数演算と同等に早いようですし、 SSE, AltiVec などの SIMD エンジンもありますので、浮動小数点計算もがんばっているようです。GPU も浮動小数点演算に移りつつありますしね。

投稿者 syoyo : 22:48

2004年02月19日

解析概論

数学を専門に学んでいる人たちには多分必携であろう古典的教科書本。




解析概論 改訂第3版 軽装版
高木 貞治 著

初学者向けに一から説明されており、数の説明から、関数、微分積分などを取り扱っています。最後はルベーグ積分で締めくくられています。やっぱりルベーグの考えや測度って重要ということでしょうか。

ベクトル、行列などは高校数学で教えてくれる(今のカリキュラムではどうなのかな)ので問題ないかもしれませんが、
それ以外で、たぶん 3D コンピュータグラフィックス(とレンダリング関連の論文)を理解していく上で必要な数学的要素はこれ一冊ですべてまかなえるのではないでしょうか。とくにオフラインレンダリング系は関数解析が重要になるかと思いますので非常に有益です。

たとえば僕は低食い違い量列(low-discrepancy sequence)を調べている時に、 sup (上限) が最初分らずになんだろうと疑問に思っていましたが、これもちゃんと解析概論で述べられています。

私はもっと早くにこの本に出会っていればよいと感じました(論文を理解する上で、そして研究を行う上で常に自分に数学的知識が足りないのを悔やんでいました)。

出版から年月が経っているのにも関わらず色褪せていなく一冊で十分な数学的知識を得られるので必携です。僕ももし本を書くような機会があったら 10 年 20 年と使えて内容が色あせることがないものが書きたいなぁ。

書評を付けるのならばッ!! A:超スゴイ A:超スゴイ A:超スゴイ A:超スゴイ A:超スゴイ のオールAッ!!!! こいつぁスゴイぜッ!!


.... と、今のところこの書籍紹介は図書館で借りて見たものを元にしています。週末には書店でちゃんと購入してきます。

投稿者 syoyo : 00:14

2004年03月03日

「実践CGへの誘い」(絶版本)の寄贈のご案内

「実践CGへの誘い」(絶版本)の寄贈のご案内

急げ!!!!
レンダラ、RenderMan やるなら必携本。

これほどまでに絶版が残念でならない本はありません。

ちなみに私は図書館で全ページをコピーしたクチです。

投稿者 syoyo : 00:09

2004年03月07日

本到着

ゴゴゴゴゴゴゴ... ゴゴゴゴ... ゴゴ...

某所から本が届きました。なんだろう?



ゴゴゴゴゴゴゴ... ゴゴゴゴ... ゴゴ... ゴゴゴ...



一体、一体なんだと云うのだァ〜〜〜〜!!!!!!!!!!!!!!!!!!!!!!



落ち着け、落ち着くんだ。素数を数えて落ち着くんだ。2... 3.. 5... 7... 9.. いや違う、 11...



うおおおおおおおおおおおおおおおおおおおお!!!!



ドォ〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜ン!!!!!



バア〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜ン!!!



実践ッ!! CG へのッ!!! 誘いィィィ〜〜!!!



謹呈... うれしすぎて涙ッ!!!


絶版により、もう一生手に入れることができないだろうと思っていた本が、出版社の好意で入手することができました。
書籍って形はやっぱりいいですね。ホントいい本は一生ものです。

これを糧に、がんばって RenderMan レンダラの実装していって恩を返していきたいと思います。

おまけ。



今まで使っていた全コピしてファイリングしていたやつ。

投稿者 syoyo : 21:44

2004年06月25日

グローバルイルミネーション入門

打倒、Global Illumination Compendium。打倒、Advanced Global Illumination。目指して書いてたりし始めてたもの。

そろそろまた書き始めないと。9 月までに間に合うかな...

gi.pdf

投稿者 syoyo : 00:40

2004年07月08日

空間充填曲線とフラクタル

今まで何回か 空間充填曲線 (space-filling curves)を取り上げてきました。

先日久しぶりに本屋に行ったら、なんと、空間充填曲線の研究で有名な Hans Sagan 博士 によるその名もずばりの良書 "space-filling curves"(略して SFC 本?) の邦訳書を見つけました。



ザーガン,H.【著】〈Sagan,H.〉・鎌田 清一郎【訳】
空間充填曲線とフラクタル
シュプリンガー・フェアラーク東京 (1998-12-22出版), ISBN:4431707751

邦訳書が出ていたとはつゆ知らず、 web でしか調べものをしていませんでした...

調べものをしている時に良書に巡り会えるように、
定期的に本屋を訪れたほうがいいですね。

投稿者 syoyo : 00:29

2004年07月24日

Phisically Based Rendering: from theory to implementation

Matt Pharr 大先生(と Greg Humphreys 大先生)による、
レンダラの理論から実際の実装までを詳細に解説した偉大なる書籍が、
SIGGRAPH 2004 の時期に合わせて出版されます。
(rend-algo より)



Physically Based Rendering : from Theory to Implementation
http://www.pbrt.org/

日本 amazon

この本と pbrt(Phisically Based ray tracer) のベースとなっているのは、
以前まで Mat Pharr 大先生らによるスタンフォード大の CG の講義で
用いられていた教育用レイトレーサ lrt(literate ray tracer)と、その解説書である
PDF による Matt Pharr 大先生の未完の大書
"The design of a realistic image synthesis system"
(通称 lrt book) です。

lrt book -> Phisically Based Rendering
lrt -> pbrt

という対応ですね。

lrt book は、Knuth の literate プログラミング(文芸的プログラミング) スタイルを周到した
もので、レンダリングやグローバルイルミネーションを、基礎から理論を学びつつも、
同時にじょじょにコードの実装もしめしていくことで、
最終的にレンダラ(lrt)が完成するというものです。
2003 年 11 月 12 日の blog 参照

文章による理論だけでなく、実際にコードとして書いて覚えることで、
効率的かつ詳細にレンダラ(レンダリング)を勉強できるということです。

実際にコードを書いてみないと見えてこない問題もありますし、
コードを書くことでより深く理解することができるので、このスタイルは
レンダリングの分野には非常に適合していると思います。

グローバルイルミネーションレンダラ書きには必携です。

「レンダラを書きたいと思った時にはッ!! すでに手元には pbrt 本を携えているんだッ!!!」

投稿者 syoyo : 14:36

2004年08月14日

tout sur le cirque

Kazuhiro Fujita 大先生による偉大なる著書 tout sur le cirque が発売になっています。

Kazuhiro Fujita
tout sur le cirque
Shonen sunday comic special, 2004, ISBN 4091277713.

各所まで詳細に解説されており、リファレンスとして非常に参考になります。

そして、いくつか lucille についての未知であった基本情報も知ることができます。

本名: Lucille Verneuil (ルシール・ベルヌイユ)
生年: 1789 年
フランスはキュベロンのクローグ村に生まれる。

というわけで、レンダラ lucille にも 200 年に渡る歴史があるのです。

「フランシーヌ様に忠誠心が足りないんじゃないかぇ?」

投稿者 syoyo : 20:27

2004年08月21日

計算統計 I -- 確率計算の新しい手法



汪 金芳 (著), 手塚 集 (著), 上田 修功 (著), 田栗 正章 (著), 樺島 祥介 (著), 甘利 俊一 (編集), 竹村 彰通 (編集), 竹内 啓 (編集), 伊庭 幸人(編集)
計算統計 I—確率計算の新しい手法 統計科学のフロンティア 11
岩波書店, ISBN: 4000068512, 2003.
amazon.co.jp

伊庭幸人先生 + ベイズ統計がらみで検索していたところ発見した書籍。

本のタイトルからは想像できかったので知らなかったのですが、実はこの本の第二章は手塚先生による超一様分布列(低食い違い量列, low-discrepancy sequences, LDS)の解説です。

日本語による LDS の解説がほとんど無いなかで、本書は日本語による LDS の貴重な文献であると思います。
(まあ 湯前本 を除くと、書籍になっている LDS に関する日本語の解説のほとんどは手塚先生によるものなのですが...)

とくに Sobol' のネット理論(Sobol's net theory)、Owen's randomization(Randomized QMC)や一般化 Niderreiter 列についても解説されています。
これは日本語では初めて解説されるものではないでしょうか?
(欲を言えば有限体理論による新しい LDS である NX 列(Niderreiter-Xing sequence) も取り上げてほしかった...)

また、なぜ手塚先生は LDS を超一様分布列と訳しているのか など、LDS に関する用語の日本語訳の問題についても取り上げており、これも LDS の歴史を知る上でとても貴重で参考となるものです。

超一様分布列は、かつて「準乱数」とよばれていたものとほとんど同じものである。
なぜ呼び方が変わったのかについて説明することが、この分野の歴史と背景を述べ
ることにもつながるため、この話から入ろう。
 
...
 
今日のようにコンピュータがこれだけ普及し、「乱数」もさまざまな分野で応用さ
れるようになると、準乱数と擬似乱数の違いを明確にするために、欧米では、
low-discrepancy sequences という用語が今日広く使われている。そして、
それに呼応して日本でも、その訳語として「超一様分布列」が用いられるようにな
ってきている。
ではなぜ、「low-discrepancy」の訳が「超一様分布」なのか?これには少しこの
分野の歴史から説明することが必要となる。
 
...
 
そこでは、分布の不規則性、すなわち一様分布からのズレを測る尺度としてディス
クレパンシーという量が定義され、ディスクレパンシーができるだけ小さい、つま
り「一様性のできるだけ高い」有限点列を構成することが主要な研究テーマとなっ
た。こうした理由から、「low-discrepancy」と「超一様分布」が結びつくので
ある。
(本書より一部引用)

うーむ、しかしそのような背景説明なくして、超一様分布列というのは low-discrepancy sequences である、というのを想像するのは難しいので、私のような初学者などにはこの訳は少々取っ付きにくい感じがします(まだ低食い違い量列(低い食い違い量を持つ列)や低齟齬列のほうがなんとなく想像できる)。


さて、本書を読んで目から鱗であったのは、LDS(準乱数)のデザインには「乱数らしい」性質を持つことは一切要求されていないということでした。

てっきりランダムに散らばった感じがしつつも一様に分布するものが LDS だと思っていましたが、本書によれば LDS は数値積分の収束を早くなることを目的としてデザインされた点列であるだけであるとのこと。

擬似乱数も実際にはランダムではなくてコンピュータで生成される「乱数らしさ」を持つ決定的に生成される点列です。

そういう意味ではコンピュータ上では擬似乱数も LDS も決定的な点列であり、ただその目的が異なっているだけことなっているということです。
(ただ、では「(擬似)乱数」を用いるモンテカルロ法と、「LDS」を用いる準モンテカルロ法も同様に同じ理論なのかと言うとそうではなく、前者は確率論で論ぜられ、後者は数論で論ぜられるのでそこは区別が必要だと思います。)

本書の第一章、第三章もベイズ統計がらみで参考になりそうです。

このシリーズは全 12 巻構成。全部買ったら大変だ...

投稿者 syoyo : 23:36

2004年09月19日

gift 追記

本へのリンク張り忘れました。

Matt Pharr, Greg Humphreys,
Physically Based Rendering: From Theory To Implementation
http://www.amazon.co.jp/exec/obidos/ASIN/012553180X

「レンダラを書きたい」っと心の中で思ったならッ!その時はスデに手元に pbr 本を抱えているんだッ!

投稿者 syoyo : 12:55

2004年11月05日

Production Rendering: Design and Implementation



Production Rendering: Design and Implementation
Ian Stephenson
Springer-Verlag, Hardcover, Estimated Publication Date September 2004,
416 pages, ISBN 1852338210
http://www.amazon.co.jp/exec/obidos/ASIN/1852338210

Another bible for renderer writers...

--

また一つ, レンダラ書きのバイブルが増えた。

シェーダコンパイラのうまい書き方、というのが気になります。
これが出るまでコンパイラ作成は待てば良かったかな?

それにしても最近は実践的なレンダリングの書籍が多く出てきていますね。
これからレンダリングを学ぶひとは、良書がいっぱいあって幸せだと思います。

-----

昔は、レンダリングシステムは多岐に渡るいろいろなアプローチを用い、
そのおのおのは似たり寄ったりのある種の画像をレンダリングすることができました。

しかし、ここ近年では、多くの研究方面の内容を、
安定させてプロダクションでも使えるレンダリングツールにするような、
実践的な開発が見られるようになりました。

Production Rendering: Design and Implementation は、
経験豊かなグラフィックスソフトウェア開発者によって書かれており、
映画品質のレンダリングエンジンを実装するのに用いられた技術について解説します。

主となるトピック
o マイクロポリゴン指向のグラフィックスパイプラインを管理する
レンダリングフレームワーク
o 異なった形状が引き起こす、どのようにサーフェスの形状に対して
シェーディングを行なえるようにするか、という問題
o シェーディングと、どのようにそのシェーディングをレンダリングパイプライン
に取り入れるか
o 良いシェーダコンパイラの書き方
o プロダクションレンダラにおけるレイトレーシング
o グローバルイルミネーションのレンダラへの取り込み方
o サーフェスサンプルをギャザリングして、最終画像を作成する
o レンダリングにおける tips and tricks


投稿者 syoyo : 00:11