我刚刚开始使用WPF3D而陷入困境,这是我的情景:
我使用Viewport2DVisual3D实现了几个精灵,里面有树的图像,但是当我要移动ViewPort3D的PerspectiveCamera时,我将开始看到图像是平的。在相机位置和外观点发生变化后,我将如何让所有约200个精灵始终面向相机。
欣赏任何想法
答案 0 :(得分:0)
您的相机看起来像:
ux vx wx x
uy vy wy y
uz vz wz z
0 0 0 1
(x, y, z
)是相机的位置,u, v, w
是相机矢量的基础。
仅保持位置会使您的精灵始终面向相机。那是
1 1 0 x
0 1 0 y
0 0 1 z
0 0 0 1
在组合的世界相机矩阵中,您可以使用旋转,平移和缩放的组合。 除了需要保持缩放之外,相同的方法将起作用。 每个维度的缩放可以计算为
dx = length(u)
dy = length(v)
dz = length(w)
你的世界相机变换将是
dx 0 0 x
0 dy 0 y
0 0 dz z
0 0 0 1
另一个更简单的解决方案是使用原始世界相机矩阵变换精灵的中心(一个点不会受到旋转的影响)。
变换中心后,在其周围绘制精灵四边形。如果需要缩放,则将四边形乘以dx, dy, dz
。