Scene Graph 小记(Qt5)

转载 2012年03月28日 14:18:19

http://blog.csdn.net/dbzhang800/article/details/6864540


在Qt5中,传统的QWidget系列,仍然使用BackStoring技术,但新的Qt Quick2,将使用Scene Graph。后者能更好地发挥GPU的性能,但是移植QWidget到这上面来的话,工作量似乎又太大。所以...

本文: 跟随 官方blog,简单了解 Scene Graph

背景:硬件加速

显卡按显存架构可分两类:

  • UMA(Unified Memory Architecture)统一内存体系结构,使用部分的电脑主内存作为显存
  • 非UMA,使用独立的显存。

显卡按其支持的图形操作可以粗略分为:

No acceleration (framebuffer only)

常见于嵌入式设备中

Blitter & alpha-blending hardware

在PC中不多见了
仍用于嵌入式

Path based 2D vector graphics

取代前者(?)

Fixed-function 3D

老式的PC机中,被后者取代

Programmable 3D

 

这样以来2*5=10,将有10中情况了。对此,Qt曾这样规划,每种情况对应一个paint engine。

 

UMA

非UMA

None

Raster

Raster*

Blitter

DirectFB

DirectFB**

2D vector

OpenVG***

OpenVG***

Fixed-3D

OpenGL (ES) 1.x

OpenGL (ES) 1.x

Programmable-3D

OpenGL (ES) 2.x

OpenGL (ES) 2.x****

使用OpenGL引擎

引入了!OpenGL2,但是看来,在当前的这种graphics stack(Backstoring)下,性能不太令人满意。

Scene Graph出场

在做了种种努力之后。官方决定后退一步,然后看看如果采用一种新的模型会得到些什么。这个新模型就是 Scene Graph,它是由一系列节点构成的树

  • GeometryNode

  • TransformNode

  • ClipNode

然后使用Renderer的子类遍历这个类并渲染它。

几个月后,已可以将QML建立在Scene Graph的基本结构之上。此时特点:可以见到

  • QtSceneGraph 这个库

  • qmlscene 这个可执行文件

今年5月底,QML Scene Graph 进入Qt5源码仓库的master分支。

后续

和Qt Quick关系太大了,暂时看不懂。只好先到这儿了...



Qt新渲染底层Scene Graph研究(一)

Qt 5提出了一个新的渲染底层,以替代Qt4时期的Graphics View,这个渲染底层就是Scene Graph。其实这个底层的作用和Open Scene Graph是差不多的,但是由于是不同的团...
  • jiangcaiyang123
  • jiangcaiyang123
  • 2015年01月23日 21:31
  • 5061

Qt新渲染底层Scene Graph研究(二)

上一篇文章初步介绍了Qt新渲染底层Scene Graph,我们该如何利用这个框架为应用程序增添绚丽的效果呢?首先,我们要明确利用Scene Graph开发的目的是什么。如果是简单的,纯粹的显示2D图形...
  • jiangcaiyang123
  • jiangcaiyang123
  • 2015年01月23日 23:08
  • 3584

Qt Scene Graph渲染方式在不同系统的差异

Qt Scene Graph是Qt 5提出的新渲染底层,它是Qt Quick在绝大多数平台上渲染的基础(Qt 4的是依赖Qt Graphics View)。了解和学习Qt的Scene Graph,怎么...
  • jiangcaiyang123
  • jiangcaiyang123
  • 2015年09月08日 00:31
  • 2448

QtQuick基础教程(四)---场景渲染(Scene Graph)

Qt Quick 一大特色在于其改变了界面渲染方式,自Qt Quick 2起统一使用OpenGL ES 2.0 或者 OpenGL 2.0 来渲染界面。这样做的好处是,所有要渲染的界面元素均在最后统一...
  • LaineGates
  • LaineGates
  • 2016年03月14日 22:28
  • 4091

Qt新渲染底层Scene Graph研究(三)

上一篇文章介绍了Qt Quick和Scene Graph的一些理论上的内容。这也是我最新的研究成果。接下来我要介绍一下如何使用Scene Graph来制作一些好玩的效果。这也是我进行一次Scene G...
  • jiangcaiyang123
  • jiangcaiyang123
  • 2015年01月27日 16:54
  • 3750

QT之 scene graph 的局部刷新尝试(一)

使用QT做HMI开发,因为GPU或者CPU的资源有限,为了得到更流畅的交互效果,局部刷新的方法是大家都一直寻找的解决方案,限制部分的刷新帧率,把资源更多的留给实时性要求高的。 Qt5以后的版本,...
  • u010977122
  • u010977122
  • 2016年12月20日 22:08
  • 693

关于QtGraphics编程的几点经验总结_qgraphicsscene

QtGraphics主要由三部分组成,分别是View,Scene, Item。
  • u013201479
  • u013201479
  • 2016年04月16日 15:26
  • 1374

数据清洗小记(4):多用户调用同一个函数

原创作品,出自 “深蓝的blog” 博客,欢迎转载,转载时请务必注明出处,否则有权追究版权法律责任。 深蓝的blog:   【背景】         做数据抽取时,源端遇到多用户访问不同所属表情况,需...
  • huangyanlong
  • huangyanlong
  • 2015年06月03日 09:09
  • 1234

MDD Cup 2017 小记 (美团点评内部算法比赛)

gbdt版本     MDD Cup 2017,是美团点评内部首届算法大赛,主要是预测外卖的送达时间,是一个回归问题,简单说一说比赛过程自己的所思所想,记录一下。     拿到数据...
  • zhangzhengyuan123123
  • zhangzhengyuan123123
  • 2018年01月04日 15:39
  • 174

three.js 源码注释(三十三)Scenes/Scene.js

Scene是场景对象,所有的对象,灯光,动画,骨骼等都需要放置在场景内.Scene对象的功能函数采用定义构造的函数原型对象来实现....
  • omni360
  • omni360
  • 2014年11月28日 16:06
  • 1450
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Scene Graph 小记(Qt5)
举报原因:
原因补充:

(最多只允许输入30个字)