三维渲染引擎设计与实践

Posted 非宁静,无以致远

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了三维渲染引擎设计与实践相关的知识,希望对你有一定的参考价值。

4.3.2 空间变换节点

世界坐标系是系统的绝对坐标系,在没有建立用户坐标系之前,所有的坐标都是以该坐标的原点来确定各自的位置的。

OSG中的坐标系是X正向向右,Y轴正向向里,Z轴正向向上

OpenGL的坐标系是X正向向右,Y轴正向向上,Z轴正向向外

Transform公有继承Group类,AutoTransform公有继承Transform 

SRT   比例 scale 旋转rotate 平移transfom

4.3.3开关节点Switch

作用是:在场景运行的某一时刻,它的某些子节点被隐藏和忽略,而另一些节点显示并执行相应功能。

节点树的遍历方法:当需要遍历一个Group组节点的所有子节点时,通过调用Node::traverse函数,执行子节点的accept函数加载访问器,并进而使用NodeVisitor::traverse函数继续推进,执行子节点的ascend函数或者traverse函数。

void Node::accept(NodeVistor& nv)

{  nv.apply(*this) ;   }

判断某个子节点对应的开关值,当开关为false时,不执行accept函数,因此不被遍历。

4.3.4 范例 使用开关节点 P92

http://blog.csdn.net/u011310341/article/details/51226804

4.3.5 细节层次节点(LOD)  LayerOfDetail

实现方法是:在不影响渲染外观的前提下,根据场景对象与观察者的距离,从多个预置方案中选择一种更为简单的方式来表达要渲染的物体,减轻系统绘制场景的负担。

 LOD的各个子节点有相同的中心坐标,以保证它们表达的是同一个物体的细节层次。

4.3.6 范例 使用LOD节点

4.3.7 范例 节点代理   ProxyNode

代理节点是一种用于动态加载其他模型节点的节点类型,使用setFileName设置给代理节点的文件名就是准备加载的各个子节点。这些子节点不会立即呗解析和加入场景,而是在场景运行过程中逐步载入。

以上是关于三维渲染引擎设计与实践的主要内容,如果未能解决你的问题,请参考以下文章

三维渲染引擎设计与实践

三维渲染引擎设计与实践

三维渲染引擎设计与实践

三维渲染引擎设计与时间

不同三维引擎渲染IFC数据效果对比

基于三维GIS技术的动态LOD渲染方法的实验及验证