レイトレ合宿6に行ってきました

島です!

レイトレ合宿6 に行ってきました!

f:id:ushiostarfish:20180908173421j:plain

今年は神津島です。島にくると旅行している感が圧倒的で、テンションは爆上がりですね!(天候で帰れないリスクとかありますけど・・・延泊組は台風の影響が少し心配されましたが、全員無事帰ってこれたようです) 自分は朝のジェット船組だったので、1日目は温泉にひとまず入ったらすぐメインイベントへ

あとまったく知らなかったのですが、丁度その日に第1回神津島アクアスロンなるイベントが昼にあったらしく、

第7回 神津島アクアスロン大会が開催されました。 - 本日の神津島

温泉の場所から、レイトレ合宿イベント会場までの道路も封鎖される!!!ということで少し焦りつつレンタルサイクルを飛ばしました。(間に合ったはずだったんですが、結局みんなが遅れているのをいいことにフランクフルトを買っていて遅刻しちゃいましたが・・・すみません!

レイトレ検定

偉人Tシャツシリーズのおかげで、Ivan Edward Sutherlandを選ぶ問題は楽勝だったものの、結構わからない問題も。ぐやじい('ᾥ' )。 レイトレ合宿はラスタライザを滅ぼしリアルタイムレイトレーシングを実現することだったのか・・・精神を高めるためだと思ってた・・・

ところで、来年はぜひ三葉レイちゃんTシャツが欲しいです!よろしくお願いします!

参加していない方も、レイトレ合宿6 に問題と回答があるのでレイトレが好きな人は楽しめると思います。

三葉レイちゃんの応援メッセージ

f:id:ushiostarfish:20180908180758j:plainレイトレ合宿6 サイトより

なんと、特別に応援動画をいただいていたとのこと!かわいい。 なにか絡みがあるんじゃないかと前々から思ってはいましたが、驚きました! もちろん中の人などいないのですが、マネージャー的な人は現地参加者の中にいるんじゃないかと思っていたものの、どうやらそうでもないようです。かわいい

セミナー

Zinさんおよびishiyamaさんによる発表がありました。Zinさんの発表でのレンダラーのテストの話は、わりと頭の痛い問題だなぁ・・・と思います。特に組み合わせで発生するような問題をあぶり出すために、うまいテストを作りたい、というのはレンダラー開発だけで起こる問題ではないようにも思いました。 ishiyamaさんの発表では、ボリュームレンダリング方程式にいくつかの仮定をおくことで大気拡散のモデルを導出するというものでしたが、高度すぎて自分はポカーン状態でしたが、ざっくりと考え方や雰囲気を追うだけでも勉強になりました。こんなふうに自在に理論を操ることができれば、やれることの自由度がぐっと上がりそうで、それはとても良いことだなぁと思いました。 ずっと自分はボリュームレンダリングはほったらかしだったので、そのうちチャレンジしたいとは思っています。holeさんによると、

cs.dartmouth.edu

サーベイとしてとても良いとのことだったので、後ほどチャレンジしたいです。

発表

今回の自分の最終絵はこちらです。 f:id:ushiostarfish:20180908180505p:plain フルHD(1920x1080) のおそらく520sppいかないくらいで終了だと思います。(embree、ポリゴン超多くてもパフォーマンスめちゃくちゃ良くてびっくりです。

そして3位の景品をいただきました!ありがとうございます! 本だけどカメラ・・・カメラなのに本です。近い内に試したいですね!

スライドとソースコードはこちらです。

※ベルベットですが、ラフネスがわりと低い割にエッジの光り方が弱い気がするがちょっときになるところで、後ほど追加検証せねば・・・

あんまり尖ったことは盛り込めなかった反面、houdiniとかembreeとかうまく噛み合ってすごく開発はやりやすかったところは良かったです。来年加速データ構造をどうするかはちょっと悩みますね...それこそRTXに乗っかるならそれもいいのかもしれませんが、embree爆速だったとはいえずっとembreeというのも味気ない...

ところで、NUMA(Non-Uniform Memory Access)により半分しかうまくCPUを使えない!!問題がwindowsであったようなのですが、TBBのおかげか、自分のケースでは特に意識することなく妥当な並列性能だったように思いました。どうやらTBB 3.0からは透過的に扱えるになっているらしいです。

software.intel.com

しかし、今年もみんなそれぞれ違ったチャレンジがあり、すごい! 目立つところだと、光源をガラスの中に閉じ込めるハードモードをやったり、VCMへのチャレンジや、メニーライト、Full-Featured with RTX、大気拡散...などなど アドベントカレンダーもどれも勉強になるものばかりです。調べたり勉強したり試したり、そしてそれが共有されて、みなが先生であり生徒になっていけば、きっとガンガン加速していきそうです。(ちょっと意識すぎるコメントになってしまいました。

シーンについて

スライドではあんまり詳しくシーンの作りについては共有しておりませんでしたので、こちらに自分の備忘録としても良いので乗っけておこうとおもいました。

イルカ

イルカについてはまずblenderでMirrorモディファイアとSubdivision Surfaceモディファイアを適用しつつ手作業でモデルを作成します。 f:id:ushiostarfish:20180909190535p:plain blender 上でdeformモディファイアとかで曲げても良かったのかもしれませんが、今回はhoudiniをいろいろ使っていきたかったので、この時点でhoudiniに持っていきます。

Houdiniに持ってきたら、Wire Captureをして、 f:id:ushiostarfish:20180909191238p:plain

ラインをBendしたものを用意して、 f:id:ushiostarfish:20180909191336p:plain

Wire Deformを適用します。 f:id:ushiostarfish:20180909191425p:plain

Curveでまず1区画を作ります。 f:id:ushiostarfish:20180909191837p:plain

いったんゴニョゴニョやってメッシュ化します。縦には細かく刻んであるのは曲げても破綻しにくくするためです。 f:id:ushiostarfish:20180909191957p:plain

LineとCopy to Pointsを使って繰り返します。 f:id:ushiostarfish:20180909192217p:plain

Vexプログラミングで丸くします。 f:id:ushiostarfish:20180909192315p:plain

押し出したり、Fuseでつなげたり法線を調整したりして完成です。 f:id:ushiostarfish:20180909192413p:plain

Houdiniのよく挙げられる良いところは非破壊なところで、一番最初のカーブまで戻って修正が可能なところです f:id:ushiostarfish:20180909192714g:plain

リング

まずはラインを用意して、 f:id:ushiostarfish:20180909193010p:plain

すごく適当にランダムに動かしつつ、法線とスケールをすごく適当に設定します。このとき微妙に配置が気にいらないときは、乱数シードをずらしてかっこいいのを探します。数十個程度パラパラと見れば良いシードが見つかるものです。 f:id:ushiostarfish:20180909193042p:plain

Copy To Pointsでサークルを配置して、 f:id:ushiostarfish:20180909193135p:plain

Poly Wireで厚さをつくって、 f:id:ushiostarfish:20180909193235p:plain

ポリゴンがめり込んでいるのは今回は嫌だったので、一度VDB from PolygonsとConvertで一度vdbを経由することで、 めり込みを回避しつつリングの境界線をなめらかにします。 f:id:ushiostarfish:20180909193334p:plain

あとは外側のリングを適当に配置して完成です。 f:id:ushiostarfish:20180909193604p:plain

クロス

まず適当な粗さでグリッドを用意しつつ、Cloth Objectボタンを押して、ビューポートでオブジェクトを選んで、Enterを押します。 f:id:ushiostarfish:20180909194451p:plain

この操作で自動的にシミュレーション用のノードが構成されます。(ここの構造あんまり慣れておらず、理解が浅いです。すみません すると、フレームを進めるとすでに自由落下をはじめます。 f:id:ushiostarfish:20180909194543p:plain

適当なオブジェクトを配置します。ポリゴンになってないとシミュレーションがうまくいきませんでした。 f:id:ushiostarfish:20180909194821p:plain

今度はCloth Objectボタンと同様に、Static Objectボタンを押して選択すると、自動的にシミュレーションノードに組み込まれます。 f:id:ushiostarfish:20180909195023p:plain

あとはオブジェクトサイズとか、物理パラメータを微調整するなどしつつ、シミュレーションすれば、 f:id:ushiostarfish:20180909195625g:plain

シミュレーションのポリゴンが荒い場合は、Subdivideノードを挟むだけで綺麗になります。 f:id:ushiostarfish:20180909195800p:plain

床がちょっとだけ寂しかったので、模様をつけることにしました。 まずはボックスを用意して、 f:id:ushiostarfish:20180909200230p:plain

グリッドをラインに変換したあと、 f:id:ushiostarfish:20180909200303p:plain

ワイヤーメッシュ化して、 f:id:ushiostarfish:20180909200414p:plain

Booleanで表面を削ってしまいます。 f:id:ushiostarfish:20180909200511p:plain

これだけです。 結構プログラミングのアイディアを簡単に組み込んでいけるHoudiniは、楽しいものです。 興味の湧いた方はまずはApprentice版をダウンロード!

www.sidefx.com

部屋から見えた夕日

f:id:ushiostarfish:20180908193202j:plain

すごかったです。そして来年の合宿も楽しみです。 運営の皆様、大変ありがとうございました!