使用QT的canvas3d來載入3d模型

2021-10-13 04:16:14 字數 1511 閱讀 1201

需求:接到乙個任務要寫展示乙個裝置的3d模型。串列埠連線裝置返回仰俯角等資料,目的讓展示裡的模型跟著裝置轉動。

第一步當然先看例項裡的**,了解**構架。此例子使用的是qtquick裡的canvas3d畫布呼叫了three.js指令碼來顯示3d模型。裡面涉及了qml,js,還有個指令碼json。重點關注3檔案 main.qml -> cellphonecanvas.qml->cellphone.js。

檢視**main.qml為介面入口,cellphonecanvas.qml主要是定義了個canvas3d畫布用這個畫布來呼叫js指令碼。往下看找到cellphone.js指令碼。這裡放上乙個canvas3d製作3d的鏈結

模型載入,此例子用的是json檔案來裝模型資訊。下面繼續丟出乙個連線 

第二步開始準備我的模型,結構工程師給到我的是obj檔案。 然後需要的是json檔案。ok下面就是遇到的坑。

我最終使用的blender2.79匯入了three.js-r69的外掛程式。 匯出來的json檔案大小是954kb測試放入qt專案是可以用的了。(剛開始我是直接在例子源**裡測試我的json)。

簡單記錄一下匯入外掛程式的步驟

看圖file -> user preferences進入 ->add-ons 選擇intall add-ons from file  ->選擇 three.js外掛程式的目錄(截圖中有)

匯入成功

以下丟出幾個連線

three.js-r69

第三步就開始建立的我的專案了,

二話不說先把把qt自帶的那個例子copy出來,記得要把three.js檔案拷出來一般在這個目錄下d:\qt\qt5.9.8\examples\qt-5.9.8\canvas3d\3rdparty。看自己的qt裝在哪個盤。然後匯入拷出來的的qrc資源檔案下。

把自己不用的功能錢掉,多餘的檔案去掉,例子的有3個json檔案,我這裡只有乙個json檔案,所以把多餘的去掉。替換好了,結果是順當當的的把我的模型顯示出來了。

第四步就開始開始根據自己的需求來做軟體了。下篇文章再好好記錄**的實現。

Qt 3D的研究(二)

qt 3d的研究 二 研究了多日的qt 3d,我了解到為了適應跨平台 不同的著色器編譯器標準 多重渲染目標,qt 3d提出了很多的方案,創新了許多的概念,這多多少少讓初學者感到困難重重。在與qt開發者經過jira以及irc等交流後,我了解到了如何使用qt 3d構建乙個簡單的程式。這個程式呢,雖然說簡...

Qt5 使用QtCreator來執行NS3的指令碼

問題提出 現在的情況是,我們使用qt5來進行圖形使用者介面的設計,使用ns3 平台來完成指令碼的執行,實現 模擬。然而,如何使用qt5來直接執行ns3中的指令碼呢?問題解決 有兩種解決方法。第一種方法是直接按照下面這個鏈結中的方法進行 在第二種方法中,鏈結所給網頁介紹了如何執行first.cc,如果...

Qt使用QPainter繪製3D立方體

1.實現思路 網上有另一篇類似的,不過他不是用的 qt 自帶的矩陣運算類 實現思路有點類似使用 opengl 畫立方體,先準備頂點資料 立方體前後四個頂點,從右上角開始順時針 vertexarr qvector,qvector3d,qvector3d,qvector3d,qvector3d,qvec...