Opengl的现实世界中的相机抖动算法
问题描述:
我要打我的相机抖动在OpenGLOpengl的现实世界中的相机抖动算法
我的旧算法是:
setCamPosXYZ(x+randx,y+randy,z+randz);
,但它是不是最好的。什么是更好的解决方案,真实世界的相机震动?
答
我发现了一个频率很高的正弦函数,幅度逐渐减小看起来非常有说服力。如果你想让它看起来更随机,你可以为每个方向使用不同的频率,它会随机地反弹。一个sin函数在物理上也是有意义的,因为如果你想到相机被安装在一个有一定阻尼的非常坚硬的弹簧上,那么它会像阻尼的sin曲线一样振荡。
答
产生X + randx,现有的摄像机POS 并且x + randx,Y +好色,Z + randz 为顺利抖动之间Y +好色,Z + randz 然后动画顺利(线性插值)。
要动画流畅,在每个时间段设置新 x到xinitial + K(randx)
一旦达到随机抖动点产生一个新的随机点,再利用线性插值动画
答
真实世界的相机抖动是对某种力量的反应,例如笨重或冲击波,所以它是一个直接运动,然后是另一个方向的反向运动,来回移动直至稳定。
所以从一个消散的窦性波开始,然后你可以给它增加一些随机数,使其更加生涩。
此外,您应该添加相机的轻微旋转以及移动。