Opengl真实世界相机抖动算法

时间:2012-02-03 08:35:48

标签: opengl

我想在opengl中使我的相机震动

我的旧算法是:

setCamPosXYZ(x+randx,y+randy,z+randz);

但它并不是最好的。什么是更好的解决方案,真实世界的相机震动?

3 个答案:

答案 0 :(得分:4)

我发现了一个高频率的sin函数,逐渐减小的幅度看起来很有说服力。如果你希望它看起来更随机,你可以为每个方向提供不同的频率,它会随机地反弹。一个sin函数在物理上也是有意义的,因为如果你认为摄像机安装在一个非常坚硬的弹簧上有一些阻尼,那么它就会像一条阻尼曲线一样振荡。

答案 1 :(得分:1)

生成x + randx,y + randy,z + randz 然后在现有相机位置之间平滑(线性插值)动画 和x + randx,y + randy,z + randz 为了顺利的摇晃。

动画设置顺畅地设置你的新动画 x在每个时间步到xinitial + k(randx)

一旦到达随机摇动点,就会生成一个新的随机点并再次进行动画处理 使用线性插值

答案 2 :(得分:1)

真实世界的相机抖动是对某种力量的反应,如bumb或冲击波,所以它是一个直接的运动,然后是另一个方向的反向运动,来回移动直到它稳定。

所以从一个消散的正弦波开始,然后你可能会添加一些随机的,以使它更加生涩。

此外,您应该添加相机的轻微旋转以及移动。