2012-01-23 13 views
1

Matrix3DオブジェクトがAS3の頂点定数レジスタとしてContext3Dオブジェクトに渡された例をほとんど見てきました。しかし、他のタイプのレジスタ(一時的または属性)の行列を見たことはありませんでした。マトリックスはAGALの頂点定数以外の頂点レジスタにも存在できますか?

Matrix頂点定数を一時レジスタにコピーし、そのMatrixテンポラリレジスタの個々のフィールドを操作することは可能でしょうか?(例:回転の場合)、他の値(頂点属性またはその他の定数)

単純なmov dest, source操作ではトリックはできますか?

答えて

2

はい、それは動作します(Moleから取る:))。十分な(3または4)のレジスタを必ずコピーしてください。また、行列演算について考える良い方法は、3または4ドットのプロダクト命令のためのショートカットにすぎないということです。 AGALには実際には何も入力されていません。行列はちょうど少数の連続するレジスタです。行列アップロード機能は、1回の呼び出しで4つのレジスタにアップロードするのに便利です。そして、シェーダに

m44 dest, src, srcmatrix

はまったく同じである。ここでは+1など

dp4 dest.x srx, srcmatrix 
dp4 dest.y srx, srcmatrix+1 
dp4 dest.z srx, srcmatrix+2 
dp4 dest.w srx, srcmatrix+3 

0

私はほぼ確実一時レジスタはまた、行列とあなたの要求が可能であることが含まれているんだけど、あなたはマルコScabiaのような人から、あなたの最良の答えを得ることができます:

http://iflash3d.com/

彼はAGALの非常に親しみと知識が豊富です。

+0

などニースのレジスタ番号1を意味します!これはおそらく、将来的に私が持っているより多くのアールの質問に役立ちます! – bigp

+1

私は嬉しいです:) AGALの資源がどれくらい難しいのかわかります。がんばろう! –

関連する問題