惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Heimdal Security Blog
A
Arctic Wolf
K
Kaspersky official blog
V
Vulnerabilities – Threatpost
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Simon Willison's Weblog
Simon Willison's Weblog
L
LINUX DO - 热门话题
MongoDB | Blog
MongoDB | Blog
T
Threat Research - Cisco Blogs
D
Docker
爱范儿
爱范儿
T
Tenable Blog
C
Check Point Blog
B
Blog
C
Cisco Blogs
Vercel News
Vercel News
The Cloudflare Blog
T
Threatpost
NISL@THU
NISL@THU
T
Tor Project blog
V2EX - 技术
V2EX - 技术
P
Palo Alto Networks Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
T
Tailwind CSS Blog
G
GRAHAM CLULEY
P
Privacy & Cybersecurity Law Blog
SecWiki News
SecWiki News
博客园 - 司徒正美
S
Security @ Cisco Blogs
GbyAI
GbyAI
S
Secure Thoughts
Microsoft Security Blog
Microsoft Security Blog
The Register - Security
The Register - Security
Recorded Future
Recorded Future
Cloudbric
Cloudbric
Webroot Blog
Webroot Blog
N
News and Events Feed by Topic
Y
Y Combinator Blog
博客园_首页
T
Troy Hunt's Blog
The Hacker News
The Hacker News
雷峰网
雷峰网
Google DeepMind News
Google DeepMind News
U
Unit 42
AWS News Blog
AWS News Blog
PCI Perspectives
PCI Perspectives
V
Visual Studio Blog
博客园 - 聂微东
有赞技术团队
有赞技术团队
酷 壳 – CoolShell
酷 壳 – CoolShell

博客园 - SoRoMan

思考:矩阵的级联顺序与坐标系的关系 MFC的一些宏的整理 (DECLARE_DYNCREATE/IMPLEMENT_DYNCREATE) 关于STL Improve Performance of C++ Codes (2) -- 如何消除临时对象? Improve Performance of C++ Codes (1) -- 使用初始化列表还是赋值语句? 关于万向节死锁(Gimbal Lock)(续) 思考:矩阵及变换,以及矩阵在DirectX和OpenGL中的运用问题:左乘/右乘,行优先/列优先,... 读书笔记:Writing Solid Code (4) 读书笔记:Writing Solid Code (3) 读书笔记:Writing Solid Code (2) 读书笔记:Writing Solid Code A 3D Real Time Fluid Solver Demo (三维实时流体解算器) 笔记:Delaunay三角剖分(Delaunay Triangulation)相关知识 学习经验:逐步建立学习资源列表-计算机图形学 SL专题6:谈谈Second Life中的游戏制作(Game Dev in SL) SL专题4:Second Life畅销商品 SL专题3:Second Life市场分析 SL专题2:加入并熟悉Second Life世界 SL专题1:Second Life(第二生命)--迟早火爆世界的游戏与Web的集大成者
Scene Management - Scene Graph
SoRoMan · 2009-12-31 · via 博客园 - SoRoMan

Scene Graph故名思意就是场景图,或者说是用来组织场景的一种“图”数据结构,通常是以逻辑关系(比如整体-部分)划分数据,当然也有按照其它关系(比如空间关系,状态等)划分数据的。其特点是都是层次结构,层次结构的好处是某个层次的数据的规模相比整体数据能大规模衰减,缩小规模当然能提高效率。常见的Scene Graph实现有有向非循环图(DAG),无向非循环连通图(UDCG Tree)等结构。

来看看使用SG的好处是什么,先来看看别个的Scene Graph实现。

WildMagic (ver 1.07)


特点:

  • 场景图的结构方面:以Tree来实现,即Node0-1Parent Node0-*Child Node
  • 优点:使用Tree,非常简洁明了,方便Traverse,从上至下,从下至上。
  • 缺点:NodeGeometry共同继承自Spatial,容易造成基类Spatial的膨胀,无论是成员还是接口,实际上有些NodeSpatial属性不多,象Light
  • 缺点:使用Tree,造成某些Nodeshare上麻烦,比如Geometry EntityShare,类GeometryParent最多只有一个,如果想共享Geometry,必须生成多个Geometry挂到不同的Node下。
  • 几何实体与场景图的关系:Geometry Entity不是Node,挂在Node
  • 如何裁剪Cull:包含BVH
  • 渲染状态的处理:不支持State Sort
  • 其它细节:
  • Transform不是Node
  • LightNode
  • Camera 不是Node

OSG (ver 2.8.1)


特点:

  • 场景图的结构方面:以DAG来实现,Node0-*Parent NodeGroup Node 0-*Child Node
  • 优点:使用DAG,能方便的共享Node,易于扩展。比如:Geometry的共享。
  • 缺点:包含多个Parent Nodes的时候不方便Traversal
  • 几何实体与场景图的关系:Geometry Entity不是Node,挂在Node
  • 如何裁剪Cull:包含BVH
  • 渲染状态的处理:支持State Sort,支持State Cache
  • 优点:State Sort,相同State Set的一块渲染,减少渲染State切换的开销。
  • 优点:State Cache,在State有必要的时候才去更新,减少State频繁的切换和查询。
  • 其它细节:
  • TransformNode
  • 优点:Transform作为NodeShare Transform Data,减小了Node的大小。
  • LightNode
  • Camera Node

OGRE (ver: v1-4-7)


特点:

  • 场景图的结构方面:以Tree来实现,以Tree来实现,即Node0-1Parent Node0-*Child Node
  • 优点:使用Tree,非常简洁明了,方便Traverse,从上至下,从下至上。
  • 几何实体与场景图的关系:Geometry Entity不是Node,挂在Node下,Geometry可以方便的被不同Node共享。
  • 如何裁剪Cull:包含BVH
  • 渲染状态的处理:支持State Sort
  • 优点:上层支持Render StrategySort,底层支持Material/Texture NameSort
  • 其它细节:
  • TransformNode
  • 优点:Transform作为NodeShare Transform Data,减小了Node的大小。
  • LightNode
  • Camera Node