無事解決しましたよ。
最初は64bitになると計算精度が変わるから云々とか考えたんだけど、原因はもっと初歩的なことだった。
Cook Torranceを実装した奴だったんだけど、計算精度の誤差でもなんでもなく、自分のコーディングミスだった。(むしろ前は何でちゃんと動いたんだ?)
際どい値を突っ込んでみたり色々試したけど、コードをたどってたら、ゼロ除算を見つけたんだ…(値を丸めようとして逆にミスしたっていう…)
ということで、その一行を直しただけでちゃんと動きましたとさ。
不定の値がレンダラに渡された後の挙動がMayaのバージョンによって違うのかもしれない。(アンチエイリアスがかかるとそれがさらに強調されて…)
ところで、Shader側で背面カリングとか意味ないね。裏表関係なくレンダラがアルファチャンネルにシルエット描き込むから。
スポンサーリンク