3D开发初探

一直对3维开发有着浓厚的兴趣,这几天上网查找了基本的概念性资料。为了防止这段时间的记忆散去,特总结如下,以备后查。

   (1)底层API的选择。

    尽管目前GLSL等着色语言出现,但是真正项目中使用的大多数还是OpenGL和Direct3D的C语言。顶层API目前主要有OpenGL和D3D,OpenGL的优点是稳定,平台无关,能运行在Windows, Linux, Unix所有平台;缺点是由于与平台无关,需要额外的窗口系统与OpenGL渲染区的连接库,如glx,wgl等。D3D的最大优点就是有微软的强大支持,缺点就是只能运行在Windows系统上,而且版本之间不兼容。
    真正有用的图形程序,一般都需要窗口与交互,所以需要与窗口系统的开发库结合,来制作实用的程序,常见的OpenGL结合如下:
    -----Linux平台:gtk+搭配OpenGL, Qt搭配OpenGL;
    -----Windows平台:MFC搭配OpenGL;Win32 SDK搭配OpenGL。

    无论是OpenGL还是D3D,提供的函数都相当原始,几乎对应于显卡的显示命令。只提供了渲染功能,而没有或者没有很好地对建模,场景管理,互动等直接支持。所以当前的大型项目很少直接用OpenGL或者D3D开发(当然牛人的项目,如ID software的游戏除外)。

   (2)高层API的选择。
    OpenGL这样的底层API入门很容易,但是要提高就很难了,也很难在短时间内做出优秀的功能强大的图形程序来。所以出现了高级的基于OpenGL的高层库。常见的有OpenInventor和OpenSceneGraph。
    OpenInventor是一个标准,而不仅仅是一个产品。目前有两个提供厂商,一是商业版本的Mercury(收购SGI)提供;二是Trolltech(收购Sim)提供的Coin3D。Coin3D采用了与Qt类似的双重协议(本人对这种协议厌恶)。这两个产品目前都能很好的在Windows,Linux等多种平台上运行。其中Window平台的MFC+OpenInventor在国内比较流行。OpenInventor本身与操作系统无关,使其与OS相连接的部分独立出来,在Windows平台上叫做SoWin。

    OpenSceneGraph简称OSG,是一款现代的高层API库。采用C++标准模板和设计模式编写而成,采用了优秀的模块化设计思想。OSG采用LGPL协议,使得商业开发即免费有可以保护知识产权(本人喜欢这种协议)。因此,osg的发展十分迅速。OSG也非常好的支持多种平台,本身与操作系统无关,与OS相连接的部分独立出来,与平台连接的部分叫osgViewer,在不同的平台上有不同的实现。

   (3)我目前的选择
   考虑到发展前景和个人喜好,我决定做基于osg的开发。首先在Windows平台开发,采用MFC+osg的方式;等熟悉osg后,再转向Linux的GTK+ + osg的开发方式。 
    
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值