robinhao
码龄21年
  • 232,377
    被访问
  • 55
    原创
  • 1,304,467
    排名
  • 204
    粉丝
关注
提问 私信
  • 加入CSDN时间: 2001-06-01
博客简介:

RobinHao的专栏

查看详细资料
个人成就
  • 获得25次点赞
  • 内容获得134次评论
  • 获得32次收藏
创作历程
  • 40篇
    2008年
  • 38篇
    2007年
  • 1篇
    2001年
TA的专栏
  • Open Inventor
    72篇
  • OpenCascade
    2篇
  • 其它
    5篇
兴趣领域 设置
  • 人工智能
    回归
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

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

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

用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支持
原创
发布博客 2008.07.13 ·
3918 阅读 ·
2 点赞 ·
0 评论

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

 NeHe教程在这节课向我们介绍了OpenGL的扩展(ARB_MULTISAMPLE)多重采样技术。利用这种技术可以实现全屏反走样。这样可以使图形看起来更美观。 OpenInventor自动支持反走样技术。关键的函数是SoWinRenderArea::setAntialiasin() ,它可以启动全屏反走样,OpenInventor是通过多次绘制同一个场景来实现反走样。 现
原创
发布博客 2008.07.06 ·
3292 阅读 ·
1 点赞 ·
0 评论

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

  NeHe教程在这节课向我们介绍了OpenGL新的扩展“顶点缓存”(VBO),这种技术可以直接操作显卡,直接把顶点数据放置在显卡中的高速缓存中,极大的增加了OpenGL的绘制速度。对于使用Coin3D的用户来说,有一个非常好的消息,Coin3D内部自动支持VBO。当我们使用SoIndexedFaceSet节点显示三角面时,Coin在内部缺省情况下就是使用VBO来显示的。因此VBO技术我们已经
