2006-12-01から1ヶ月間の記事一覧

std::string

c++

今までC言語と同様にchar配列とstr*()系の関数を使った文字列処理をC++でも書いていたのだが、流石に気持ち悪くなってきたのでそろそろstd::stringを使うことにする。CStringは便利だったんだが環境依存だし、自作するのも結構大変なので、結局std::stringに…

Tone Mapping

レンダリング途中のシーンが(平均輝度が黒だから)真っ白になるのをどうにかできないかな。とりあえず論文を読み直そう。 http://www.cs.utah.edu/~reinhard/cdrom/結局ちゃんと計算済部分のみから平均取るように改良するのが現実的ぽいですね。 プロトコル…

TODO公開

http://www.checkpad.jp/list/show/312185時代はGTD?春休み明けまでには全部やりたいなぁ。

続・IIHandler実装

PhotonMapもDI/IIHandler化。prepareDI/II()メソッド追加。

IIHandler実装

estimateIndirectGlobalとestimateIndirectCausticに分けないとIrradiance Cache系がうまくいかなそう。

テストは今日で終了。先週のテストは一問存在に気づかなかった!以外は大丈夫でした。惜しいなぁ

明日もてすとー

Lightcuts

http://www.graphics.cornell.edu/~bjw/papers.html id:tueda_wolfさんの日記より。論文読みたいけど明日テストなのでぐっと我慢

somari修理

マザボのUSB配線が断線してた。POST用のLEDごと抜いたら電源が入るように。

今日のコミット

BVHバグ修正、ツリー構築最適化 DIHandler実装

80−20の法則

ではないですが、BVHのデバッグでプロファイラーを通してみて、レンダラで速度に一番貢献するのは空間分割法(というか交差判定部)だと改めて実感。レンダラの仮想化で仮想関数減らしてできるだけ最適化とかやっていても、2〜3%変わればいいほうなのかなぁ。

BVHデバッグ

AABB構築時にvMinとvMaxを(0,0,0)で初期化していたのが原因でした。気づくまで1日かかってしまった。デバッグ後のレンダリング速度はストップウォッチでは計れないスピードに。アクセルグリッド約3秒に対してBVHだと一秒未満。やっぱりBVHは速いです。そろそ…

BVHの構築

こんなシーンで矢印の方向にツリーを作ろうとすると、一番重心を端に持つポリゴンを入れただけで、シーン全体のAABBになってしまう。だれかのBlogで前こういう話を読んだような覚えがある。探してみよう。ここかも。BIHだけど。 http://lucille.atso-net.jp/…

BVH最適化

アクセルグリッドは3秒。BVHだと18秒。 →現在の最小候補のtとAABBのtを比較してearly exitで15秒SponzaでBVH構築してみたら一ノードに2606ポリゴンとか出てきた。どう考えてもバグだわこりゃ。 →SAHの引数がおかしかった。1 poly/leafnodeに。これは正しい…

原因判明:BVH

アクセルグリッドに切り替えたら3秒でレンダリングが終わるようになった。BVHだと15秒ぐらいかかる。 妙に子ノードの多いノードが気になる。23ポリゴンとか許容しているのはおかしいなぁ。

パフォーマンス低下

洒落にならないぐらい落ちた。プロファイリングが必要。AMD CodeAnalystが無料でよさげ。開発機はCore2Duoだけど動くらしい。BSODが出ます。さすがにAMD製CPUにしか対応していないか。

Rendererクラスリファクタリング

レイトレーシング依存部をRayTraceRenderer派生クラスに分離。 Rendererクラスを非Singleton化 レイトレーシング部分離はもちろんメトロポリス光輸送法の実装準備。そういえば結局オープンソースなMLT実装ってあったんだろうか?MetropoLightもフリーソフト…

新規設計ドラフトのメモ

光源のヒストグラム計算がフォトンマップと本レンダリング時でかぶらないか →フォトン発生は全ての光源でやるわけじゃないから二重にやっても許される?フォトンマップは直接照明の計算にも間接照明の計算にも使えるが、どこに置くか。 →両方のクラスを継承…

constメンバ変数

c++

constメンバ変数はコンストラクタの初期化リストで初期化するのだが、その前に処理を書けないのがつらい。 const_castで無理やり書くか、メンバ関数コンストラクタを作ってそこで計算するか。またMSVCだとC4512コンパイル警告が消えないというのも困る。*1そ…