自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(79)
  • 收藏
  • 关注

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

用OpenInventor实现的NeHe OpenGL教程-第十三课                                                        NeHe这节课主要讨论如何使用OpenGL显示2D文字。OpenGL显示2D文字是通过wglUseFontBitmaps函数创建了一系列的显示列表来实现的。通鿇阅读NeHe教程,读者应该能感觉到在Open

2007-12-30 15:09:00 1476 1

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

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

2007-12-14 15:26:00 1783

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

 用OpenInventor实现的NeHe OpenGL教程-第十一课         这节课我们将创建一个以正弦波方式飘动的旗帜。读者将看到实现这种效果并不像想象中那样的困难。至少说使用OpenInventor来实现还是比较容易的。^_^ 。        和前面的程序一样,我们在程序开始的部分定义了一些全局变量,这些变量的作用和NeHe教程中定义的变量有相同的作用。

2007-12-11 16:56:00 1809 1

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

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

2007-12-10 16:20:00 2331

原创 用OpenInventor实现的NeHe OpenGL教程-第九课

  用OpenInventor实现的NeHe OpenGL教程-第九课         这节课我们将讨论如何在3D空间中移动物体,物体之间如何以透明方式显示。这节课我们还将首次讨论如何在OpenInventor中调用OpenGL函数。        在程序开始的部分我们新定义了一些变量,这些变量的作用和NeHe教程中定义的变量有相同的作用。SoTranslation

2007-12-07 17:38:00 2831 10

原创 用OpenInventor实现的NeHe OpenGL教程-第八课

  用OpenInventor实现的NeHe OpenGL教程-第八课         这节课我们将在第七节课的基础上增加纹理透明的效果。在OpenGL中,透明效果是通过“融合”(Blend)方式实现的。在NeHe教程中已经对融合的原理做了详细的讨论。这里我们就不再详细讨论了。        我们将只讨论在第七节课基础上增加的新代码。在程序开始的部分我们新定义了一个材质

2007-12-03 17:30:00 1916 4

原创 用OpenInventor实现的NeHe OpenGL教程-第七课

 用OpenInventor实现的NeHe OpenGL教程-第七课         这节课我们将讨论如何在OpenInventor中使用键盘和灯光。我们将会学习指定三种纹理过滤方式,学习如何使用键盘来移动场景中的立方体。        下面的代码是在第六节课程的基础上增加或修改的代码。先定义一些全局变量。SoWinExaminerViewer*   g_pOivV

2007-11-30 15:58:00 2120 3

原创 用OpenInventor实现的NeHe OpenGL教程-第六课

 用OpenInventor实现的NeHe OpenGL教程-第六课         这节课将讨论如何在OpenInventor中使用纹理。我们将会加载一个纹理文件,然后将纹理映射到立方体的六个面上。        纹理是创建具有真实感场景的基础,因此在3D编程中,纹理是非常重要的。OpenInventor提供了SoTexture2纹理节点。通过这个节点即可以从内存中加

2007-11-29 14:31:00 2036

原创 用OpenInventor实现的NeHe OpenGL教程-第五课

 用OpenInventor实现的NeHe OpenGL教程-第五课         这节课将在第四课的基础上进行扩展,创建3D物体。我们将三角形变为3D的三棱锥形,把四边形变为立方体。同时三棱锥沿Y轴旋转,四边形沿着(1,1,1)方向旋转。        和上节的代码一样,我们在函数BuildScene中,要先创建一个SoLightModel节点,将当前的光照模型设置

2007-11-28 14:27:00 2286 1

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

用OpenInventor实现的NeHe OpenGL教程-第四课        这节课将在第三课的基础上讨论如何旋转物体。我们希望三角形沿Y轴旋转,四边形沿着X轴旋转。我们只需要在上节课的基础上增加几行代码就可以了。        和上节的代码不同,我们在函数BuildScene中,要先创建一个SoLightModel节点,这个节点的作用是设置当前光照模型,我们将当前的光照模型设

2007-11-27 17:14:00 2193 1

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

