QML 可以替代 Qt 中的 OpenGL 吗?
Posted
技术标签:
【中文标题】QML 可以替代 Qt 中的 OpenGL 吗?【英文标题】:Can QML replace OpenGL in Qt? 【发布时间】:2016-04-03 06:56:34 【问题描述】:据我所知,QML 与 OpenGL 做同样的事情,对吧?那么我可以用 QML 完全替代 OpenGL 吗?
QML 和 OpenGL 的基本区别是什么?
人们什么时候更喜欢 QML 而不是 OpenGL,反之亦然?
【问题讨论】:
你的知识不对,qml和OpenGL是两个完全不同的东西,第一个是声明式语言,第二个是图形api。 @ddriver:您应该将该评论作为答案 也许您的意思是 Qt Quick,因为 QML 是一种完全脱离任何图形的声明性语言,可用于例如build systems。 【参考方案1】:你的知识不对,QML和OpenGL是两个完全不同的东西,第一个是声明性语言,第二个是图形API。
使用 QML 的 QtQuick 通常将 OpenGL 用于其图形,但这是您无法访问的后端(实际上在最近的版本中更易于访问,但我预计不会有多少人会进行调整那个,即使他们这样做了,也将是 C++,而不是 QML)。
有Qt3D,它有一个QML API,但它只是一些基本的东西,而且它是高级的——绝不可以替代非常低级的OpenGL。这意味着使用 Qt3D 放置一些 3D 模型、相机、材质等会容易得多,通常不会直接在 OpenGL 中执行这些操作,而是使用构建在 OpenGL 之上的 API。
【讨论】:
+1,关于“你没有任何访问权限的后端”:可以将 QQ 与自定义 opengl 阴影相结合,调整 opengl 设置或将其与其他自定义 opengl 代码集成。所以它不仅仅是一个隐藏的实现细节。以上是关于QML 可以替代 Qt 中的 OpenGL 吗?的主要内容,如果未能解决你的问题,请参考以下文章