查看: 4360|回复: 11

关于OSG和OpenGL的选择

[复制链接]

该用户从未签到

发表于 2009-2-19 10:57:22 | 显示全部楼层 |阅读模式
我开始做一个三维人脸建模的项目,最终要把图像纹理映射到三角网格上并显示,还要在窗口中可以用鼠标最最终三维模型的旋转。
如果要实现这样的功能,OSG和OpenGL相比复杂程度差别多大?而且我基本不会C++,不知道该如何选择

该用户从未签到

发表于 2009-2-19 11:03:04 | 显示全部楼层
不会C++只会C的话用OpenGL就行
纹理映射OSG不会简单多少的

该用户从未签到

发表于 2009-2-19 11:03:54 | 显示全部楼层
不过模型操作用OSG会简单很多

该用户从未签到

 楼主| 发表于 2009-2-19 11:18:49 | 显示全部楼层
原帖由 smash 于 2009-2-19 11:03 发表
不过模型操作用OSG会简单很多

谢谢

模型操作?是不是点云网格化之类的操作?能具体点吗?
OSG比OpenGL简单在何处?

[ 本帖最后由 nocturne 于 2009-2-19 11:20 编辑 ]

该用户从未签到

发表于 2009-2-19 11:33:21 | 显示全部楼层
OSG在场景开发和渲染的效率上远胜过使用仅仅用OpenGL编写的程序,不过在建模方面没有任何优势可言,因为OSG是一个实时渲染和场景管理工具,而非建模工具。
如果您需要自己通过点云构建复杂的模型结构,那么建议自己编写相应的代码;或者期待我的osgModeling工程有所更新,如果您有足够的耐心的话 。OSG恐怕不会提供这类与渲染无关的功能

该用户从未签到

 楼主| 发表于 2009-2-19 12:27:25 | 显示全部楼层
原帖由 array 于 2009-2-19 11:33 发表
OSG在场景开发和渲染的效率上远胜过使用仅仅用OpenGL编写的程序,不过在建模方面没有任何优势可言,因为OSG是一个实时渲染和场景管理工具,而非建模工具。
如果您需要自己通过点云构建复杂的模型结构,那么建议自己编写相应的代码;或者期待我的osgModeling工程有所更新,如果您有足够的耐心的话  。OSG恐怕不会提供这类与渲染无关的功能


点云处理和图像处理这2个部分是要自己写算法来实现的,只是最后的纹理映射,可视化和用鼠标控制三维人脸模型的旋转这3个部分要用到OSG之类的工具包,没有场景也不需要渲染,这样是否OSG就没有优势了?而且我C++基本是0基础,仅仅知道类和继承等概念而已,OSG教材也貌似比较少

[ 本帖最后由 nocturne 于 2009-2-19 12:29 编辑 ]

该用户从未签到

发表于 2009-2-19 12:41:41 | 显示全部楼层
终究比纯粹用OpenGL要简单一些:如果指定好纹理坐标的话,纹理映射只是一行代码的事;浏览模型用OSG的场景漫游器也方便得多。
而且您编程完全可以使用C风格,就像大部分的OSG官方例子那样,只是new/delete这些操作是C++风格而已;如果您还是看着malloc/free更顺眼一些,那么直接用OpenGL就好。
您的算法如果可以公开或者需要一个承载平台的话,欢迎加入osgModeling工程~~点云处理和人脸建模的功能模块虚位以待

该用户从未签到

 楼主| 发表于 2009-2-19 14:31:06 | 显示全部楼层
原帖由 array 于 2009-2-19 12:41 发表
终究比纯粹用OpenGL要简单一些:如果指定好纹理坐标的话,纹理映射只是一行代码的事;浏览模型用OSG的场景漫游器也方便得多。
而且您编程完全可以使用C风格,就像大部分的OSG官方例子那样,只是new/delete这些操作是C++风格而已;如果您还是看着malloc/free更顺眼一些,那么直接用OpenGL就好。
您的算法如果可以公开或者需要一个承载平台的话,欢迎加入osgModeling工程~~点云处理和人脸建模的功能模块虚位以待


虚位以待...承受不起啊  
快速入门里面说必须要比较熟悉STL,只会C的话不能直接上手OSG吧
浏览模型,是不是就是可视化?

该用户从未签到

发表于 2009-2-19 14:43:23 | 显示全部楼层
可视化这个词的范畴很大,不过在三维环境下浏览由几何数据生成的模型,这肯定属于数据可视化的一部分。
只会C的话直接上手OSG会有些吃力,不过也并不是不可以;C和C++有很多相通之处,在应用过程中就可以学习和理解。而STL是OSG内部所用的重要机制之一,不过在用户层面可能常常遇到的无非就是Vec*Array这些,并没有什么难以逾越的。

该用户从未签到

 楼主| 发表于 2009-2-19 15:23:38 | 显示全部楼层
原帖由 array 于 2009-2-19 14:43 发表
可视化这个词的范畴很大,不过在三维环境下浏览由几何数据生成的模型,这肯定属于数据可视化的一部分。
只会C的话直接上手OSG会有些吃力,不过也并不是不可以;C和C++有很多相通之处,在应用过程中就可以学习和理解 ...


最后要实现的结果是:可以用鼠标旋转纹理映射后显示的模型
按理OSG应该是比直接用OpenGL要轻松吧,不过考虑到我的情况,上手的难易复杂程度,您建议用哪个?因为我感觉就我所用到的功能,OpenGL实现的话也不是很麻烦?
另外,VTK我记得也可以纹理映射吧
原来都是用C在VC6上编写程序没有接触过OpenGL之类的三维渲染的API,所以问的问题有点小白了
还有如果用OSG,从海军教程入手您觉得如何?或者您有别的建议?不胜感激啊

[ 本帖最后由 nocturne 于 2009-2-19 15:32 编辑 ]

该用户从未签到

发表于 2009-2-19 15:50:03 | 显示全部楼层
对于三维渲染的功能实现而言,纹理映射只是很小的一部分,任何现在的三维引擎,无论OSG,VTK,OGRE,VRS,OpenSG种种,不管侧重点在哪里,都必须提供这些基本的功能,否则不会有生存的余地。
OSG是基于OpenGL的,但是应当说是入门门槛比较高的一个API引擎,开发的时候需要熟悉很多OpenGL的概念,否则会比较混乱。海军教程多少有些陈旧了,不过作为入门并不赖。但是不得不说,当您悉心地读完海军教程的每一章之后,恐怕还是很难找出多少OSG开发的门道来——只有始终怀着热情去研究引擎内部的点点滴滴才成,其他引擎的研究皆同一理,不存在读一遍就能通晓万物的事情。
至于用OpenGL直接进行三维程序的开发,当然可以,学校的研究工作也经常是这么做的。不过对于企业开发产品很不适用,因为深入不易,开发效率很低,开发人员的门槛要求也更高。

该用户从未签到

 楼主| 发表于 2009-2-19 16:45:20 | 显示全部楼层
非常感谢阿锐的解惑
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表