用OpenInventor实现的NeHe OpenGL教程-第四十八课

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
 

NeHe教程在这节课向我们介绍了轨迹球技术。轨迹球技术可以让用户使用鼠标直接旋转物体,这是所有交互式3D软件必须提供的最基本的功能。NeHe教程提供的方法是在其它人的基础上做了一些修改和优化。但他的方法仍然有一些小的错误,例如,在将鼠标2D坐标位置映射到3D球体上时,他没有考虑透视因素,因此可能会稍微有些误差,不过对于一般应用来说已经足够用了。

 

       Open Inventor 是一个用于开发交互式3D程序的图形库。因此OpenInventor默认也提供了轨迹球的操作方式,只要我们使用SoWinExaminerViewer等观察器,我们不需要做任何的开发,就会自动得到轨迹球的功能。在前面的47节课程中,我们也都是使用了SoWinExaminerViewer观察器,但为什么我们不能用鼠标来旋转场景中的物体呢?,原因是我们使用这段代码g_pOivView->setViewing(FALSE) 来禁止轨迹球功能。读者可以实验将这段代码注释掉,您就可以立即拥有旋转,放大/缩小, 平移等功能。

 

       鉴于OpenInventor默认提供了轨迹球的功能,因此我们就不在按照NeHe教程的方法再次实现轨迹球功能了。重复发明轮子不是一件很愚蠢的事情吗?

 

后记

OpenInventor是一种基于OpenGL的面向对象的三维图形软件开发包。使用这个开发包,程序员可以快速、简洁地开发出各种类型的交互式三维图形软件。这里不对OpenInventor做详细的介绍,读者如果感兴趣,可以阅读我的blog中的这篇文章《OpenInventor 简介》。

 

NeHe教程是目前针对初学者来说最好的OpenGL教程,它可以带领读者由浅入深,循序渐进地掌握OpenGL编程技巧。到目前为止(200711月),NeHe教程一共有48节。我的计划是使用OpenInventor来实现所有48节课程同样的效果。目的是复习和巩固OpenGL的知识,同时与各位读者交流OpenInventor的使用技巧。

 

       因为篇幅的限制,我不会介绍NeHe教程中OpenGL的实现过程,因为NeHe的教程已经讲解的很清楚了,目前网络中也有NeHe的中文版本。我将使用VC 2003作为主要的编译器。程序框架采用和NeHe一样的Win32程序框架,不使用MFC。程序也可以在VC ExpressVC 2005/2008中编译。我采用的OpenInventor开发环境是Coin,这是一个免费开源的OpenInventor开发库。文章  OpenInventorCoin3D开发环境  介绍了如何在VC中使用Coin。我使用的Coin版本是2.5。读者可以到  www.coin3d.org  中免费下载。

 

       读者可以在遵循GNU协议的条件下自由使用、修改本文的代码。水平的原因,代码可能不是最优化的,我随时期待读者的指正和交流。转载请注明。谢谢。

我的联系方式:

E-mail: < openinventor@gmail.com > < openinventor@126.com >

Blog: < http://blog.csdn.net/RobinHao >

Site: < http://www.openinventor.cn
OpenGL基础教程 阅读详情

相关推荐

NeHe opengl教程48全(中文pdf,英文pdf,源码)

NeHe opengl教程48全(中文pdf,英文pdf,源码)

十大OpenGL教程

1.http://nehe.gamedev.NET/     这个是我觉得全世界最知名的OpenGL教程,而且有网友将其中48教程翻译成了中文http://www.owlei.com/DancingWind/Nehe 此教程最大的特点是提供了针对不同平台、不同编译器、不同语言的各种版本。你不用考虑自己用的是Linux/Windows、VC/BC、C++/Java/C#/VB,甚至D语言,你

Thinker361的专栏 2002

OpenGLNehe完整版中文教程及源码

