OpenSceneGraph基础:Helloworld

本文介绍了OpenSceneGraph的基本流程,包括场景初始化、模型数据建立、叶节点和组节点的创建。在场景初始化中,通过startupScene函数构建包含模型数据的Group对象,并在Viewer中进行渲染。模型数据包括顶点坐标、面索引和颜色,存储为osg对象。文章还讨论了如何使用Transform节点实现动态效果,如随机分布的几何体位置变化。
摘要由CSDN通过智能技术生成

OpenSceneGraph的基本流程(main函数):

转载请注明http://blog.csdn.net/boksic 如有疑问欢迎留言

int main() {
	Group *scene = startupScene();

	osgViewer::Viewer viewer;
	viewer.setSceneData(scene);
	viewer.setCameraManipulator(new osgGA::TrackballManipulator);
	viewer.realize();

	while (!viewer.done()) {		
		viewer.frame();
		update(0.005); // do the update advancing 5ms
	} 

	return 0;
}

  • startupScene函数是自己建立的场景初始化函数,返回值是包含了场景图形数据的Group类
  • 接着初始化Viewer类,以及提供了模型操作功能的TrackballManipulator
  • 最后就是最为重要的渲染部分-Viewer的循环,每帧都会调用自定义的update函数

场景初始化(startupScene)

建立模型数据

这里使用的是程序内部初始化数据,包含了顶点坐标,面索引以及顶点颜色

(部分网上教程里还使用了顶点的颜色索引colorIndexArray,但该功能因为非常影响性能,现在的OSG中已废除了该功能。所以顶点与色彩应按对应关系初始化)

OpenSceneGraph快速入门指导本书是一本对于OpenSceneGraph(OSG)的简明介绍。OSG 是一个跨平台的开源场景图形程序开发接口(API)。本书特别地针对OSG 1.3 的版本。OSG在3D 应用程序的层级中扮演着重要的角色。它作为中间件(middleware)为应用软件提供了各种高级渲染特性,IO,以及空间结构组织函数;而更低层次的OpenGL 硬件抽象层(HAL)实现了底层硬件显示的驱动。一直以来,OSG 都是以源代码作为可阅读的文档资料。OSG 的发布版本中包含了一些示例程序,用于介绍各种不同渲染效果的实现,以及OSG 与终端用户软件的集成方法。有相当部分的开发者可以通过这些示例程序,以及使用调试工具深入了解OSG 的核心,成长为熟练的OSG API 程序员。尽管根据以往的经验,源代码足可起到编程文档的作用,但是它仍然不能替代正式格式的编程文档。图形和表格是编程手册中常见的易于理解的教学工具,但是它们在源代码中几乎无法体现。正因为OSG 的迅速发展和愈发复杂的体系,对于它的新用户来说,在缺乏参考文档的情况下学习OSG 所需的时间也就越长,这是我们所不愿看到的。事实上,在这本书面世以前,由于编程文档的匮乏,一部分开发者已经对OSG 的成熟性和稳定性产生了疑问,怀疑它是否能胜任专业级应用程序的开发工作。2006 年中期,Don Burns 和Robert Osfield 认识到了编写OSG 书籍的重要性。Don 的客户之一,计算机图形系统开发公司(CGSD),要求编写一定量的OSG图书和文档。Don 将这一文档开发工作转交给Paul Martz,而Robert 则建议第一本OSG 的书籍应当是免费且通俗易懂的。因此,《OpenSceneGraph 快速入门指导》诞生了。这本书是一个简短的编程指南,它介绍了基本和核心的OSG API函数。它同时也是一系列计划出版的OSG 书籍的第一部,OSG 的文档将随着这个系列的发行而逐渐完善。《OpenSceneGraph 快速入门指导》的编写目的如下。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值