Flutter SDK目前沒有專門針對3D圖形繪制的API模塊,當然提供3D API也在Flutter的長期計划中,目前還主要是集中在2D圖形上,官方FAQ也對這一點進行了說明。
通過查找資料找到一些現有的Flutter 3D繪制方面的內容。
Canvas繪制3D圖形
不使用GPU和OpenGL ES,在已有flutter SDK功能基礎上,可以借助CustomPaint widget和Canvas結合Vectors來實現對obj標准3D模型的繪制,進而結合GestureDetector利用手勢拖拽來transform改變和刷新3D圖像,這是比較原始的方法。
實例1:https://github.com/RichardCubed/flutter_demo_3d
實例2:https://github.com/klaszlo8207/Flutter-OBJ-3D-Viewer
借助第三方插件Unity3D
可以使用Flutter Unity Widget插件在flutter應用中嵌入Unity3D引擎視圖來展示3D圖形。可以使你的應用程序具有Unity的精彩的游戲化功能,在Android和iOS上都很好用。
相關的項目如下:
https://dreamsoftin.com/
https://github.com/snowballdigital/flutter-unity-view-widget
https://github.com/juicycleff/flutter-unity-arkit-demo
Flutter Web端使用Three.js
關於Web端實現3D效果,難免要想到Three.js。
https://github.com/rodydavis/FlutterWebXRThreeJS展示了一個Flutter Web結合Three.js的例子,在線效果地址https://rodydavis.github.io/FlutterWebXRThreeJS/#/: