Eric Veachの博士論文,``Robust monte carlo methods for light transport simulation''はその内容のすばらしさと,わかりやすさ,完結性で名高い.私は友達に勧められていたのにずっと読んでいなかったが,今回読んでみることにした.この論文には注釈は基本的に不要である.ただ,私のように rendering にあまり詳しくない人間の場合には,敷居の高い部分がある,その部分に注釈をつける.
Eric Veach の論文とは
Computer graphics ではこれまであまり物理的に正確ではなかった.正確に,しかもロバストに simulation を行なう方法に関してこの論文は総括的にかつわかりやすく説明している.すばらしい論文だと思う.
論文の入手方法
http://graphics.stanford.edu/papers/veach_thesis/
から download.
Veach論文の紹介
この論文を紹介するのに,一番の方法は論文自体の Introduction を読むことである.ここではその翻訳を掲載する.まずは原文に一対一に対応する形で,後に私が必要と感じたらより日本語として読みやすい形の翻訳を載せるつもりである.本来は一対一でしかも読み易いものが良いが,それは私の技能を越えるかもしれない.
つづく..
長いこと The last but not least という言いまわしが特殊なものだと思っていたが,先日,英語では最後のものというのは通常重要でない.重要なものは最初に来る.ということと組合さって,ようやくこれの意味がわかった.
日本では重要なものは最後に来ることがいくつもある.「取り」というのは最後の真打ちである.前座と言えば,重要性は下がる.だからこれが何を言っているのかわかりにくかった.最後だけれども,重要でないものではないよ,という意味は,最後は常につまらないものであるという仮定があるからだ.
さて,これは文化ではあろうが,私としては表面的な違いにすぎないと思う.私の知る限り,どの文化でも,ものごとの優先順位があり,それを高い順に並べるか,低い順に並べるかという違いはある.それは私には表面的に思う.日本では成績が高いものの数が大きい.たとえば,五段階評価でオール5というものがあった.これは優秀の意味であるが,ドイツで,五段階評価で全て 5 というのはなかり困ったことになるようだ.なぜなら 1 が優秀であることを示すからだ.アメリカでも ABC 評価では A の方が優秀である.
今日私は Rainer Werner Fassbinder の映画,Angst essen Seele auf http://www.imdb.com/title/tt0071141/ .を見た.個人主義の強いドイツであっても日本のようにやはり妬みがあり,そして世間のようなものが存在している.こういうものは日本の映画が上手いものと思っていたが,そんなことはないようだ.
老女が突然恋をする.しかし,そう簡単には幸せにはなれない.世間は理解しにくいこと,普通でないことを拒否する.外国人もその一つだろう.「発音が悪くて何が欲しいのかわからないね.」という店は確かに Berlin にもある.私の経験では,映画ほど酷くはないが,同じようなことが驚くほど上手く描かれている.しかしこれは残念だが,日本でもあることだ.私はこの作品に,文化を越えた人間の本質を見る.残念ながら映画は暗い.真摯に正直に人を書いていると思う.そして,一般人である主人公は幸せになれたとは言えない.この映画はあまり成功しなかったのでは思う.私もそうだが,映画を単純に空想の世界で楽しむという人は多い.現実は十分経験しているので,映画位,空想したいというのもよくわかる.
しかし,人が甘い菓子だけを食べていれば病気になるように,楽だからと言って,寝てばかりいればやはり健康を損なうように,苦くても見るべきものはあると思う.そのような作品だったと思う.
このように本質的なことを見ていくと,少なくともドイツと日本はかなり似ていると思う.私にとってこれは希望である.ドイツ人とは深い文化的な部分でもわかりあえるという希望である.いかに日本とドイツが違うか,ということは興味深いことである.しかし,それは本質なのかということをまず問いたい.この作品は私に太宰の作品を彷彿させた.この映画が見せるように,まったく違ってみえるこの二つの文化の底に見える類似性,それこそが私が面白いと思う部分である.表面的な違いを見つけることはたやすい.バイエルンとベルリンでもいくつもみつかる.しかし本質的なことをみつけるのは良い映画作品ですらまれであると思う.
日本では重要なものは最後に来ることがいくつもある.「取り」というのは最後の真打ちである.前座と言えば,重要性は下がる.だからこれが何を言っているのかわかりにくかった.最後だけれども,重要でないものではないよ,という意味は,最後は常につまらないものであるという仮定があるからだ.
さて,これは文化ではあろうが,私としては表面的な違いにすぎないと思う.私の知る限り,どの文化でも,ものごとの優先順位があり,それを高い順に並べるか,低い順に並べるかという違いはある.それは私には表面的に思う.日本では成績が高いものの数が大きい.たとえば,五段階評価でオール5というものがあった.これは優秀の意味であるが,ドイツで,五段階評価で全て 5 というのはなかり困ったことになるようだ.なぜなら 1 が優秀であることを示すからだ.アメリカでも ABC 評価では A の方が優秀である.
今日私は Rainer Werner Fassbinder の映画,Angst essen Seele auf http://www.imdb.com/title/tt0071141/ .を見た.個人主義の強いドイツであっても日本のようにやはり妬みがあり,そして世間のようなものが存在している.こういうものは日本の映画が上手いものと思っていたが,そんなことはないようだ.
老女が突然恋をする.しかし,そう簡単には幸せにはなれない.世間は理解しにくいこと,普通でないことを拒否する.外国人もその一つだろう.「発音が悪くて何が欲しいのかわからないね.」という店は確かに Berlin にもある.私の経験では,映画ほど酷くはないが,同じようなことが驚くほど上手く描かれている.しかしこれは残念だが,日本でもあることだ.私はこの作品に,文化を越えた人間の本質を見る.残念ながら映画は暗い.真摯に正直に人を書いていると思う.そして,一般人である主人公は幸せになれたとは言えない.この映画はあまり成功しなかったのでは思う.私もそうだが,映画を単純に空想の世界で楽しむという人は多い.現実は十分経験しているので,映画位,空想したいというのもよくわかる.
しかし,人が甘い菓子だけを食べていれば病気になるように,楽だからと言って,寝てばかりいればやはり健康を損なうように,苦くても見るべきものはあると思う.そのような作品だったと思う.
このように本質的なことを見ていくと,少なくともドイツと日本はかなり似ていると思う.私にとってこれは希望である.ドイツ人とは深い文化的な部分でもわかりあえるという希望である.いかに日本とドイツが違うか,ということは興味深いことである.しかし,それは本質なのかということをまず問いたい.この作品は私に太宰の作品を彷彿させた.この映画が見せるように,まったく違ってみえるこの二つの文化の底に見える類似性,それこそが私が面白いと思う部分である.表面的な違いを見つけることはたやすい.バイエルンとベルリンでもいくつもみつかる.しかし本質的なことをみつけるのは良い映画作品ですらまれであると思う.
この話は C++ の知識が必要です.前回のクイズの補足です.
友人から環境に依存するのか,それとも standard でこうなっているのかという質問がありました.前回の話では,
罠 4. 暗黙の変換で,この関数への pointer は boolean になる.
が実は standard かどうか怪しいところでした.そこで,gcc4, icc9, VisualStudio2008 で試してみました.少なくともこの3つではバグでなければ環境に依存します.
Visual Studio 2008
a.obj : error LNK2019: unresolved external symbol "class std::basic_string<char, struct std::char_traits<char>,class std::allocator<char> > __cdecl middle(void)" (?middle@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) refer
enced in function _main
a.exe : fatal error LNK1120: 1 unresolved externals
---
icc9
a.cc(6): remark #1419: external declaration in primary source file
std::string middle();
---
gcc4
a.cc: In function `int main()':
a.cc:6: warning: the address of `std::string middle()', will always evaluate as `true'
VisualStudio2008 では,リンカでエラーになります.icc9 と gcc4 は -Wall で warning がでますが,コンパイルでき,両者とも 1 を出力します.
私としては,VisualStudio2008 の振舞いが,一番わかりやすいです.というのは,関数の pointer は overload のために,引数によっても変化する可能性があるので,stream の通常の実装のように,型を specialize することができないのでは,と思います.void* を使うと,せっかくの template の意味があまりなくなってしまいます.このような状況下で,暗黙の変換を使って,コンパイル可能にするか,それともエラーにするかは,実装に依存するのではないかと思います.ここでの specialise との関係は,riddle を教えてくれた Peter から聞きました.
とにかく,こんなことがあること自体,C++は 難しいと思います.
友人から環境に依存するのか,それとも standard でこうなっているのかという質問がありました.前回の話では,
罠 4. 暗黙の変換で,この関数への pointer は boolean になる.
が実は standard かどうか怪しいところでした.そこで,gcc4, icc9, VisualStudio2008 で試してみました.少なくともこの3つではバグでなければ環境に依存します.
Visual Studio 2008
a.obj : error LNK2019: unresolved external symbol "class std::basic_string<char, struct std::char_traits<char>,class std::allocator<char> > __cdecl middle(void)" (?middle@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) refer
enced in function _main
a.exe : fatal error LNK1120: 1 unresolved externals
---
icc9
a.cc(6): remark #1419: external declaration in primary source file
std::string middle();
---
gcc4
a.cc: In function `int main()':
a.cc:6: warning: the address of `std::string middle()', will always evaluate as `true'
VisualStudio2008 では,リンカでエラーになります.icc9 と gcc4 は -Wall で warning がでますが,コンパイルでき,両者とも 1 を出力します.
私としては,VisualStudio2008 の振舞いが,一番わかりやすいです.というのは,関数の pointer は overload のために,引数によっても変化する可能性があるので,stream の通常の実装のように,型を specialize することができないのでは,と思います.void* を使うと,せっかくの template の意味があまりなくなってしまいます.このような状況下で,暗黙の変換を使って,コンパイル可能にするか,それともエラーにするかは,実装に依存するのではないかと思います.ここでの specialise との関係は,riddle を教えてくれた Peter から聞きました.
とにかく,こんなことがあること自体,C++は 難しいと思います.