OpenGLNehe完整版中文教程及源码,内含教程PDF+教程源代码(共48

OpenGL基础48:高度贴图(上)

前置:OpenGL基础47:法线贴图 一、凹凸贴图 不少模型都会附带以“bump”为名结尾的贴图,这种帖图统称为凹凸贴图,目的是为了体现出物体的凹凸不平,最经典的例子就是法线贴图,这个在上一章有详细提到过 除此之外还有高度贴图、浮雕贴图等,暂时先了解下高度帖图及其最简单的算法 高度贴图又称视差贴图,用于直接给予纹理显示上的错觉,视差贴图往往都是黑白图,因为理论上只需要知道每个纹理的深度值,因此RGB三个值都是相等的,就如下: 如果对应的像素是黑色的,意味着此纹理的高度为0,也就是默认值,...

加载中... 4798

OpenInventor实现NeHe OpenGL教程-第十

OpenInventor实现NeHe OpenGL教程-第十         这节我们将加载一个3D场景,并在这个场景中做自由漫游。读者将看到加载3D场景不是一件很难的事情,难点是3D场景的数据组织。不过这些是美工的事情,和我们程序员关系不大 ^_^ 。        在程序开始的部分我们新定义了一些变量,这些变量的作用和NeHe教程中定义的变量有相同的作用。SoTexture2*                 g_pTexture = NULL; //场景的纹理对象SoComplexity*  

Augusdi的专栏 1802

OpenInventor实现NeHe OpenGL教程-第一

OpenInventor实现NeHe OpenGL教程-第一        OpenInventor是一种基于OpenGL的面向对象的三维图形软件开发包。使用这个开发包,程序员可以快速、简洁地开发出各种类型的交互式三维图形软件。这里不对OpenInventor做详细的介绍,读者如果感兴趣,可以阅读我的blog中的这篇文章《OpenInventor 简介》。 NeHe教程是目前

RobinHao的专栏 5725

OpenGL-Nehe完整中文教程.pdf

OpenGL-Nehe完整中文教程.pdf

Opengl教程(NeHe)

OpenGL实际上是一个开放的三维图形软件包,它独立于窗口系统和操作系统,以它为基础开发的应用程序可以十分方便地在各种平台间移植;OpenGL可以与Visual C++紧密接口,便于实现机械手的有关计算和图形算法,可保证算法的正确性和可靠性;OpenGL使用简便,效率高。它具有七大功能:

NeHe OpenGL教程中文版(全)

NeHeOpenGL中文教程,非常浅显易懂;我敢说,只要你把每一都认真实现,3D图形开发的水平一定会上一个台阶! (这可是我花了一个小时搜集整理的)

OpenInventor实现NeHe OpenGL教程-第三十

OpenInventor实现NeHe OpenGL教程-第三十         NeHe教程在这节介绍了碰撞检测。碰撞检测是一种比较复杂的技术。NeHe教程只是检测平面、球体、圆柱体等这些规则物体之间的碰撞检测。OpenInventor提供了任意形状物体之间的碰撞检测,当然这样的碰撞检测需要更多的计算时间。 碰撞检测的算法在NeHe教程中已经做了详尽的解释,我们就

RobinHao的专栏 3910

OpenInventor实现NeHe OpenGL教程-第十二

 用OpenInventor实现NeHe OpenGL教程-第十二         NeHe这节主要讨论OpenGL的显示列表功能。OpenGL的显示列表是加速OpenGL性能的一种重要的手段。但在OpenInventor中,我们根本就不需要关心是否使用显示列表,因为OpenInventor内部有缓存功能,而这个缓存功能就是使用显示列表来实现的。所以我们只需要实现程序逻辑

RobinHao的专栏 1912

OpenInventor实现NeHe OpenGL教程-第十六

 用OpenInventor实现NeHe OpenGL教程-第十六          这节我们将在前面述的第七节程的基础上,对场景增加上“雾 ”的效果。在OpenInventor中添加“雾 ”效果还是很容易的。OpenInventor提供了一个叫做SoEnvironment的节点类,通过这个节点类,我们就可以实现“雾 ”的效果。        下面的代码是在第

RobinHao的专栏 1492

OpenInventor实现NeHe OpenGL教程-第二十九

 用OpenInventor实现NeHe OpenGL教程-第二十九         NeHe教程在这节中介绍了如何把一块纹理贴到另一块纹理上(即多重纹理)。这节的内容不是很难,主要是如何读取raw数据格式文件,如何计算图像的透明度等。 OpenInventor对多重纹理直接提供支持,所以我们也可以利用多重纹理来实现相同的效果。具体的代码见BuildCube2

RobinHao的专栏 3505

OpenInventor实现NeHe OpenGL教程-第四十

<br />用OpenInventor实现NeHe OpenGL教程-第四十  NeHe教程在这节向我们介绍了如何模拟一根绳子的运动状态,简单的说,就是把绳子先离散化,把它想象成一个个紧密排列的点,每两个点之间有弹性约束。其实这就是简单的有限元思想。这节的内容和上节一样,主要是和物理、数学有关系,和图形图像的关系不大。我们的代码基本上和NeHe代码的原理类似,这里就不再详细说明了。  本的完整代码 下载。(VC 2003 + Coin2.5)  后记OpenInventor是一种基于OpenG

Augusdi的专栏 1439
上一篇: 用OpenInventor实现的NeHe OpenGL教程-第四十七课
RobinHao
博客等级 码龄25年 234粉丝 55原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值