Rust レイトレーシング ⑩ 三角形

ポリゴンの衝突判定のためにレイと三角形の衝突を実装した。


球と同様にHITトレイトを実装する。
三角形との交差判定は
risalc.info
にある通り。
f:id:katakanan:20180217175646p:plain:w500

面内のベクトル\overrightarrow{h}は、三角形の法線\overrightarrow{n}と直行するのでそこからtがわかる。

ベクトル\overrightarrow{h}を求め、三角形を張る\overrightarrow{a}\overrightarrow{b}を基底とした、\overrightarrow{h}の座標(u, v)を求める。

uvがこのような条件のとき、交点は三角形内にある。

Traitをこのように変更することで、これを実装した構造体をスレッド間をアトミックなリファレンスカウンタを持つポインタを用いて、
共有できるデータとすることができる...(?)

なので、少し変更。


f:id:katakanan:20180217181311p:plain:w300

Programming Rust: Fast, Safe Systems Development

Programming Rust: Fast, Safe Systems Development

プログラミングのための線形代数

プログラミングのための線形代数