问题阐述
在复制模型到点集时,想控制模型的旋转值,但通过Attribute Randomize为点随机添加了orient值后,并没有效果。

用Grid当作点集测试却有效果,在大头的帮助下才知道在Copy to Points时,参数具有优先级,所以会出现一些参数无效的效果,这里就是由于本来存在transform,优先级高于orient。

复制参数优先级
http://127.0.0.1:48626/copy/instanceattrs.html
-
If
pivotexists, use it as the local transformation of the copy/instance. -
If the
transformattribute exists:-
Use it as a 3×3 or 4×4 matrix to transform the copy/instance.
-
-
If the
transformattribute does not exist:-
If the
orientattribute exists:-
Use it to orient the copy/instance.
-
-
If the
orientattributes does not exist:-
Orient the copy/instance using
Nas the +Z axis andupas +Y axis. -
If
Ndoes not exist, usev(velocity) if it exists.
-
-
If the
rotattribute exists, apply it after the above. -
If
pscaleexists, use it to scale the to scale the copy/instance (multiplied byscaleif it exists). -
If
scaleexists, use it to scale the copy/instance (multiplied bypscaleif it exists).
-
-
If
transexists, use it andPto move the copy/instance.
Or, put another way:
Key:
X = pivot matrix (translate by -pivot)
O = orient matrix
S = scale matrix (scale * pscale)
L = alignment matrix (*)
R = rot matrix
T = trans matrix (trans + P)
M = transform matrix
(*) The alignment matrix (L) is defined by N or v and up.
IF N exists AND up exists and isn't {0,0,0}:
L = mlookatup(N,0,up)
ELSE IF N exists:
L = dihedral({0,0,1},N)
ELSE IF v exists AND up exists and isn't {0,0,0}:
L = mlookatup(v,0,up)
ELSE IF v exists:
L = dihedral({0,0,1},v)
IF transform exists:
Transform = X*M*T
ELSE IF orient exists:
Transform = X*S*(O*R)*T
ELSE:
Transform = X*S*L*R*T

1285

被折叠的 条评论
为什么被折叠?



