zoukankan      html  css  js  c++  java
  • 3D开发初探

    3D开发初探       

            分类:            图形图像处理682人阅读评论(0)收藏举报
    一直对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的开发方式。
       
  • 相关阅读:
    用Less循环生成样式
    Angular Textarea 高度自动变化
    html文字溢出以省略号(...)替代
    mobiscroll之treelist使用
    安装Microsoft Visual C++ 2010 x64 Redistributable失败的解决方案
    获取input标签的所有属性
    checked
    js中的in-for循环
    checkbox批量选中,获取选中的项的值
    vue 订单列表 多个倒计时
  • 原文地址:https://www.cnblogs.com/moonvan/p/2861460.html
Copyright © 2011-2022 走看看