OpenCASCADE動畫功能


OpenCASCADE動畫功能

 

eryar@163.com


1.Introduction

OpenCASCADE提供了類AIS_Animation等來實現簡單的動畫功能。

 

從其類圖可以看出,動畫功能有兩種:一種是相機的動畫AnimationCamera,一種是模型的動畫AnimationObject。因為OpenCASCADE不像OpenSceneGraph那樣是專門做仿真動畫的,內置多線程,OpenCASCADE中的動畫可以理解為一個while(true) {update();},即在動畫時間內對相機或模型的起始位置和終止位置進行插值並更新來實現動畫。對於簡單的動畫效果,這種方式是夠用了。

 

2. Examples

OpenCASCADE的源碼文件夾中提供了動畫用法的示例,分別演示了模型變換、視圖變換及將動畫保存成視頻文件,當然這個功能需要引入第三方庫FFmpeg

OpenCASCADE中動畫中間位置的生成采用了類gp_TrsfNLerp進行插值。

 根據其注釋是對一個變換的三個部分分別進行線性插值,旋轉部分采用四元數類進行插值。這種插值方式不可能滿足復雜動畫的要求,不過可以把這個類當成一個插值的例子。

Draw Test Harness中輸入以下命令:

source tests/v3d/anim/propeller

vanim anim -play -playSpeed 0.1

即可以讓一個螺旋槳動起來了:

其實這個螺旋槳動畫是個復雜的例子,包含了視圖動畫和模型動畫。對於簡單的示例,可以參考另外幾個文件,里面的例子是相對簡單的。

 

3. Conclusion

OpenCASCADE7.3版本中引入了簡單動畫的功能,結合其測試案例,找到其實現源碼,可以方便地在程序中實現簡單的動畫功能。其中動畫支持兩種方式:一種是視圖支畫,一種是模型動畫。視圖動畫一般用於兩個視圖之間的動畫過渡,如從主視圖切換到仰視圖中間加一個動畫過渡;模型動畫可用於簡單的動畫仿真。

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM