自定义SceneGraph节点
# 11.自定义SceneGraph节点
直接操作 QSGNode——QML 渲染的最高性能形态。从自定义 QQuickItem 到零拷贝纹理渲染。
# 目录
- 1. 案例引入:实时视频帧渲染——为什么需要自定义 SceneGraph 节点?
- 2. QSGNode 体系
- QSGNode 树结构
- QSGGeometryNode/QSGTransformNode/QSGOpacityNode
- 节点生命周期管理
- 3. 自定义 QQuickItem
- updatePaintNode() 虚函数
- 材质(QSGMaterial)与着色器
- 纹理(QSGTexture)上传
- 4. 零拷贝纹理渲染
- QSGTexture::fromImage vs fromNativeExternalOES
- 摄像头帧→OpenGL纹理→QML(不经过CPU拷贝)
- 5. 自定义着色器(QSGSimpleMaterialShader)
- Vertex Shader/Fragment Shader 编写
- uniform 变量传递
- 6. 线程安全与脏标记
- setFlag(ItemHasContents)
- update() 触发的时机
- Render Thread 中的限制
- 7. 实战:实时心电图渲染(200Hz,零拷贝)
- 8. 速查表
🆕 全新原理篇
上次更新: 2026/06/25, 10:11:58