はじめに
とあるシステムを作るのによくあるGPGPU + Grid SOPのParticles作ろうとしてはまったのでメモ。
やろうとしたこと
粉をきっちり数を決めてきっちり並べたい。
基本の粉出しは@ToyoshiMoriokaさんのこちらを参照。
今回は粉を飛ばすのが目的ではなく、立方体状に整列させたかった。
現象
Grid SOPのTextureCoordinatesをoffにして、階層を移動して戻ってくると落ちる。
原因・解決策
今回きっちり数を決めたかったので、Gridを通常の様に正方形状にする、つまりRowsとColumnsを同じ数にすることに抵抗がありました。
「数決まってんなら最初からそうすればいいじゃん!」と。
ここはまだよかった。
「Grid SOPのRowsをパーティクルの数、Columnsを1にすればかけたらパーティクルの数になるからいいじゃん!」
ここがまずかった。
どうやらGridSOPのColumnsを1にしてTextureCoordinatesをoffにすると落ちるらしいです。
この「1」がまずいと踏んで、
解決策1. Rowsをパーティクル数/2、Columnsを2
にしてみました。
落ちなくなったのでここが問題で間違いないようです。
と、ここでふと疑問に思い、
解決策2. Rowsを1、Columnsをパーティクル数
にしてみました。
落ちなくなりました。何が違うんだ...
おわりに
原理的に筋が通ってるはずなのに動かない時つらいですよね。
タッチ使ってみてやめた友達に聞いた、「タッチの設定の問題かこっちのコードの問題かわからないのがきつい」というのが今回よく実感できました。確かにつらい。
気合でこねくり回してどうにかしましょう。