日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt 3D的研究(三):显示3D模型

發(fā)布時間:2024/3/24 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt 3D的研究(三):显示3D模型 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

原文地址::https://blog.csdn.net/gamesdev/article/details/43964499

相關文章

1、Qt之實現(xiàn)3D紋理渲染自由旋轉空間立方體----https://blog.csdn.net/caoshangpa/article/details/78530160

2、QT圖片旋轉----https://blog.csdn.net/itjobtxq/article/details/9231103

3、如何使用QT制作一個3D(飛機)模型,并控制其旋轉?----https://www.zhihu.com/question/322196372/answer/667239807

4、Qt圖像中心旋轉的兩種方法----https://blog.csdn.net/zzc116433008/article/details/107325184/

5、Qt 3D 汽車儀表盤----https://blog.csdn.net/lihuiwen34/article/details/105123938?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EOPENSEARCH%7Edefault-5.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EOPENSEARCH%7Edefault-5.control

?

Qt 3D的研究(三):顯示3D模型
???????上一篇文章介紹了如何使用最少的代碼創(chuàng)建一個Qt 3D的應用。和大家最初接觸的glut一樣,對于3D應用來說,需要做的準備工作還真不少,不過呢,Qt 3D把一些窗口相關的瑣碎事情解決了,剩下的,該由我們完成重要的渲染部分了,可以說,帶來了某種程度的方便。

蔣彩陽原創(chuàng)文章,首發(fā)地址:http://blog.csdn.net/gamesdev/article/details/43964499。歡迎同行前來探討。

???????我們接下來要使用Qt 3D將一個模型顯示出來。Qt 3D內置了obj模型的解析器,可以很方便地導入obj格式的模型。如果想要使用Qt 3D導入ms3d、3ds這樣格式的文件,可能需要將Assimp模型解析庫和Qt 3D放在一起進行編譯,這樣才能夠順利地使用。這里我們采用Qt 3D內置的obj模型toyplane來載入并且顯示。代碼如下:


import Qt3D 2.0
import Qt3D.Render 2.0
?
Entity
{
? ? id: root
?
? ? Camera
? ? {
? ? ? ? id: camera
? ? ? ? position: Qt.vector3d( 0.0, 0.0, 40.0 )
? ? ? ? projectionType: CameraLens.PerspectiveProjection
? ? ? ? fieldOfView: 45
? ? ? ? aspectRatio: 16.0 / 9.0
? ? ? ? nearPlane : 0.1
? ? ? ? farPlane : 1000.0
? ? ? ? upVector: Qt.vector3d( 0.0, 1.0, 0.0 )
? ? ? ? viewCenter: Qt.vector3d( 0.0, 0.0, 0.0 )
? ? }
?
? ? components: FrameGraph
? ? {
? ? ? ? ForwardRenderer
? ? ? ? {
? ? ? ? ? ? clearColor: Qt.rgba( 0, 0, 0, 1 )
? ? ? ? ? ? camera: camera
? ? ? ? }
? ? }
?
? ? //! [3]
? ? Entity
? ? {
? ? ? ? Mesh
? ? ? ? {
? ? ? ? ? ? id: mesh
? ? ? ? ? ? objectName: "cube"
? ? ? ? ? ? source: "qrc:/toyplane.obj"
? ? ? ? }
?
? ? ? ? components: [ mesh ]
? ? }
?
? ? Configuration
? ? {
? ? ? ? controlledCamera: camera
? ? }
? ? //! [3]
}
???????這里![3]的部分就是我們新添加的部分。我們需要使用另外的一個Entity來表示我們要渲染的實體。然后這個實體中包含了Mesh。其中這個Mesh由"qrc:/toyplane.obj"這個路徑載入。接著設定了components為[ mesh ],表示讓Entity擁有的組件是名為mesh的Mesh component。最后的Configuration表示了程序的相關配置。其中我們要對camera進行交互操作,因此我們設定controlleedCamera為我們的camera,這樣我們可以使用鼠標將camera的參數(shù)進行相應的改變,從而可以從不同的角度來觀察模型了。

???????程序截圖如下所示:

???????需要說明的是,我們并沒有指定光照和材質。我們的玩具飛機模型的土色渲染效果是Qt 3D默認給我們帶來的。程序可以通過鼠標進行交互:左鍵表示以相機向上的向量為軸,對相機進行旋轉;右鍵是以場景原點為中心點,對相機進行旋轉。
————————————————
版權聲明:本文為CSDN博主「彩陽」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權協(xié)議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/gamesdev/article/details/43964499

?

總結

以上是生活随笔為你收集整理的Qt 3D的研究(三):显示3D模型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。