随笔分类 -  计算机图形学

摘要:创建OpenGL模型过程:OPENGL坐标变换很有特点,为了简单描述先定义2个坐标系:(1)世界坐标系:无论如何变换,世界坐标系都不动,以屏幕中心为原点(0, 0, 0),你面对屏幕,你的右边是x正轴,上面是y正轴,屏幕指向你的为z正轴。(2)当前绘图坐标系(即局部坐标系):当前绘图坐标系是绘制物体时的坐标系。程序刚初始化时,世界坐标系和当前绘图坐标系是重合的,当用glTranslatef()等变... 阅读全文
posted @ 2009-11-20 08:34 大Vin 阅读(10692) 评论(1) 推荐(3)
摘要:In order to process the hit records the application must first return to the normal rendering mode. This is done calling glRenderMode with GL_RENDER. This function returns the number of hit records th... 阅读全文
posted @ 2009-11-18 20:54 大Vin 阅读(619) 评论(0) 推荐(0)
摘要:So far the OpenGL naming scheme has been presented. This section will show you how to enter the selection mode for picking purposes. The first step is to tell OpenGL where to store the hit records. Th... 阅读全文
posted @ 2009-11-18 20:40 大Vin 阅读(762) 评论(0) 推荐(0)
摘要:很好的一篇文章,看完后有豁然开朗的感觉。The OpenGL API provides a mechanism for picking objects in a 3D scene. This tutorial will show you how to detect which objects are bellow the mouse or in a square region of the Ope... 阅读全文
posted @ 2009-11-18 20:21 大Vin 阅读(823) 评论(0) 推荐(0)
摘要:1. glViewPort在OpenGL初始化完成之后,我们应该进行一些视图设置。首先是设定视见区域,即告诉OpenGL应把渲染之后的图形绘制在窗体的哪个部位。当视见区域是整个窗体时,OpenGL将把渲染结果绘制到整个窗口。我们调用glViewPort函数来决定视见区域: procedure glViewPort(x:GLInt;y:GLInt;Width:GLSizei;Height:GLSiz... 阅读全文
posted @ 2009-11-17 00:11 大Vin 阅读(5932) 评论(0) 推荐(1)
摘要:下面是我们的Windows程序的入口。将会调用窗口创建例程,处理窗口消息,并监视人机交互。int WINAPI WinMain( HINSTANCE hInstance, //实例HINSTANCE hPrevInstance, // 前一个实例LPSTR lpCmdLine, // 命令行参数 int nCmdShow) // 窗口显示状态 {   我们设置两个变量。msg 用来检查是否有消息等... 阅读全文
posted @ 2009-11-01 22:26 大Vin 阅读(755) 评论(0) 推荐(0)
摘要:下面的代码处理所有的窗口消息。当我们注册好窗口类之后,程序跳转到这部分代码处理窗口消息。 LRESULT CALLBACK WndProc( HWND hWnd, // 窗口的句柄UINT uMsg, // 窗口的消息 WPARAM wParam, // 附加的消息内容LPARAM lParam) // 附加的消息内容{ 下来的代码比对uMsg的值,然后转入case处理,uMsg 中保存了我们要处... 阅读全文
posted @ 2009-11-01 20:07 大Vin 阅读(579) 评论(0) 推荐(0)
摘要:由于全屏模式可能失败,用户可能决定在窗口下运行,我们需要在设置屏幕/窗口之前,再次检查fullscreen的值是TRUE或FALSE。if (fullscreen) // 仍处于全屏模式吗? {如果我们仍处于全屏模式,设置扩展窗体风格为WS_EX_APPWINDOW,这将强制我们的窗体可见时处于最前面。再将窗体的风格设为WS_POPUP。这个类型的窗体没有边框,使我们的全屏模式得以完美显示。 最后... 阅读全文
posted @ 2009-11-01 19:42 大Vin 阅读(707) 评论(0) 推荐(0)
摘要:接下来的代码段创建我们的OpenGL窗口。我花了很多时间来做决定是否创建固定的全屏模式这样不需要许多额外的代码,还是创建一个容易定制的友好的窗口但需要更多的代码。当然最后我选择了后者。我经常在EMail中收到诸如此类的问题:怎样创建窗口而不使用全屏幕?怎样改变窗口的标题栏?怎样改变窗口的分辨率或pixel format(象素格式)?以下的代码完成了所有这一切!尽管最好要学学材质,这会让您写自己的O... 阅读全文
posted @ 2009-11-01 18:55 大Vin 阅读(1882) 评论(0) 推荐(0)
摘要:下一段包括了所有的绘图代码。任何您所想在屏幕上显示的东东都将在此段代码中出现。以后的每个教程中我都会在例程的此处增加新的代码。如果您对OpenGL已经有所了解的话,您可以在 glLoadIdentity()调用之后,返回TRUE值之前,试着添加一些OpenGL代码来创建基本的形。如果您是OpenGL新手,等着我的下个教程。返回TRUE值告知我们的程序没有出现问题。如果您希望程序因为某些原因而中止运... 阅读全文
posted @ 2009-11-01 16:54 大Vin 阅读(1912) 评论(0) 推荐(0)
摘要:接下的代码段中,我们将对OpenGL进行所有的设置。我们将设置清除屏幕所用的颜色,打开深度缓存,启用smooth shading(阴影平滑),等等。这个例程直到OpenGL窗口创建之后才会被调用。此过程将有返回值。但我们此处的初始化没那么复杂,现在还用不着担心这个返回值。int InitGL(GLvoid) // 此处开始对OpenGL进行所有设置 {下一行启用smooth shading(阴影平... 阅读全文
posted @ 2009-11-01 16:22 大Vin 阅读(1565) 评论(0) 推荐(0)
摘要:在您创建一个新的Win32程序(不是console控制台程序)后,您还需要链接OpenGL库文件。在VC中操作如下:Project > Settings,然后单击LINK标签。在"Object/Library Modules"选项中的开始处(在 kernel32.lib 前)增加 OpenGL32.lib GLu32.lib 和 GLaux.lib 后单击OK按钮。现在可以开始写您的Open... 阅读全文
posted @ 2009-11-01 16:09 大Vin 阅读(1712) 评论(0) 推荐(1)
摘要:【转】http://dacuisworld.spaces.live.com/blog/cns!5194FC8976D233A0!1121.entry第一步:下载OpenGL的GLUT库 Windows环境下的GLUT下载地址:(苹果机不需要安装,自带) http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip 第二步:Ope... 阅读全文
posted @ 2009-10-28 13:22 大Vin 阅读(1749) 评论(0) 推荐(0)
摘要:摘 要:虚拟现实中场景的生成对实时性要求很高,LOD技术是一种有效的图形生成加速方法。本文主要介绍了LOD技术的研究内容、LOD模型的生成算法以及LOD模型在虚拟场景生成中的选择。最后,对LOD技术未来的研究方向作了展望。  要害词:虚拟现实 虚拟场景生成 细节层次 网格简化  一、引言  虚拟现实技术是一种逼真地模拟人在自然环境中视觉、听觉、触觉及运动等行为的人机交互技术。它融合了计算机图形学、... 阅读全文
posted @ 2009-03-07 19:09 大Vin 阅读(3372) 评论(0) 推荐(1)
摘要:OpenGL 函数库相关的API有核心库(gl)、实用库(glu)、辅助库(aux)、实用工具库(glut)、窗口库(glx、agl、wgl)和扩展函数库等。从图1可以看出,gl是核心,glu是对gl的部分封装。glx、agl、wgl 是针对不同窗口系统的函数。glut是为跨平台的OpenGL程序的工具包,比aux功能强大。扩展函数库是硬件厂商为实现硬件更新利用OpenGL的扩展机制开发的函数。下... 阅读全文
posted @ 2009-02-22 22:57 大Vin 阅读(1330) 评论(0) 推荐(0)
摘要:GLUT允许我们编写程序,在里面加入键盘输入控制,包括了普通键,和其他特殊键(如F1,UP)。在这一章里我们将学习如何去检测哪个键被按下,可以从GLUT里得到些什么信息,和如何处理键盘输入。 处理按键消息,我们必须使用GLUT通知窗口系统,当某个键被按下时,哪个函数将完成所要求的操作。我们同样是调用一个函数注册相关的回调函数。 当你按下一个键后,GLUT提供了两个函数为这个键盘消息... 阅读全文
posted @ 2009-02-22 19:40 大Vin 阅读(16877) 评论(2) 推荐(4)
摘要:有关depth test / culling Depth testing is an effective technique for hidden surface removal, and OpenGL has functions that do this for you behind the scenes. The concept is simple: When a pixel is drawn... 阅读全文
posted @ 2009-02-16 17:45 大Vin 阅读(814) 评论(0) 推荐(0)
摘要:1. 引言 计算机图形学是用计算机来画东西的学科,数字图象处理是把外界获得的图象用计算机进行处理的学科。在法国,图形图象是一门课程。 如何学习计算机图形学呢?除了计算机图形学的基础知识以外,你还需要有以下的知识,你懂的越多,当然做的越好。 * 英语, 你一定要把英语学好,如果你想学习计算机图形学的话,尽量看英文的书籍和资料 * 数学, 计算机图形学里面的数学用的比较多,,我们可以列举... 阅读全文
posted @ 2009-02-11 19:59 大Vin 阅读(1137) 评论(2) 推荐(0)