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进行底层编程,即对其特有的函数进行定量操作, 需要开发人员熟悉相关函数, 从而造成 ...
随机推荐
- PPAS Migration Toolkit document
-----------------Migration Toolkit-----------------Migration Toolkit is a command line utility that ...
- HTML5 Canvas arc()函数//////////////////////(转)
HTML5 Canvas arc()函数 实例 创建一个圆形: var c=document.getElementById("myCanvas"); var ctx=c.get ...
- css3 flex
<!DOCTYPE html> <html> <head> <style> .first-face { display: flex; justify-c ...
- 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数006, image,影像处理(像素图)
<zw版·Halcon-delphi系列原创教程> Halcon分类函数006, image,影像处理(像素图) 为方便阅读,在不影响说明的前提下,笔者对函数进行了简化: :: 用符号“* ...
- POJ - 2183 Bovine Math Geniuses
“模拟“题,运用哈希,不断地按照一定运算规律对一个结果进行计算,如果重复出现就停止并且输出该数.注意到仔细看题,这种题一定要细心! POJ - 2183 Bovine Math Geniuses Ti ...
- Qt报表控件NCReport教程:添加报表字段
NCReport是一款轻量级.快速.多平台.简单易用的基于Qt toolkit的C++编写的报表解决方案,目前主要包括报表渲染库和报表设计器GUI应用程序. 在前面的文章<报表控件NCRepor ...
- Java基础 静态块、非静态块、构造函数的执行顺序
Java中经常有一些静态块,这是用来在生成类之前进行的初始化,无论java还C++语言中的static,都是最先初始化好的.结构如下: static { 静态语句代码块 } { 非静态语句代码块 } ...
- mysql之show engine innodb status解读
注:以下内容为根据<高性能mysql第三版>和<mysql技术内幕innodb存储引擎>的innodb status部分的个人理解,如果有错误,还望指正!! innodb存 ...
- 【SSO单点系列】(3):CAS4.0 登录页验证码的添加
2016.08.23 更新 注意:这个教程只适合4.0版本的,4.1以及以上的版本的已经不试用了, 后面几篇有人提到过 源码网盘链接更新了下 : 链接: http://pan.baidu.com/s/ ...
- (3) 深入理解Java Class文件格式(二)
好文转载:http://blog.csdn.net/zhangjg_blog/article/details/21487287 在上一篇文章 深入理解Java Class文件格式(一) 中, 介绍了c ...