この記事はレイトレ合宿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](https://cdn-ak-scissors.b.st-hatena.com/image/square/f404fb780bf3ce8c06f3948e8cb1e966a0d22efb/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9Qm91bmRpbmclMjBWb2x1bWUlMjBIaWVyYXJjaHklMjAlMjhCVkglMjklMjAlRTMlODElQUUlRTUlQUUlOUYlRTglQTMlODUlMjAtJTIwJUU0JUJBJUE0JUU1JUI3JUFFJUU1JTg4JUE0JUU1JUFFJTlBJUU3JUI3JUE4JnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1iYWYyNDE3Y2VhYjZmZGRlMzQyMzk1ZWJiYWY4MWUyYg%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwb21vY2hpNjQmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTJhYjVmN2MzMDkyOWFhMzc5YTViZWY1ZDJiNGVmNWI0%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Dea2d6024325587fe5b9ec8c13c811d2d)