多语言展示
当前在线:1957今日阅读:183今日分享:19

如何使用Qt 3D开发3D场景程序?

目前Qt已经提供大量的3D API的支持了,作为对OPENGL的一种补充,QT 3D使用起来更加方便,并且跨平台。但是Qt中关于QT 3D的文档并不是很全面。很多初学者包括我自己现在都是摸索着前进的。网上虽然也有教程,但是却都是让人云里雾里不知所以然的。不过以后会好很多的了,因为Qt即将发布qt3DStudio了,有了这个工具,咱们以后开发qt3D的程序时就容易上手了。
工具/原料
1

Qt Creator

2

Qt 4.9.2

方法/步骤
1

首先我们需要找到Qt 3D的帮助文档,我们直接在QtCreator中搜索qt3d,然后就可以看到和3D相关的文档了。这里我们类比一下其他3D程序的开发工具,譬如Unity3D,采用C#语言开发,而QtStudio以后就应该是C++和QML开发了,所以大家如果没用过Unity3D,也可以去下载一个试试看,建立一个初步的认识。

2

然后我们还需要查看Qt3D的案例,这些案例里面有一些图片和材料文件,估计初学者都不知道是什么东西,如果我们要仿照案例去写自己的程序,又该如何入手呢?这里我们需要两个工具,一个是blender,Linux下最流行的3D建模软件,blender也可以在MAC和Windows上使用,因为它是跨平台的。大家可以直接使用sudo apt-get install blender进行安装。

3

Blender软件是用来查看Qt 3D例子中资源文件中的obj材料文件的,如下图。我们可以使用blender打开这些obj文件,也可以自己动手做一些材料,然后导出为obj文件。导入导出见下图。

4

然后我们在上面还看到一种图片,这种图片格式很新颖,我还是第一次见,估计初学者很多也是第一次见吧。所以既然Qt用到了,咱们仿写程序的时候,没有这个图片可就不好办了。所以这里我们还要另一工具,cwebp,大家可以使用sudo apt-get install webp安装即可。Webp格式的图片是谷歌开发的一种新型的比jpg,png等图片更适合在网络上进行传输的图片,将来估计会广泛使用的,这里我们就先跟着QT尝个鲜吧。这里我们可以将png图片转换为webp格式的图片试试。如下图,cwebp的使用方式。

5

接下来,我们阅读Qt 3d的案例源码是没问题了,大家总体上应该都有认识了吧,Qt3D就是把这些3D的场景图片等素材组合起来,实现一些三维场景的效果。这里我们最常见的就是游戏了,把游戏的素材,图片经过程序上的处理,这里素材才真正的实现了游戏中打斗,跳动,场景切换的效果了。

6

到这里,我们的工具准备好了,接下来就是需要理解一些概念了。这些概念有,渲染,网格,几何,材料,阴影,光线遮蔽,多材质,统一缓存对象,ECS(实体组件系统)。前面的几个,我们只需要在blender中看看,就应该会明白的了,我们主要看ECS,这个是我们编写程序的基本。

注意事项

注意结合3D建模软件去理解Qt 3d程序的开发实现就很容易了

推荐信息