用OpenInventor实现的NeHe OpenGL教程-第三课        这节课将在第二课的基础上讨论如何使用颜色。与OpenGL类似,OpenInventor也提供了两种色彩模式。我们将对四边形只使用一种颜色显示,对三角形则要对每个顶点设置一个颜色,对于三角形中间点的颜色,OpenInventor将采用平滑过渡的方式来自己设置。        和上节代码一样,我们在函数B

2007-11-26 16:13:00 2319 2

原创 用OpenInventor实现的NeHe OpenGL教程-第二课

用OpenInventor实现的NeHe OpenGL教程-第二课        这节课将在第一课的基础上添加一个三角形和一个四边形。本节新增加一个函数BuildScene,这个函数将在场景中创建一个三角形和一个四边形。        在函数BuildScene中,首先创建一个SoTranslation节点对象,这个节点的作用是平移当前坐标系。OpenInventor和OpenGL

2007-11-26 15:49:00 3110 1

原创 用OpenInventor实现的NeHe OpenGL教程-第一课

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

2007-11-26 15:13:00 5483 6

翻译 The Inventor Mentor-附录C:错误处理

 附录C:错误处理     Inventor的调试版本和发行版本都提供了基本的错误处理机制。如图C-1所示,有三个类是从基类SoError派生出来的。在读Inventor格式文件时有可能发生读 错误。如果应用程序运行时缺少内存资源,就有可能发生内存访问 错误。调试 错误是由一个编程错误而产生。绝大部分的调试错误只在Inventor的调试版本中产生,发行版本一般不会做检查。一个运行正确的

2007-09-29 18:21:00 1649 3

翻译 The Inventor Mentor-附录B:C API入门

附录B:C API入门     如果读者是使用C语言进行开发工作的,那么就有必要阅读本章节!如果读者不熟悉面向对象的编程方法,请首先阅读附录A,在附录A中介绍了一些C++特性,以及一些Open Inventor C语言接口的基础性概念。     尽管C与C++的语法是不同的,但在本书先前章节中所描述的概念仍然适用于Open Inventor的C实现库。如果读者已经读完本书的其它章节

2007-09-29 18:16:00 1659 1

翻译 The Inventor Mentor-附录A:C程序员面向对象编程入门

