如何使用透视投影矩阵计算对象比例?
|
我目前正在Flash中使用精灵创建一个小的3D粒子引擎。
使用下面的projectVector函数设置每个精灵的位置。 (viewTransform矩阵是与透视投影矩阵连接在一起的粒子世界矩阵)
var projectedPoint:Vector3D = Utils3D.projectVector(viewTransform, point);
sprite.x = projectedPoint.x;
sprite.y = projectedPoint.y;
这真的很好,可以将精灵精确放置在它们应该放置的位置:D
我遇到的问题是试图找出如何根据距相机的距离来计算每个粒子的比例。
sprite.scaleX = sprite.scaleY = ??
如果我不使用透视投影矩阵,我通常会这样做。
var scaleRatio:Number = (focus * zoom)/(focus + particle.globalz);
particle.depth = scaleRatio;
sprite.x = particle.globalx * scaleRatio;
sprite.y = particle.globaly * scaleRatio;
// set scale..
sprite.scaleX = sprite.scaleY = scaleRatio;
如果有任何人可以向我展示如何使用ace透视投影矩阵计算\“ scaleRatio \”
谢谢!
没有找到相关结果
已邀请:
1 个回复
粱委教