タグ

vectorとレイに関するedo_m18のブックマーク (2)

  • Bounding Volume Hierarchy (BVH) の実装 - 交差判定編 - Qiita

    この記事はレイトレ合宿2アドベントカレンダーの五週目の記事です。 そして Bounding Volume Hierarchy (BVH) の実装 - 構築編 の続きにもなります。 構築編を書いたのが去年の12月なので、ゆうに半年以上経ってようやく記事が完成する形に… 構築編の続きとなるので、構築編を読んでおられない方は構築編からどうぞ。 BVH を使わない場合の交差判定 早速タイトルと違うことを言っていますが、まずは全てのポリゴンに総当たりしてチェックする方法を確認しておきましょう。 これに関してはコードを示してしまったほうがおそらくわかりやすいです。 int Intersect(const Vector<Triangle *> &polygons, const Ray ray) { for (int i=0; i<polygons.size(); i++) { Triangle *pol

    Bounding Volume Hierarchy (BVH) の実装 - 交差判定編 - Qiita
  • Bounding Volume Hierarchy (BVH) の実装 - 構築編 - Qiita

    2016/04/04追記 ここで挙げているコードを参考にする際は、以下の点に注意してください(八田さん、Pocolさん、西山さん、qさんフィードバックありがとうございます) ※コピペしてコンパイルするとコンパイルエラー出ます。ちゃんと確認していないですがstlのメソッド名が間違っているようです ※SAHによるソートが遅いです。ソートに関してはPBRTに書かれているようなので参考にしてください(std::partitionを使うらしいです) ※SHAの計算は定義にバカ正直に当てはめていますが、値の比較しかしないのでいくつかの計算が省略できます ※上記の点についての修正は、気が向いたらやります。やらないかもしれません。 この Qiita というサービスが流行っているようなので、はてダのかわりに試しに投稿してみます。 と思ったのですが、アップロード可能な画像が月間2MBとちょっと辛いので、または

    Bounding Volume Hierarchy (BVH) の実装 - 構築編 - Qiita
  • 1