附录A:C程序员面向对象编程入门     Open Inventor是一个用于开发3D程序的面向对象工具包。它虽然是用C++开发的,但它同时还包含有C语言编程接口。这本书提到了许多像类、子类、和其它面向对象编程的概念。本书的所有例子都是用C++编写的。如果在阅读本书之前,读者已经对“类”和面向对象的编程方法有了一定的了解,那么您将可以从本书中学到尽可能多的东西(You will get t

2007-09-29 18:11:00 1624 1

翻译 The Inventor Mentor-第十七章 在Inventor中使用OpenGL

第十七章在Inventor中使用OpenGL 本章目标在阅读完本章节后,我们将有能力做下列事情: l         创建Inventor回调节点,在回调函数中调用OpenGL库函数。l         了解Inventor是如何使用和影响OpenGL的状态变量l         编写一个同时使用Inventor与OpenGL的程序,并在程序中使用SoGLRenderA

2007-09-28 13:22:00 2154 2

翻译 The Inventor Mentor-第十六章 Inventor组件库

第十六章Inventor组件库 本章目标在阅读完本章节后,我们将有能力做下列事情: l         构造、创建和使用SoXtRenderAreal         使用用于初始化和窗口管理的Inventor工具函数l         以叠加平面(overlay planes)的方式渲染一个简单的图形场景。l         构造和创建Inventor组件,并将这

2007-09-27 15:09:00 1923 1

翻译 The Inventor Mentor-第十五章 拖拽器和操作器

第十五章 拖拽器和操作器 本章目标在阅读完本章节后,我们将有能力做下列事情:    l         将拖拽器与场景中的域或引擎相连接。l         解释拖拽器与操作器之间的区别。l         能够编写当交互操作开始或结束时、鼠标移动时、或拖拽器的某个域值发生变化时被调用的回调函数。l         在应用程序中允许用户利用操作器直接编辑场景中的节点

2007-09-26 15:17:00 1889 3

翻译 The Inventor Mentor-第十四章 节点工具包

第十四章 节点工具包 本章目标在阅读完本章节后,我们将有能力做下列事情: l         在场景中使用节点工具包,选择工具包中所需要的部件,并可以设置这些部件。l         解释路径、全路径、以及节点工具包路径之间的差异。l         使用节点工具包来实现一个简单多级运动场景。     本章所要描述的节点工具包将提供一种创建Inventor节点分

2007-09-24 13:57:00 1833 5

翻译 The Inventor Mentor-第十三章 引擎

第十三章 引擎 本章目标在阅读完本章节后,我们将有能力做下列事情: l         实现场景中域与域之间的连接l         在数据库中创建并使用全局域。l         实现引擎与域以及引擎与引擎之间的连接。l         临时禁用引擎连接。l         创建一个简单的引擎网络(engine network)l         使用引擎

2007-09-21 17:19:00 1590 3

翻译 The Inventor Mentor-第十二章 传感器

第十二章 传感器 本章目标在阅读完本章节后,我们将有能力做下列事情: l         描述在场景中使用的不同类型的传感器,以及每种传感器的用法。l         理解传感器在延迟队列和定时队列中是如何被调度的,以及何时被处理的。l         可以为数据和定时传感器编写回调函数。l         设置延迟队列传感器(delay-queue sensor)

2007-09-20 14:29:00 1615 1

翻译 The Inventor Mentor-第十一章 文件格式

第十一章 文件格式 本章目标在阅读完本章后,我们将有能力做下列事情: l         以ASCII或二进制格式将场景数据输出到文件中。l         读取场景文件,将数据输入到Inventor数据库中。l         利用Inventor场景文件创建图形场景。l         从内存缓冲区中读入图形场景。     本章将描述Inventor的A

2007-09-17 16:06:00 2361 1

翻译 The Inventor Mentor-第十章 处理事件和选择器

第十章 处理事件和选择器(Selection) 本章目标在阅读完本章节后,我们将有能力做下列事情: l         解释Open Inventor如何处理输入事件。l         使用Inventor内建的选择策略,选择场景中的物体。l         创建事件回调节点,执行自定义选择策略。l         高亮选择(Highlight selected)

2007-09-15 12:05:00 1802 1

翻译 The Inventor Mentor-第九章 应用动作

第九章 应用动作(Actions) 本章目标在阅读完本章节后,我们将可以做下列事情: l         绘制、渲染整个或部分场景。l         打印输出场景。l         利用场景的渲染图创建纹理贴图l         计算物体的3D包围盒l         计算物体累积的几何变换矩阵及其逆矩阵l         将场景输出到文件中l   

2007-09-14 12:37:00 1635 1

翻译 The Inventor Mentor-第八章 曲线与曲面

第八章 曲线与曲面 本章目标在阅读完本章节后,我们将可以做下列事情: l         创建多种类型的曲线和曲面。l         NURBS曲面的区域剪裁。l         使用NURBS轮廓线为3D文本指定边缘斜面(beveled edges)。  (高级内容)    曲线与曲面提供了一种用于描述几何模型的数学方法,它代替了传统繁琐的制图术、金

2007-09-13 15:26:00 4025 1

翻译 The Inventor Mentor-第七章 纹理

第七章 纹理 本章目标在阅读完本章节后,我们将可以做下列事情: l         使用缺省纹理映射方式,将纹理“贴”到场景中的物体表面上。l         通过直接指定纹理坐标,将纹理“贴”到场景中的物体表面上。l         使用SoTextureCoordinatePlane和SoTextureCoordinateEnvironment这样的纹理坐标函数,将

2007-09-12 17:02:00 2359 3

翻译 The Inventor Mentor-第六章 文本

第六章 文本 本章目标在阅读完本章节后,我们将可以做下列事情: l         向场景增加2D文本。l         使用多种定制的外观(profiles)和字体,向场景增加3D文本。     本章将描述2D和3D文本的用法。Inventor的2D文本技术为我们注释场景图像提供了一种简单、快捷的方法。为了具有更好的修饰性和灵活性,Inventor可利用3D文本

2007-09-11 17:01:00 1956 1

翻译 The Inventor Mentor-第五章 形体,属性和绑定

第五章 形体,属性和绑定(Binding) 本章目标在阅读完本章节后,我们将可以做下列事情: l         在场景中熟练使用多种类型的几何物体,包括那些利用顶点坐标和法线来表示的比较复杂的几何物体。l         了解索引形体节点(indexed shapes)如何按照索引顺序来使用顶点坐标、材质、法向向量、和纹理数据。l         体验不同颜色、亮度、

2007-09-10 13:25:00 2383 2

翻译 The Inventor Mentor-第四章 照相机和灯光

第四章 照相机和灯光 本章目标在阅读完本章节后,我们将可以做下列事情: l         将不同类型的照相机增加到场景中。试验修改照相机的位置、方向、和视区映射(viewport mapping)。l         将不同类型的灯光加入到场景中,试验修改灯光的类型、强度、和颜色。     从第4章到第8章,我们将着重讨论几种不同类型的节点。之所以要首先讨论照相机

2007-09-07 11:13:00 2760 1

翻译 The Inventor Mentor-第三章 节点与组

第三章 节点与组 本章目标在阅读完本章节后,我们将可以做下列事情: l         利用形体、属性、组等节点创建图形场景。l         解释节点如何继承上层节点的属性数据。l         理解隔离节点(separator)的重要性。l         解释在场景中使用共享节点实例的优势。l         定义“路径”术语,并且解释路径存在的必要性

2007-09-06 15:46:00 2668 2

翻译 The Inventor Mentor-第二章 一个 Inventor例子

 第二章 一个 Inventor例子 本章目标在阅读完本章节后,我们将可以做以下事情: l         理解Inventor程序的基本结构。l         了解Inventor的使用约定。 本章将概述所有Inventor程序都带有的大约5%的代码。本章将首先讨论一个显示红色圆锥体的简短程序。之后,逐步扩展这个程序,分别演示如何使用某些重要的Invento

2007-09-05 18:03:00 3469 1

翻译 The Inventor Mentor-第一章 综述

第一章 综述 本章目标       在阅读完本章节后,我们将可以做下列事情: l         认识组成Open Inventor工具包的几个关键组件。l         理解Open Inventor 与 OpenGL的关系。l         描述扩展Open Inventor 的几种方法。        本章将概要地阐述组成Open Inventor的几

2007-09-05 12:59:00 4266 3

翻译 The Inventor Mentor-关于这本书

The Inventor Mentor运用Open InventorTM 进行面向对象的3D图形开发,第二版Josie WerneckeOpen Inventor 框架工作组郝伟 译  关于这本书        The Inventor Mentor 这本书主要是面向图形编程人员和应用程序开发人员,讲解面向对象的3D开发包-Open Inventor。Open

2007-09-05 12:53:00 5080 3

原创 The Inventor Mentor翻译计划

The Inventor Mentor翻译计划        目前关于Open Inventor(以下简称OIV)的开发资料不多,而且都是英文资料。主要的开发书籍有三本,其中最重要的是 Josie Wernecke编写的The Inventor Mentor。这本书是OIV的主要入门书籍。所有学习使用OIV的用户都应该首先阅读此书。通过阅读此书,用户可以循序渐进地掌握OIV的基本开发过程。

2007-09-05 10:03:00 3026

原创 如何在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-

2007-09-03 17:33:00 8626 13

原创 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操作系统下

2007-09-03 14:37:00 18680 17

原创 Open Inventor 简介

Open Inventor 简介 简介Open Inventor(以下简称OIV)是SGI公司开发的基于OpenGL的面向对象三维图形软件开发包。使用OIV开发包,程序员可以快速、简洁地开发出各种类型的交互式三维图形软件。OIV具有平台无关性,它可以在Microsoft Windows、Unix、Linux等多种操作系统中使用。OIV允许使用C、C++、Java、DotNet多种编程语

2007-08-31 12:36:00 21088 8

原创 将动态连接库注入到其他进程中的一种新方法

我们知道将动态连接库注入到其他进程中有很多种方法。最常见的方法是使用钩子函数(Hook),但是这种方法主要有两个缺点:第一如果某个进程没有加载User32.dll,那么Hook DLL将永远也不会被加载。第二Hook DLL加载的时机问题,只有在进程发出User32调用的时候, Hook DLL才有可能被加载。也就是说假设进程正在进行复杂的数值计算而没有时间进行消息调用的时候,Hook DLL是不

2001-09-16 12:49:00 4910 6

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除