頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


SceneKitでシェーダにSCNMatrix4を渡す

SceneKitなら通常SCNMatrix4を渡すなんてことしなくてもいいんだけど、デバッグ用にやろうとした。これがえらくはまったのでメモ。

SceneKitでシェーダに値(配列)を渡す
↑ここではfloat値およびfloat値の配列を渡しているけど、今回はSCNMatrix4。
同じように
{
    SCNMatrix4 matrix = _matrix;
    NSData *buffer = [NSData dataWithBytes:&matrix length:sizeof(SCNMatrix4)];
    [node.geometry.firstMaterial setValue:buffer forKey:@"matrix"];	
}
って書いたらなぜかシェーダに渡らない(警告もエラーもなし)。

おっかしいなあ?とさんざん悩んだあげくにたどり着いたのが、、、
{
    SCNMatrix4 matrix = _matrix;
    NSValue *buffer = [NSValue valueWithSCNMatrix4:matrix];
    [node.geometry.firstMaterial setValue:buffer forKey:@"matrix"];	
}
不思議や、、、でも時々あるんやわ。NSDataなのかNSValueなのかってのが。

<< SCNFloorの床が逆さま?  TopPage  PythonのPILで日足チャートを描く >>

コメント


管理者にだけ表示を許可する
 

トラックバック

トラックバックURL
http://ringsbell.blog117.fc2.com/tb.php/1133-d674a312




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.

FC2Ad