Program

環境設定

パラメータの類が随分増えてきたためいい加減ハードコーディングが辛くなってきた。 ということで外部からの入力をできるよう思案。 テキストファイルでも作ればそれで終わりだけど味気ない。 業務では MSExcel なので VBA でちゃちゃっと書けるんだけど生憎…

3DS ファイルの読み込み

C:Load3DS The Graphics File Format Pageこの辺が参考になった。 かなり深い部分まで解析(特にマテリアルチャンク)している。 座標の単位が良く分からなかったが多分 cm 単位なんだろう。早速実装してみた。 デザインセンスはないのでフリー素材を物色。 基…

空間分割その3

kd-tree を実装してみたのでお楽しみの速度比較。最大深度: 3 サンプリング回数:500 通常 レンダリング時間:71129msKd-tree レンダリング時間:50245msおよそ 20秒近くの高速化。 3割りくらいかな。サンプリング数と二次レイが増加する程もっと顕著な差が出て…

空間分割その2

前回 Octree で実装しようと考えていたがやはり無駄が多い気がした。 一方 BSP では分割が発生することと何よりも三角形以外(たとえば球)が 扱えないことが不便と気づく。 kdtree は形状を上手く扱えるかで若干悩んでいたが良いアプローチを 見つけたので kd…

空間分割

結局やっちゃおうかなというノリで思考中。Uniform grid 構築、探索とも容易だが極端なシーンには向かない。 また分割数を増やすと重複するデータが出現しやすい。Octree 構築は容易と思うけど無駄が多い。 u-grid と比較すると探索が遅くなるのは致し方ない…

スレッドその2

MCPT のコア部分をマルチスレッド化。 テスト環境はデュアルコアなのでマルチコアも楽しんでみようということで横道に、、、 単純にアムダールの法則から理論値 2 倍は出るはずということで。シングル: 42735ms マルチ: 22117ms 1.93 倍レイトレはデータ構造…

スレッド

簡単だけどそれなりのスレッドクラスを作りたいがどうしたものか。調べてるみると (1) コンストラクタで _beginthredex を実行するタイプ (2) 別関数で _beginthredex を実行するタイプ とやってるものを見かける。symbian とか弄っていた経緯からコンストラ…