mapのときに、やっぱガチのGPUレイトレじゃないとだめかも。書いたのでとりあえず試しにCUDAでレイとシーンのポリゴンとの交差判定をするコードを書いてみた。(メインの部分だけだけどカーネルのコードを最後の方に載せる。)その動作確認として、視点からレイを飛ばして交差したところまでの距離(いわゆる深度値)を直接可視化してみた。1024で計算したものを縮小してある。左右逆になっとりますね。レイトレ部分ではなく最終的な画像出力処理部分の問題。シーンのデータからBVHを構築(CPU側)→BVHをトラバース(GPU側)→レイとポリゴンの交差判定(GPU側)という流れ。100万で、1.7秒ほど掛かったからあまり速くない。9400Mで贅沢言い過ぎかな?やはり可能ならばGLSLとかで普通のグラフィックス処理に近いやりかたで処理するようにしたほうがGPUの性能は引き出せるみたい。最適化はしてないけど、今の構造のままで大きく高速化する余地があるのかは分からない。分岐しまくりなのでそれを減らせれば多少は速くなるんじゃなかろうか。新しいGPUなら特性も違うだろうしもっと色々やりようがある感じはする。CUDAってうちの環境ではなんか不安定で、ちゃんとメモリを解放してるつもりなんだけど何回か実行してるとメモリが足りなくなったり、たまにcuInit()がCUDA_ERROR_NOT_INITIALIZEDを返してきたり(おまえがそれ返してどうすんねんw)、微妙感がある。OpenGLでやってるときはそういう事は全くない。Windowsで開発したほうが安定性は高いのかもしれない。ちなみにGPUのメモリが足りなくなったら、Macを再起動すれば当然解放されるんだけど、スリープしてすぐ解除するだけでも解放されるみたい。以下、今回のカーネルのコード。恥を忍んで全体を公開したかったんだけど、Xcodeを使ってるもんで、個人情報的にそのまま公開して大丈夫かいまいち確信がもてないので、肝となる部分だけ。BVHのデータ構造としては、ノードはAABBそのもので、全体を二分ヒープ化して1次元配列化したものなので、インデックス計算だけで親や子を辿れるようになっている。CPU側のコードではtraverseとintersectのキックで1セットで、これを全てのレイの処理が終わるまで複数回繰り返すようにしている。子ノードとレイ-AABBの交差テストをする。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。...774Fedexアカウント取得後にオンラインで手続きすれ...NETこういうのずっと見てしまう気持ちがよくわかります(...BINGEブログを拝見させていただきました・・・。花粉症対策についてはこれまで次の記事を書いてきました。花粉症対策についてはこれまで次の記事を書いてきました。花粉症対策についてはこれまで次の記事を書いてきました。花粉症対策についてはこれまで次の記事を書いてきました。花粉症対策についてはこれまで次の記事を書いてきました。