要求:
这不适用于游戏,但我不反对使用游戏类型API。
一些想法:
Qt可能太重了,但我不熟悉API,知道它是否符合要求。我对Qts窗口管理(没有窗口)或窗口小部件/控件集不感兴趣,因为它不适用于桌面类型的应用程序。另外,我不确定Qt是否有动画框架?想到这里?
最有可能的是构建在OpenGL之上的框架。我只是不知道这样的事情是否存在。另外,我不清楚OpenGL中的2D图形。 2D图形是真正的2D还是仅仅是在面向2D的平面上绘制的3D对象?
WPF是针对DirectX的_____________是OpenGL
如果可以填充这是我正在寻找的空白。
更新#2
我本周末花了一些时间和Qt一起发现了QGraphicsScene类 - 它似乎是Qt 2D保留类型图形模式的基础类 - 而QGraphicsWidget则允许QWidget类的一些自动布局功能。
Qt接近通过我的试金石。最后要弄清楚的是,在处理Vector图像时,开发人员工作流程是一个优秀的设计师,即如何在Illustrator中创建一个图标并将其转换为QGraphicsItem-这可能是一个新的(更集中)的好候选人问题
答案 0 :(得分:5)
您可能需要查看Cairo,它有一个OpenGL后端。我不认为它有动画API。
答案 1 :(得分:2)
关于使用Qt。
在任何有意义的意义上,它都不是重量级的。动态库是一些megs,我相信图形操作已经过优化。
它没有使用OpenGL加速的稳定版本 - 这将在Qt4.5中出现。
它确实使用XRender或其他东西,用于2D加速
它还有一个很棒的绘图API和一个动画API(简单的QTimeLine和最近更强大的QtAnimation)
答案 2 :(得分:1)
虽然OpenGL是一个很好的3D渲染工具,但重要的是要理解在一天结束时输出介质本质上是2D。第三维的感知是通过视觉线索实现的,例如照明,远远小于物体的远物体,以及遮挡远物体的近物体。
这些视觉线索在图形管道的各个阶段实现为计算。照明和着色,视口变换和深度查询是用于创建3D幻觉的一些操作。
使用OpenGL for 2D时,可以忽略许多通常用于3D渲染的管道操作。这可以由于减少计算而导致性能提高,并且具有简化源代码的额外好处。还有许多操作专门用于2D栅格,例如绘制精灵。
我不鼓励将2D渲染视为一组简化的3D渲染,而是鼓励您将3D渲染视为精心构造的2D元素的结果。
答案 3 :(得分:0)
WPF也是3D。该库经过优化和设计,可以轻松实现2D,但它也具有所有3D转换功能。