原创
发布博客 2008.07.05 ·
3704 阅读 ·
0 点赞 ·
0 评论

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

 NeHe教程在这节课向我们介绍了3D光晕的技术。当摄像机镜头对准太阳的时候就会出现这种效果,这种技术经常用在游戏场景中。为了完成这种效果,我们需要一些数学知识,用来检测某个点或球是否在当前的视景体内。我们还需要一些纹理作为我们的光晕效果。 程序中关键的函数有:BOOL glCamera::SphereInFrustum(SbVec3f p, float Radius){
原创
发布博客 2008.06.29 ·
3373 阅读 ·
0 点赞 ·
0 评论

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

 NeHe教程在这节课向我们介绍了如何使用FreeType库创建反走样字体的技术。反走样字体可以让文本看上去更漂亮。“魔兽世界”中使用的字体库就是FreeType库。直接使用FreeType库还是比较麻烦的。但对于使用Coin3D的用户来说,有一个非常好的消息,Coin3D内部自动支持FreeType库,只要将FreeType.dll拷贝到程序所在目录下,Coin就会自动加载FreeTyp
原创
发布博客 2008.06.29 ·
3727 阅读 ·
0 点赞 ·
0 评论

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

  NeHe教程在这节课向我们介绍了多重视口效果。它是通过向四个视口渲染四次的方式来实现这样的效果的。在OpenInventor中可以允许创建多个Viewer,因此我们通过创建四个SoWinExaminerViewer,就可以简单地实现相同的效果了。至于创建迷宫的代码,和我们的讨论没有太大的关系,我们是直接拷贝NeHe的代码,这里就不在详细说明了。  本课的完整代码 下载。(VC
原创
发布博客 2008.06.15 ·
3251 阅读 ·
0 点赞 ·
0 评论

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

 NeHe教程在这节课向我们介绍了体积雾气特效,这是一种比较新的特效,你的显卡必须支持扩展"GL_EXT_fot_coord"函数。这个特效可以使人产生在雾中漫游的感觉。 OpenInventor目前还不支持体积雾气特效,虽然我们仍然可以按照前面课程的思路,通过创建SoCallback节点来直接调用OpenGL。但在这节课中我打算使用另外的一种方法来调用OpenGL命令。OpenInv
原创
发布博客 2008.06.10 ·
3233 阅读 ·
0 点赞 ·
0 评论

用OpenInventor实现的NeHe OpenGL教程-第三十九课

 NeHe教程在这节课向我们介绍了如何进行物理模拟计算。这节课的内容主要是和物理、数学有关系,和图形图像的关系不大。我们的代码基本上和NeHe代码的原理类似,这里就不再详细说明了。  本课的完整代码 下载。(VC 2003 + Coin2.5)  后记OpenInventor是一种基于OpenGL的面向对象的三维图形软件开发包。使用这个开发包,程序员可以快速
原创
发布博客 2008.05.25 ·
3083 阅读 ·
0 点赞 ·
0 评论

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

  NeHe教程在这节课向我们介绍了如何从资源文件中载入图像。这节课的内容比较简单,只需要注意的是,Bitmap文件中每个像素颜色保存的顺序是BGR,我们应该将其转换成RGB,以便适应OpenInventor纹理节点的要求。其他的代码基本上和NeHe代码的原理类似,这里就不再详细说明了。  本课的完整代码 下载。(VC 2003 + Coin2.5)  后记Open
原创
发布博客 2008.05.21 ·
2951 阅读 ·
0 点赞 ·
0 评论

用OpenInventor实现的NeHe OpenGL教程-第三十七课

  NeHe教程在这节课向我们展示了卡通效果。卡通效果就是在物体轮廓边上加少量的颜色。可以使用OpenGL的一维纹理映射功能来实现此效果。这里需要注意的是,OpenInventor没有提供一维纹理,但我们可以使用2维纹理来模拟,我们只需要将2维纹理的行数设置为1就可以了,具体请阅读代码。其他的代码基本上和NeHe代码的原理类似,这里就不再详细说明了。  本课的完整代码 下载。(VC
原创
发布博客 2008.05.18 ·
3020 阅读 ·
0 点赞 ·
0 评论

用OpenInventor实现的NeHe OpenGL教程-第三十六课

  NeHe教程在这节课向我们展示了放射模糊的效果。通过把渲染得图像作为纹理提取出来,在利用OpenGL本身自带的纹理过滤,就能实现这种效果。这是一节比较高级的课程。OpenInventor没有提供纹理过滤的功能,所以我们只能通过直接调用OpenGL来实现此课程。在程序中我们第一次使用了SoOffscreenRenderer节点,这个节点可以在内存中渲染某个场景,然后我们将内存中的场景图像作为
原创
发布博客 2008.05.17 ·
3299 阅读 ·
0 点赞 ·
0 评论

用OpenInventor实现的NeHe OpenGL教程-第三十五课

  这是一节令人激动的课程。NeHe教程在这节课向我们介绍了如何在OpenGL中播放AVI文件。说来惭愧,作为一名程序员,多年来看过无数AVI格式的A片(American片,不要想歪了。^_^),但却从来没有想过如何解码AVI文件。在这个教程中我们终于有机会了解如何操作AVI文件了。当然我们不是想开发一款类似“暴风影音”那样的软件,我们只是利用微软提供的流媒体接口来操作AVI文件。 其
原创
发布博客 2008.05.08 ·
3291 阅读 ·
0 点赞 ·
0 评论

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

  NeHe教程在这节课向我们介绍了如何从一个2D的灰度图创建地形。这节课的内容比较简单,只是从一个2D灰度图中读取灰度数据,然后将灰度数据转换成高度数据,最后将这些数据显示出来就可以了。  首先定义一些全局变量,这些变量的含义和NeHe教程完全一致#define       MAP_SIZE  1024   // Size Of Our .RAW Height Map (NE
原创
发布博客 2008.05.01 ·
3502 阅读 ·
0 点赞 ·
5 评论

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

  NeHe教程在这节课向我们介绍了如何加载压缩和非压缩类型的TGA文件。OpenInventor已经直接支持将TGA文件(压缩和非压缩类型)作为纹理文件,所以我们不必像NeHe教程那样分析TGA文件的数据格式。 下面的函数用来加载非压缩类型的TGA文件作为纹理SoSeparator* BuildpUncompSep(void){     SoSeparator *pU
原创
发布博客 2008.04.27 ·
3070 阅读 ·
0 点赞 ·
0 评论

用OpenInventor实现的NeHe OpenGL教程-第三十二课

   NeHe教程在这节课展示的是一个游戏程序,里面包括的技术有OpenGL拾取, Alpha混合, Alpha测试, 排序。这是目前位置NeHe教程中代码量最大的一节课了。 这节课我们不打算使用OpenGL的方法来拾取物体,我们将利用OpenInventor提供给我们的更加方便的拾取功能来完成这个同样的游戏程序。OpenInventor比OpenGL最大的优势就在于交互式操作
原创
发布博客 2008.04.25 ·
3235 阅读 ·
0 点赞 ·
1 评论

用OpenInventor实现的NeHe OpenGL教程-第三十一课

用OpenInventor实现的NeHe OpenGL教程-第三十一课         NeHe教程在这节课中介绍了如何加载Milkshape3D建模软件所设计的模型文件。这节课的内容与OpenGL、OpenInventor的关系不大,主要是分析Milkshape3D的模型文件格式。我们程序中读取Milkshape3D模型文件的代码都是拷贝自NeHe教程,唯一不同的就是如何根据模型
原创
发布博客 2008.04.24 ·
3001 阅读 ·
0 点赞 ·
0 评论

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

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

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

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

(转载)拓扑结构与TopoDS

转载:http://www.cppblog.com/mythma/archive/2008/01/24/41774.html拓扑结构与TopoDS 一、拓扑结构 参数空间 OpenCASCADE的拓扑结构是在参数空间描述实体的数据结构——用局部参数空间或受限参数空间描述。 Quote:参数空间(Parametric Space):设(X1,……,Xn)为来自总体X的样本,(
转载
发布博客 2008.04.16 ·
1490 阅读 ·
0 点赞 ·
0 评论
加载更多