osg,vtk,ogre的区别
osg使用过一年,阅读过一部分源代码,vtk也断续使用过三四年了,ogre研究的比较深入,基本上比较熟悉它的整体结构,说说个人的看法
vtk是一个算法库,里面包括了很多挺不错的算法,如果做有限元云图,等值线,特别是医疗方面的算法,有很大的参加价值,我曾经把它的等值线算法提取出来
一个类就可以实现,主要函数就三四个,而且同时实现了云图,等值线,比网上的追踪算法要简单许多,它是一种栅格算法,国外的的维基百科有介绍,但是维基百科上的介绍和vtk的也不完全一样,虽然思路是一致的。vtk的渲染效率应该不是很快,里面没有集成八叉树等场景管理的算法,它的主要目的也不是渲染,而是算法。
而且它的架构也是一种管道流的方法,输入数据经过一系列的算法处理后,最终形成点,线,面,存入vtkPolyData里面,然后在屏幕上绘制出来。
使用vtk主要有两种方法,第一种就是参考它的算法,直接抽也来,用自己的数据结构实现,这种方法方法可以脱离vtk, 直接加入到自己的软件里面,缺点就是提出麻烦,需要对vtk比较熟悉
第二种方法就是用vtk的数据结构,算法部分直接用vtk的库,然后最终的点线面数据从vktPolyData提取出来,用自己的代码绘制。缺点就是如果只用某种算法,比如它的等值线算法的话,也需要引用它的好几个库,显得太臃肿,优点是不用提取算法,而且可以直接的使用它提供的多种算法,本人两种方法都用过。
osg是一种场景图的方法,每个opengl相关的函数都是一个节点, 适合用仿真,里面集成的很多算法,比如多相机,多视图,粒子系统,各种回调函数,求交等都比较合适仿真,而且它只支持opengl, 扩展起来很方便,里面还集成了几种漫游器,如果要写自己的漫游器,也可以参考。如果初学者要学习图形学的话,推荐学习osg,网上也有很多的资料和教程,而且它有多线程的实现模型。
ogre用于游戏多些,而且支持d3d, 由于要同时实现opengl和d3d,所以相对OSG来说,它比较难以扩展,但是它的一些插件式的架构设计相当不错,如果想进入游戏行业,同时想学习了解引擎架构的话,推荐学习ogre,感觉ogre有点过度设计了,反而难以扩展,而且里面也没有集成好用的漫游器。它的粒子系统,场景管理都是插件式的,可以利用它来学习插件式的程序设计。
osg,vtk,ogre的区别的更多相关文章
- [比较老的文章]三维渲染引擎 OGRE 与 OSG 的比较综述
1 .引言随着计算机可视化.虚拟现实技术的飞速发展,人们对实时真实感渲染以及场景复杂度提出了更高的要求.传统的直接使用底层图形接口如OpenGL.DirectX开发图形应用的模式越来越暴露出开发复杂性 ...
- 转:关于 OGRE 与 OSG 的简单比较
1 前言 我曾经细致阅读过 OGRE 和 OSG 官方提供的文档,有<Pro OGRE 3D Programming>.OGRE自带手册(manual).王锐老师等翻译的<Ope ...
- 关于OGRE与OSG的简单比较【转】
关于OGRE与OSG的简单比较 林乃养 lnychina{at}gmail.com 浙江大学CAD&CG实验室 2010年3月27日 1 前言 我曾经细致阅读过OGRE和OSG官方提供的文档, ...
- 关于 OGRE 与 OSG 的简单比较 (转)
关于 OGRE 与 OSG 的简单比较 1 前言 我曾经细致阅读过 OGRE 和 OSG 官方提供的文档,有<Pro OGRE 3D Programming>.OGRE自带手册(man ...
- VTK中获取STL模型点的坐标以及对其进行变换
VTK是一个基于面向对象的开源三维绘图软件包,和其它的的三维绘图引擎如OSG.OGRE不同之处在于,VTK可视化对象主要是各种数据,更加注重对数据分析处理后的可视化,可视化的内容是人们无法直接感受到的 ...
- VTK资料收集
使用Qt Creator开发VTK 原文链接:http://blog.csdn.net/numit/article/details/10200507 VTK应用系列:非常强大!非常善良 05-VTK在 ...
- tasks
Edit: F:\wamp\www\tasks Task ID Name Links? Date commit Date Done 9 Read openCV documents F:\wamp\ww ...
- [原][osg]osg文件与osgb文件的区别
osgb是二进制文件 osg是文本文件 osgb可以通过osgconv.exe转换成osg文件 osgb可以包含纹理文件(就是贴图) osg只能连接外部纹理文件(是的,你看到的cow.osg都是用的外 ...
- 使用VTK与Python实现机械臂三维模型可视化
三维可视化系统的建立依赖于三维图形平台, 如 OpenGL.VTK.OGRE.OSG等, 传统的方法多采用OpenGL进行底层编程,即对其特有的函数进行定量操作, 需要开发人员熟悉相关函数, 从而造成 ...
随机推荐
- Spring单实例、多线程安全、事务解析
原文:http://blog.csdn.net/c289054531/article/details/9196053 引言: 在使用Spring时,很多人可能对Spring中为什么DAO和Se ...
- cookie的三种操作方法
1,jquery.cookie.js 这一篇文章已经写的很详细了: http://www.cnblogs.com/afuge/archive/2013/07/03/3169048.html 2,原生j ...
- 夺命雷公狗-----React---8--react官方提供的组建实现双向绑定
首先要引入她.. <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数004·edge,边缘处理
<zw版·Halcon-delphi系列原创教程> Halcon分类函数004·edge,边缘处理 为方便阅读,在不影响说明的前提下,笔者对函数进行了简化: :: 用符号“**”,替换:“ ...
- jquery easyui DataGrid 数据表格 属性
用法 1. <table id="tt"></table> 1. $('#tt').datagrid({ 2. url:'datagrid_d ...
- Bison
- php中rsa加密及解密和签名及验签
加密的内容长度限制为密钥长度少位,如位的密钥最多加密的内容为个长度. 公钥加密 $public_content=file_get_contents(公钥路径); $public_key=openssl ...
- DDL、DML、DCL的理解
1.DDL 1-1.DDL的概述 DDL(Data Definition Language 数据定义语言)用于操作对象和对象的属性,这种对象包括数据库本身,以 ...
- document.compatMode属性和获取鼠标的位置
document.compatMode属性 document.compatMode用来判断当前浏览器采用的渲染方式. 官方解释: BackCompat:标准兼容模式关闭.CSS1Compat:标准兼容 ...
- SQL Server T-SQL高级查询
name like 'ja%'; select * from student where name not like '%[j,n]%'; select * from student where na ...