ようやく計算が出来るようになったが考慮不足が沢山残っている。 例えば降雨量などは考慮できていない。 つまり、適当に河川上流から適当な流量を流しているだけ。 ただし、シミュレーションの計算は方程式どおりにやっているので計算は一応はちゃんとやって…
カー解のnull測地線が計算できるようになったのでレンダリングしてみた。 左からa=0, a=0.7, a=0.9999 のブラックホール。 よく分からないが形が変わって見える。(あってるのか不明) 一応、計算できているが測地線の点列を計算する過程で点間隔が殆どゼロ…
前回「コーネルボックスの中にブラックホール」をやってみたが、宇宙空間を想定してブラックホールをパストレーシングしてみた。 インターステラーで見た映像とそっくりにレンダリングできた。
ブラックホールをレイトレする例はわりとあるけどパストレーシング(GI)でやってる例が見当たらなかったのでやってみた。 null測地線を計算するのは良いけどレイの原点、レイ方向を初期条件にしたnull測地線を計算する方法が分からない。 仕方が無いのでnull…
河川氾濫で降雨の影響を考慮するにはタンクモデルというやつで計算するようだが面倒なので適当に地形全体に雨を降らせる。 後は勝手に地形に沿って増水するはずだと考えた。 しかし、この考えは通用しない事がわかった。 ※あくまで今の実装ではだが、、、 例…
基盤地図も読み込めるようになった。 googleMapでマッピング。 わりとリアルな感じ。 先日書いたように上流からドバッと水を河川に流して見たがいい感じになっている。昨年、鬼怒川の堤防が決壊して大変な災害がおきているのでその近辺の5mメッシュ。 で、…
基盤地図を読み込めるようにした。 どうも河川の標高は取得できない。つまりDEM上は不定になっていてGeoTiffでみると真っ黒。多分「水」があるから河底標高(地盤高)は測定できないのだろう(多分、、、)。 仕方が無いので周囲の標高から攻め込んで穴埋め…
今日は複数の河川がある場合に対応したのと河川が合流するケースにも対応。それと地形に対して「堤防」の設置(属性)も追加した。 合流部は河川Aなのか河川Bなのか? とりあえず平均値にする事にした。 変な話だがN本の河川が合流するケースも考慮。 ここま…
iRICを色々と試しています。 凄い。 ふと、思ったのは河川だって津波・高潮シミュレーションと同じ方程式でやるんじゃないかと。 ソルバは出来ているので試してみようと思ったが初期条件をどうしたらいいのか、、、 津波・高潮シミュレーションでは海洋(水…
津波・高潮シミュレーションだが前にも書いたように私のヤツはレギュラー格子なので色々と苦労しているのだがまだ、境界条件が適切に扱っていない。 ※スタッガード格子だと境界条件は簡単になるようです。 で、流体でいうところの圧力の境界条件を誤魔化して…
Conjugate Gradient Methodで計算しているがソルバとソルバ前段階で工夫したところ一気に30倍高速に処理できるようになった。 300x300画像で1分だったのが2秒。 550x450画像で30分だったのが1分弱。 後はOpenMPで並列化できるところは…
一応、精度を満たす計算がまともに出来るようになった。 スパース行列なのでNR(Numerical Recipes)に書いてあるConjugate Gradient Method(2.7 Sparse Linear Systems)を使って計算。 ソルバ自体は割りと高速に計算出来ているがその前処理 Indexed Stora…
まだまだ正しい結果にならない。 誤差なのか拘束条件で指定したピクセルか分からなくなる。拘束条件と判定されるとその周囲の色が動かなくなってしまう。 沢山の考慮漏れとバグがあるがちゃんとそれっぽく計算できたやつが下の絵。Photoshop職人達(?)が歴史…
理論的に不可能 TV等で自動的に白黒カラー化が可能になったような放送を見たという人も多いよで私も凄い技術だと思った。しかし、良く考えると不可能な話だ。カラー(24ビットとして)、白黒8ビット、どうやっても失われた情報は復元できない。 視聴者にイン…
SSS(sub surface scattering) 実装してからしばらくたつけど気に成っている点を修正。 bssrdfによる実装が高速らしいが、まだ論文の幾つかの式がが理解できない。 現在の実装は素直に散乱をシミュレーションしているのである意味物理的だが問題点もある。 そ…
バグが直ったので台風201330号(HAIYAN)の計算が終わったので こんな感じになった。計算は正しそうだ。
RGBをスペクトルに変換する部分が出来たので試してみた。 シーンはholeさん「穴空間」のをまねて作った。 RGBでレンダリングしていないが見た目が同じになったので合っていそうです。 でも、虹が出ていない。 そこでモデルを変えてみた。またまたholeさんの…
バグが直ったので再計算しました。 名古屋港の潮位変化(T.P 0) 潮汐は考慮していない。 名古屋港での最高潮位と時刻は概ね再現されていると思う。 若干、過剰評価しているので海面抵抗計算を補正する必要がありそうです。
やっと間違いが分かった。 後日、修正したコードで再計算してみようと思う。 さて、間違いは単純だったがこれの間違いが分かるのには相当時間が掛かった。 簡単に言うと、、、 int foo( int W, int H, int i, int j, Foo& f ); という関数の呼び出しを間違え…
計算してみた。 当時の名古屋港の観測値と全くといっていいほど合っていない事が分かった。 コンタで見る限りはそれなりの結果だったので今までは合ってると思っていたが、、、 ふと、思って名古屋港の潮位変化をグラフにしてみたらたった50cmしか上昇し…
スペクトルでレンダリング出来るようにしています。 レンダラが大体出来るとスペクトルへの対応は8割は終わっているようなものだと思います。 というのも処理の流れは全く同じなはずで若干のスペクトルへの対応があるだけですが残りの2割は以外に壁が厚い…
ようやくPSSMLTがちゃんと動くようになった。 OpenMPとMPIで並列化も出来た。 実は最近まで実装後の結果で正しい結果が何か分からなくなっていた。 穴空間「http://kagamin.net/hole/」で公開されているのと比較しても結果が異なるし、、、 試行錯誤している…
津波シミュレータを少し改良しました。 今までは断層破壊が瞬時に起こるか時間差で起こるかが指定できましたが、ある断層の破壊が進行している途中で別の断層の破壊がはじまるようなパターンは計算出来ませんでした。 しかも時間差は10秒の開きを最低限必…
IBL(angular map)で影を落とす方法が分からない。 色々と妄想して実装。 なのでやりかたとしてあっているかはいつものように不明だが実写に近くなってきた気がする。
バンプマッピングの実装 凸凹した表面をもつ形状をモデリングするのは困難。 なので凸凹具合のテクスチャを用意してマッピングする。 ただマッピングすだけならテクスチャマッピング。 そこで実際に3次元的な凸凹があるかのように陰影も計算してやる。 これ…
PSSMLTもERPTも思ったほど品質が上がらない。 確かに良いところもあるにはあるが総合的には普通のパストレのほうがまし。 ※これは私の実装に問題があると思う。 確かに隙間から漏れてくる光は旨く捉えている。パストレでは難しいケースだ。 しかし、デカイ光…
多少まともに結果が出るようになった。 とは言えPSSMLTがものすごく優れているとは言えない結果。 たしかに普通のパストレ(PT)と比較するとその差は歴然だがNextEventEstimationを実施したPTとはぱっと見た目は殆ど同じ。 しかし、拡大してみると確かに明る…
とりあえず、色んな情報は捨て去っていつもの妄想で理にかなうように作り直しては捨てるという馬鹿馬鹿しい作業をやっているうちになんとなく分かってきた。 ・あるピクセルに注目してサンプリングN ・輝度に応じてNから重点サンプリング ・あとはPSSに従っ…
ピクセル値を4倍している意味はやっぱり不明。 そこで条件を変えて比較してみた。 穴空間「http://kagamin.net/hole/」で公開されているのを使わせてもらった。 ソースコードはシーンデータ部だけ変更している。 一番上はパストレーシング。 2段目は左から…
Primary Sample Space Metropolis Light Transport (PSSMLT) Energy redistribution path tracing (ERPT). まだ適当にごまかしている(というか想像で作った箇所がある) 概ね論文に従っているが理解できない所が結構あるので正しい実装にはなっていないと思…