
Open Inventor
文章平均质量分 85
Augusdi
让时间验证一切,让时间验证我。感谢大家的无私帮助,我愿以同样的态度回馈我热情的朋友,用我们的热忱开创美好未来!
展开
-
运用Open InventorTM 进行面向对象的3D图形开发
<br /> <br /> The Inventor Mentor这本书主要是面向图形编程人员和应用程序开发人员,讲解面向对象的3D开发包-Open Inventor。Open Inventor 是一个用于开发交互式3D程序的图形库。虽然它本身是使用C++编写的,但Open Inventor也可以在C语言中使用。<br /> <br /> 为了简单起见,本书所带的例子代码都是使用C++编写的。所有的C++例子代码,包括等同的C例子代码,都可以从网络中下载得到。如果读者是一个C++新手转载 2010-07-28 15:58:00 · 1485 阅读 · 0 评论 -
用OpenInventor实现的NeHe OpenGL教程-第一课
用OpenInventor实现的NeHe OpenGL教程-第一课<br /> <br /> OpenInventor是一种基于OpenGL的面向对象的三维图形软件开发包。使用这个开发包,程序员可以快速、简洁地开发出各种类型的交互式三维图形软件。这里不对OpenInventor做详细的介绍,读者如果感兴趣,可以阅读我的blog中的这篇文章《OpenInventor 简介》。<br /> <br />NeHe教程是目前针对初学者来说最好的OpenGL教程,它可以带领读者由浅入深,循序渐进地掌握Op转载 2010-07-28 16:34:00 · 1937 阅读 · 0 评论 -
用OpenInventor实现的NeHe OpenGL教程-第十一课
用OpenInventor实现的NeHe OpenGL教程-第十一课 这节课我们将创建一个以正弦波方式飘动的旗帜。读者将看到实现这种效果并不像想象中那样的困难。至少说使用OpenInventor来实现还是比较容易的。^_^ 。 和前面的程序一样,我们在程序开始的部分定义了一些全局变量,这些变量的作用和NeHe教程中定义的变量有相同的作用。SoCoordinate3* g_FlagCoords = NULL; //旗帜的顶点坐标节点SoRotation*转载 2010-07-29 09:02:00 · 1422 阅读 · 0 评论 -
用OpenInventor实现的NeHe OpenGL教程-第十四课
用OpenInventor实现的NeHe OpenGL教程-第十四课<br /> <br /> <br /> <br />NeHe这节课主要讨论如何使用OpenGL显示3D轮廓文字。OpenGL显示3D文字是通过wglUseFontOutlines函数创建了一系列的显示列表来实现的。其使用方法和第十三节课程类似。在OpenInventor中提供了SoText3节点,使用方法和SoText2节点相同。<br /> <br /> 在程序开始的部分我们定义了一些变量。<br />SoTex转载 2010-07-29 09:03:00 · 1559 阅读 · 0 评论 -
用OpenInventor实现的NeHe OpenGL教程-第十七课
用OpenInventor实现的NeHe OpenGL教程-第十七课<br /> <br /> <br /> <br />这节课我们将讨论使用纹理贴图的技术来显示文字。使用这种技术显示文字的好处在于程序的效果在任何机器上都是相同的。而我们前面讨论的显示文字的方法都是依赖于当前系统中所包含的字体,所以前面讨论的技术在不同的机器上有可能会有不同的显示效果。<br /> <br />使用纹理贴图来显示文字的原理很简单,首先需要制作一个包含所有需要显示的文字的图片,将这个图片作为纹理加载到内存中,然后根转载 2010-07-29 09:08:00 · 1660 阅读 · 0 评论 -
用OpenInventor实现的NeHe OpenGL教程-第十九课
用OpenInventor实现的NeHe OpenGL教程-第十九课<br /> <br /> <br /> <br />这节课我们将讨论怎样使用OpenInventor实现一个简单的粒子系统。我们在NeHe教程中可以看到,一个简单的粒子系统实现起来不像想象中那样的困难。只要能计算好一个粒子的当前状态(速度,加速度,颜色),就很容易完成一个粒子系统的效果。<br /> <br /> NeHe教程中使用三角形带来显示每个粒子(GL_TRIANGLE_STRIP),OpenInvento转载 2010-07-29 09:11:00 · 1583 阅读 · 0 评论 -
用OpenInventor实现的NeHe OpenGL教程-第二十一课
用OpenInventor实现的NeHe OpenGL教程-第二十二课这节课我们将讨论凹凸纹理技术。使用凹凸纹理可以让物体表面更有质感。正如NeHe教程中所说的,这是一节高级课程,请确信你对基本知识已经非常了解。我们对NeHe教程阅读后可以发现,利用OpenGL显示凹凸纹理是比较困难的。首先需要使用OpenGL的多重纹理扩展,其次还要了解凹凸纹理的计算方法。我估计很多程序员都搞不清楚凹凸纹理的计算方法(包括我自己在内。呜呜!尤其是“切空间”的含义是什么,如果那位读者明白的话,请不吝赐教。^_^)。不过,如果转载 2010-07-29 09:15:00 · 1379 阅读 · 0 评论 -
用OpenInventor实现的NeHe OpenGL教程-第二十三课
用OpenInventor实现的NeHe OpenGL教程-第二十三课<br /> <br /> <br />这节课我们将学习使用环境纹理映射。这种映射方式可以让物体表面看上去像镜子一样反射周围的环境。这节课的代码是在前面第十八节课程的基础上修改的。阅读NeHe教程我们可以发现,利用OpenGL显示环境纹理是比较容易的,同样在OpenInventor中使用环境纹理也是非常的简单。我们只需要创建一个SoTextureCoordinateEnvironment节点就可以了。<br /> <br />转载 2010-07-29 09:16:00 · 1369 阅读 · 0 评论 -
用OpenInventor实现的NeHe OpenGL教程-第二十四课
用OpenInventor实现的NeHe OpenGL教程-第二十四课 NeHe教程在这节课中向我们介绍了如何读取显卡支持的OpenGL的扩展,如何使用Targa(TGA)图像文件作为纹理,以及如何利用OpenGL的剪裁区域来滚动屏幕文字。 在OpenInventor中没有相关的函数来获取OpenGL的扩展信息,我们只能通过直接调用OpenGL来获得这些信息。OpenInventor的纹理节点自动支持使用Targa(TGA)图像文件作为纹理,所以我们不必像NeHe教程中那样转载 2010-07-29 09:18:00 · 1384 阅读 · 0 评论 -
用OpenInventor实现的NeHe OpenGL教程-第二十九课
用OpenInventor实现的NeHe OpenGL教程-第二十九课<br /> <br /> <br /> <br />NeHe教程在这节课中介绍了如何把一块纹理贴到另一块纹理上(即多重纹理)。这节课的内容不是很难,主要是如何读取raw数据格式文件,如何计算图像的透明度等。<br /> <br />OpenInventor对多重纹理直接提供支持,所以我们也可以利用多重纹理来实现相同的效果。具体的代码见BuildCube2<br /> <br /> <br /> 下面定义的是raw转载 2010-07-29 09:27:00 · 1507 阅读 · 0 评论 -
用OpenInventor实现的NeHe OpenGL教程-第三十二课
用OpenInventor实现的NeHe OpenGL教程-第三十二课 <br /> <br /> <br />NeHe教程在这节课展示的是一个游戏程序,里面包括的技术有OpenGL拾取, Alpha混合, Alpha测试, 排序。这是目前位置NeHe教程中代码量最大的一节课了。<br /> <br />这节课我们不打算使用OpenGL的方法来拾取物体,我们将利用OpenInventor提供给我们的更加方便的拾取功能来完成这个同样的游戏程序。OpenInventor比OpenGL最大的优势就在于交互式操作转载 2010-07-29 09:30:00 · 1400 阅读 · 0 评论 -
用OpenInventor实现的NeHe OpenGL教程-第三十三课
<br /> 用OpenInventor实现的NeHe OpenGL教程-第三十三课 NeHe教程在这节课向我们介绍了如何加载压缩和非压缩类型的TGA文件。OpenInventor已经直接支持将TGA文件(压缩和非压缩类型)作为纹理文件,所以我们不必像NeHe教程那样分析TGA文件的数据格式。 下面的函数用来加载非压缩类型的TGA文件作为纹理SoSeparator* BuildpUncompSep(void){ SoSeparator *pUncompSep = new SoSeparat转载 2010-07-29 09:30:00 · 1322 阅读 · 0 评论 -
用OpenInventor实现的NeHe OpenGL教程-第三十七课
<br />用OpenInventor实现的NeHe OpenGL教程-第三十七课 NeHe教程在这节课向我们展示了卡通效果。卡通效果就是在物体轮廓边上加少量的颜色。可以使用OpenGL的一维纹理映射功能来实现此效果。这里需要注意的是,OpenInventor没有提供一维纹理,但我们可以使用2维纹理来模拟,我们只需要将2维纹理的行数设置为1就可以了,具体请阅读代码。其他的代码基本上和NeHe代码的原理类似,这里就不再详细说明了。 本课的完整代码 下载。(VC 2003 + Coin2.5) 后转载 2010-07-29 09:34:00 · 1310 阅读 · 0 评论 -
用OpenInventor实现的NeHe OpenGL教程-第三十八课
<br />用OpenInventor实现的NeHe OpenGL教程-第三十八课 NeHe教程在这节课向我们介绍了如何从资源文件中载入图像。这节课的内容比较简单,只需要注意的是,Bitmap文件中每个像素颜色保存的顺序是BGR,我们应该将其转换成RGB,以便适应OpenInventor纹理节点的要求。其他的代码基本上和NeHe代码的原理类似,这里就不再详细说明了。 本课的完整代码 下载。(VC 2003 + Coin2.5) 后记OpenInventor是一种基于OpenGL的面向对象的三维转载 2010-07-29 09:34:00 · 1341 阅读 · 0 评论 -
用OpenInventor实现的NeHe OpenGL教程-第四十二课
<br />用OpenInventor实现的NeHe OpenGL教程-第四十二课 NeHe教程在这节课向我们介绍了多重视口效果。它是通过向四个视口渲染四次的方式来实现这样的效果的。在OpenInventor中可以允许创建多个Viewer,因此我们通过创建四个SoWinExaminerViewer,就可以简单地实现相同的效果了。至于创建迷宫的代码,和我们的讨论没有太大的关系,我们是直接拷贝NeHe的代码,这里就不在详细说明了。 本课的完整代码 下载。(VC 2003 + Coin2.5) 后记转载 2010-07-29 09:36:00 · 1626 阅读 · 0 评论 -
用OpenInventor实现的NeHe OpenGL教程-第四十三课
<br />用OpenInventor实现的NeHe OpenGL教程-第四十三课 NeHe教程在这节课向我们介绍了如何使用FreeType库创建反走样字体的技术。反走样字体可以让文本看上去更漂亮。“魔兽世界”中使用的字体库就是FreeType库。直接使用FreeType库还是比较麻烦的。但对于使用Coin3D的用户来说,有一个非常好的消息,Coin3D内部自动支持FreeType库,只要将FreeType.dll拷贝到程序所在目录下,Coin就会自动加载FreeType,很酷吧 ^_^。 在C转载 2010-07-29 09:37:00 · 1798 阅读 · 0 评论 -
用OpenInventor实现的NeHe OpenGL教程-第四十四课
<br />用OpenInventor实现的NeHe OpenGL教程-第四十四课 NeHe教程在这节课向我们介绍了3D光晕的技术。当摄像机镜头对准太阳的时候就会出现这种效果,这种技术经常用在游戏场景中。为了完成这种效果,我们需要一些数学知识,用来检测某个点或球是否在当前的视景体内。我们还需要一些纹理作为我们的光晕效果。 程序中关键的函数有:BOOL glCamera::SphereInFrustum(SbVec3f p, float Radius){ int i; for(i转载 2010-07-29 09:37:00 · 1878 阅读 · 0 评论 -
用OpenInventor实现的NeHe OpenGL教程-第四十七课
<br />用OpenInventor实现的NeHe OpenGL教程-第四十七课 NeHe教程在这节课向我们介绍了Cg编程技术。Gg是nVidio公司面向GPU的语言,类似的语言还有微软的HLSL,OpenGL的GLSL,ATI的shaderMonker。使用着色器(Shader)的最大的好处就是把CPU的一些工作交给了GPU。 Coin支持OpenGL的GLSL着色器,同时也支持ARB Shaders和Cg Shaders。但目前对OpenGL的GLSL支持的最好。读者可以阅读文档( htt转载 2010-07-29 09:38:00 · 1784 阅读 · 0 评论 -
如何在MFC程序中使用Open Inventor
如何在MFC程序中使用Open Inventor 本文将介绍如何在MFC程序中使用Open Inventor(以下简称OIV)开发库。文中将使用VC 2003作为开发环境,使用SIM公司(www.coin3d.org)公司提供的Coin3D OIV作为Open Inventor开发库。关于OIV在Visual C++中的设置,请阅读网站 “Open Inventor-Coin3D开发环境” 中的内容。 1.创建工程首先启动VC 2003,使用MFC Wizards创建一个MDI 应用程序(本文转载 2010-07-28 15:50:00 · 1478 阅读 · 0 评论 -
The Inventor Mentor-第一章 综述
<br />第一章 综述<br /> <br />本章目标<br /> 在阅读完本章节后,我们将可以做下列事情:<br /> <br />l 认识组成Open Inventor工具包的几个关键组件。<br />l 理解Open Inventor 与 OpenGL的关系。<br />l 描述扩展Open Inventor 的几种方法。<br /> <br /> 本章将概要地阐述组成Open Inventor的几个关键组件,并将简要描述如何转载 2010-07-28 16:00:00 · 1526 阅读 · 1 评论 -
用OpenInventor实现的NeHe OpenGL教程-第二课
用OpenInventor实现的NeHe OpenGL教程-第二课<br /> <br /> 这节课将在第一课的基础上添加一个三角形和一个四边形。本节新增加一个函数BuildScene,这个函数将在场景中创建一个三角形和一个四边形。<br /> <br /> 在函数BuildScene中,首先创建一个SoTranslation节点对象,这个节点的作用是平移当前坐标系。OpenInventor和OpenGL采用相同的右手坐标系,X坐标轴从左至右,Y坐标轴从下至上,Z坐标轴从里至外。屏幕转载 2010-07-28 16:50:00 · 1597 阅读 · 0 评论 -
用OpenInventor实现的NeHe OpenGL教程-第四课
用OpenInventor实现的NeHe OpenGL教程-第四课<br /> <br /> 这节课将在第三课的基础上讨论如何旋转物体。我们希望三角形沿Y轴旋转,四边形沿着X轴旋转。我们只需要在上节课的基础上增加几行代码就可以了。<br /> <br /> 和上节的代码不同,我们在函数BuildScene中,要先创建一个SoLightModel节点,这个节点的作用是设置当前光照模型,我们将当前的光照模型设置为BASE_COLOR。这样做的原因需要稍微详细说明一下。OpenInvent转载 2010-07-28 17:07:00 · 1491 阅读 · 0 评论 -
用OpenInventor实现的NeHe OpenGL教程-第六课
用OpenInventor实现的NeHe OpenGL教程-第六课 这节课将讨论如何在OpenInventor中使用纹理。我们将会加载一个纹理文件,然后将纹理映射到立方体的六个面上。 纹理是创建具有真实感场景的基础,因此在3D编程中,纹理是非常重要的。OpenInventor提供了SoTexture2纹理节点。通过这个节点即可以从内存中加载纹理数据,也可以直接加载纹理文件。读者将可以看到在OpenInventor中使用纹理是一件很简单的事情。在《 The Inventor Me转载 2010-07-28 17:21:00 · 1674 阅读 · 0 评论 -
用OpenInventor实现的NeHe OpenGL教程-第七课
用OpenInventor实现的NeHe OpenGL教程-第七课 这节课我们将讨论如何在OpenInventor中使用键盘和灯光。我们将会学习指定三种纹理过滤方式,学习如何使用键盘来移动场景中的立方体。 下面的代码是在第六节课程的基础上增加或修改的代码。先定义一些全局变量。SoWinExaminerViewer* g_pOivView = NULL; //观察器变量SoSeparator* g_pOivSceneRoot =转载 2010-07-28 17:28:00 · 1336 阅读 · 0 评论 -
用OpenInventor实现的NeHe OpenGL教程-第十课
用OpenInventor实现的NeHe OpenGL教程-第十课 这节课我们将加载一个3D场景,并在这个场景中做自由漫游。读者将看到加载3D场景不是一件很难的事情,难点是3D场景的数据组织。不过这些是美工的事情,和我们程序员关系不大 ^_^ 。 在程序开始的部分我们新定义了一些变量,这些变量的作用和NeHe教程中定义的变量有相同的作用。SoTexture2* g_pTexture = NULL; //场景的纹理对象SoComplexity*转载 2010-07-29 08:54:00 · 1751 阅读 · 0 评论 -
用OpenInventor实现的NeHe OpenGL教程-第十二课
用OpenInventor实现的NeHe OpenGL教程-第十二课 NeHe这节课主要讨论OpenGL的显示列表功能。OpenGL的显示列表是加速OpenGL性能的一种重要的手段。但在OpenInventor中,我们根本就不需要关心是否使用显示列表,因为OpenInventor内部有缓存功能,而这个缓存功能就是使用显示列表来实现的。所以我们只需要实现程序逻辑功能,至于程序性能方面的事情,由OpenInventor内部处理就可以了。 在程序开始的部分我们定义了一些变量。SoRo转载 2010-07-29 09:02:00 · 1476 阅读 · 0 评论 -
用OpenInventor实现的NeHe OpenGL教程-第十六课
用OpenInventor实现的NeHe OpenGL教程-第十六课<br /> <br /> <br /> <br />这节课我们将在前面讲述的第七节课程的基础上,对场景增加上“雾 ”的效果。在OpenInventor中添加“雾 ”效果还是很容易的。OpenInventor提供了一个叫做SoEnvironment的节点类,通过这个节点类,我们就可以实现“雾 ”的效果。<br /> <br /> 下面的代码是在第七节课程的基础上增加或修改的代码。先定义一些全局变量。<br />SoE转载 2010-07-29 09:07:00 · 1322 阅读 · 0 评论 -
用OpenInventor实现的NeHe OpenGL教程-第二十七课
用OpenInventor实现的NeHe OpenGL教程-第二十七课<br /> <br /> <br /> <br />NeHe教程在这节课中向我们介绍了如何在场景中创建阴影效果,这是一个高级的主题,请确信你已经熟练的掌握了基本的OpenGL命令,并熟悉蒙板缓存。<br /> <br />NeHe教程中介绍的阴影效果俗称蒙板阴影。这种计算阴影的技术最大的优点是速度比较快,不需要什么高级的显卡就可以达到非常好的效果。而且阴影的效果和场景中的物体数目、复杂度基本上没有关系(为了验证这点,我稍微修转载 2010-07-29 09:25:00 · 1397 阅读 · 0 评论 -
用OpenInventor实现的NeHe OpenGL教程-第二十八课
用OpenInventor实现的NeHe OpenGL教程-第二十八课<br /> <br /> <br /> <br />NeHe教程在这节课中向我们介绍了贝塞尔曲面,贝塞尔曲面是一种可以只使用很少的参数就可以描述出复杂曲面的一种数学工具。对于使用OpenInventor的程序员来说,创建贝塞尔曲面是非常容易的事情,OpenInventor已经对贝塞尔曲面,Nurbs曲面等都做了相应的支持。<br /> <br /> <br />首先定义一些程序中使用的全局变量:<br />SoRotatio转载 2010-07-29 09:26:00 · 1650 阅读 · 0 评论 -
用OpenInventor实现的NeHe OpenGL教程-第三十五课
<br />用OpenInventor实现的NeHe OpenGL教程-第三十五课 这是一节令人激动的课程。NeHe教程在这节课向我们介绍了如何在OpenGL中播放AVI文件。说来惭愧,作为一名程序员,多年来看过无数AVI格式的A片(American片,不要想歪了。^_^),但却从来没有想过如何解码AVI文件。在这个教程中我们终于有机会了解如何操作AVI文件了。当然我们不是想开发一款类似“暴风影音”那样的软件,我们只是利用微软提供的流媒体接口来操作AVI文件。 其实OpenInventor已经支持转载 2010-07-29 09:33:00 · 1406 阅读 · 0 评论 -
用OpenInventor实现的NeHe OpenGL教程-第三十九课
<br /> 用OpenInventor实现的NeHe OpenGL教程-第三十九课 NeHe教程在这节课向我们介绍了如何进行物理模拟计算。这节课的内容主要是和物理、数学有关系,和图形图像的关系不大。我们的代码基本上和NeHe代码的原理类似,这里就不再详细说明了。 本课的完整代码 下载。(VC 2003 + Coin2.5) 后记OpenInventor是一种基于OpenGL的面向对象的三维图形软件开发包。使用这个开发包,程序员可以快速、简洁地开发出各种类型的交互式三维图形软件。这里不对Op转载 2010-07-29 09:35:00 · 1331 阅读 · 0 评论 -
Open Inventor 简介
Open Inventor 简介<br /> <br />简介<br />Open Inventor(以下简称OIV)是SGI公司开发的基于OpenGL的面向对象三维图形软件开发包。使用OIV开发包,程序员可以快速、简洁地开发出各种类型的交互式三维图形软件。OIV具有平台无关性,它可以在Microsoft Windows、Unix、Linux等多种操作系统中使用。OIV允许使用C、C++、Java、DotNet多种编程语言进行程序开发。经过多年的发展,OIV已经基本上成为面向对象的3D图形开发“事实上”的工转载 2010-07-28 15:24:00 · 2297 阅读 · 0 评论 -
Open Inventor-Coin3D开发环境
Open Inventor-Coin3D开发环境 简介目前世界上比较成熟的Open Inventor(以下简称OIV)开发包有三个,它们分别由SGI(http://www.sgi.com),TGS(http://www.tgs.com)和SIM(http://www.coin3d.org)公司开发的。SGI是最早提出并开发OIV的公司。但SGI的OIV主要用在UNIX操作系统下,没有提供对Microsoft Windows操作系统的支持。TGS公司是最早将OIV由Unix系统移植到Microso转载 2010-07-28 15:45:00 · 1933 阅读 · 1 评论 -
用OpenInventor实现的NeHe OpenGL教程-第三课
用OpenInventor实现的NeHe OpenGL教程-第三课<br /> <br /> 这节课将在第二课的基础上讨论如何使用颜色。与OpenGL类似,OpenInventor也提供了两种色彩模式。我们将对四边形只使用一种颜色显示,对三角形则要对每个顶点设置一个颜色,对于三角形中间点的颜色,OpenInventor将采用平滑过渡的方式来自己设置。<br /> <br /> 和上节代码一样,我们在函数BuildScene中,先创建一个SoTranslation节点对象来平移坐标系。转载 2010-07-28 17:01:00 · 1575 阅读 · 0 评论 -
用OpenInventor实现的NeHe OpenGL教程-第五课
用OpenInventor实现的NeHe OpenGL教程-第五课 这节课将在第四课的基础上进行扩展,创建3D物体。我们将三角形变为3D的三棱锥形,把四边形变为立方体。同时三棱锥沿Y轴旋转,四边形沿着(1,1,1)方向旋转。 和上节的代码一样,我们在函数BuildScene中,要先创建一个SoLightModel节点,将当前的光照模型设置为BASE_COLOR。 void BuildScene(void){ SoLightModel *pSoLightModel = n转载 2010-07-28 17:14:00 · 1389 阅读 · 0 评论 -
用OpenInventor实现的NeHe OpenGL教程-第八课
用OpenInventor实现的NeHe OpenGL教程-第八课 这节课我们将在第七节课的基础上增加纹理透明的效果。在OpenGL中,透明效果是通过“融合”(Blend)方式实现的。在NeHe教程中已经对融合的原理做了详细的讨论。这里我们就不再详细讨论了。 我们将只讨论在第七节课基础上增加的新代码。在程序开始的部分我们新定义了一个材质节点变量。通过这个变量我们可以定义物体的透明度。SoMaterial* g_pCubeMaterial = NULL; 在函数转载 2010-07-29 08:33:00 · 1633 阅读 · 1 评论 -
用OpenInventor实现的NeHe OpenGL教程-第九课
用OpenInventor实现的NeHe OpenGL教程-第九课 这节课我们将讨论如何在3D空间中移动物体,物体之间如何以透明方式显示。这节课我们还将首次讨论如何在OpenInventor中调用OpenGL函数。 在程序开始的部分我们新定义了一些变量,这些变量的作用和NeHe教程中定义的变量有相同的作用。SoTranslation* g_pZoomTrans = NULL; //用于放大/缩小场景SoRotation*转载 2010-07-29 08:40:00 · 1651 阅读 · 0 评论 -
用OpenInventor实现的NeHe OpenGL教程-第十三课
用OpenInventor实现的NeHe OpenGL教程-第十三课<br /> <br /> <br /> <br />NeHe这节课主要讨论如何使用OpenGL显示2D文字。OpenGL显示2D文字是通过wglUseFontBitmaps函数创建了一系列的显示列表来实现的。通鿇阅读NeHe教程,读者应该能感觉到在OpenGL中显示文字还是比较麻烦的。在OpenInventor中显示2D文字相对来说比转载 2010-07-29 09:03:00 · 1354 阅读 · 0 评论 -
用OpenInventor实现的NeHe OpenGL教程-第十五课
用OpenInventor实现的NeHe OpenGL教程-第十五课<br /> <br /> <br /> <br />NeHe这节课主要讨论OpenGL怎样给文字赋予纹理贴图。OpenGL使用glTexGen函数给文字自动生成纹理坐标。在OpenInventor中,给文字贴上纹理和给物体贴纹理的方法是一样的。只需要在文字节点前面插入一个纹理节点就可以了。而且我们可以看到,NeHe的代码只适合在Windows系统下。而我们的代码可以兼容多种操作系统。<br /> <br /> 在程转载 2010-07-29 09:04:00 · 1294 阅读 · 0 评论 -
用OpenInventor实现的NeHe OpenGL教程-第十八课
用OpenInventor实现的NeHe OpenGL教程-第十八课<br /> <br /> <br /> <br />这节课我们将在前面讲述的第七节课程的基础上,显示球体,圆柱体,圆锥体等二次几何体。<br /> <br /> 下面的代码是在第七节课程的基础上增加或修改的代码。先定义一些全局变量。<br />SoSwitch* g_pSceneSwitch = NULL;//用来切换不同的二次几何体<br /> <br /> 和以前的代码一样转载 2010-07-29 09:10:00 · 1534 阅读 · 0 评论