![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OpenGL程序开发
fba529635
好好干!!
展开
-
设置OpenGL的运行环境
因为OpenGL仅仅是图形应用程序的编程接口,所有的用户交互或者屏幕窗口事务都需要其宿主操作系统来处理。为了减轻开发人员的负担,每种操作系统通常都有一组与OpenGL相应的扩展组件来处理用户交互和宿主环境的窗口处理。 对于UNIX系统,是通过GLX来完成的。 而在WINDOWS操作系统中,是使用一组叫做wiggle的函数。正是基于这个原因,此组函数中的每一原创 2010-02-02 08:51:00 · 946 阅读 · 0 评论 -
常用的3D模型概述
在计算机平台上,常用的3D模型有3DS,OBJ,MD2,MD3,MS3D等多种格式。这些格式在存储方式上存在很大的差别,但基本思想大同小异。3D模型又分为静态模型(如3DS,OBJ)和动态模型(如MD2,MD3,MS3D)。在动态模型中除了保存模型的定点和表面数据外,还有与动画相关的信息,这些动态模型渲染起来较为复杂。转载 2010-05-15 09:58:00 · 1325 阅读 · 0 评论 -
在OpenGL在实现复杂的动画模型
OpenGL是一个强大的三维图形开发接口,它可以利用几种基本的图形元素构建任何三维模型,但在进行复杂的三维建模时,直接使用OpenGL中的图元绘制函数或曲面绘制命令是不太现实的,尤其涉及到复杂的动画模型时,而人体运动模型则是一种复杂的三维动画模型。因此,一般情况下可以利用目前较为流行的三维建模工具,如3DMAX,MAYA等软件进行建模,再在OpenGL中读取模型,这样就可以减少编程的工原创 2010-05-15 09:52:00 · 3187 阅读 · 0 评论 -
OpenGL中颜色、alpha及混合的理解
如果启用了混合,alpha值常常用于把被处理片断的颜色值与已经存储在帧缓冲区中的像素的颜色值进行混合。alpha值可以用于alpha测试,根据片断的alpha值决定接受或拒绝它(混合出现在场景进行光栅化并转换为片断之后,但在最终的像素被绘制到帧缓冲区之前)。 如果不使用混合,每个新片断将改写帧缓冲区中已经存在的颜色值,就像该片断是不透明的那样。如果使用了混合,可以控原创 2010-05-15 09:41:00 · 3544 阅读 · 1 评论 -
加载位图树纹理的两种方法---背景透明
加载位图树纹理的两种方法,这两种方法都有局限性,如果大家还知道其他方法,可以分享一下~~ 方法一: ////////////////////////////////////////////////////////////////////////////////////////////////////函数名称: LoadTreeBmpFile//函数介绍://原创 2010-04-04 11:54:00 · 1687 阅读 · 1 评论 -
位图结构 Bitmap Storage
摘自MSDN链接网址:http://msdn.microsoft.com/en-us/library/dd183391(v=VS.85).aspxBitmap StorageBitmaps should be saved in a file that uses the established bitmap file format and assigned a name with t原创 2010-04-04 11:51:00 · 534 阅读 · 0 评论 -
OpenGL 选择机制(拾取)的理解和特别注意问题
一、对于选择的理解 有些图形应用程序只是简单地绘制静态的二维和三维物体图像。另外还有一些应用程序允许用户标识屏幕上的物体,并移动、更改或删除这些物体(或者进行其他操作)。由于在屏幕上所绘制的物体一般会经历多次旋转、移动和透视变换,因此在三维场景中判断用户所选择的是哪个物体是比较困难的。为了帮助你实现这个目的,OpenGL提供了选择机制,并使用一个特殊的工具函数,确定用户在某个区域中所原创 2010-03-13 09:47:00 · 2089 阅读 · 2 评论 -
OpenGL 关于平面树的一点点理解
(1)如何使树的背景透明 当树的背景为纯色时,从文件中读进图片颜色信息后,现用数组存储此图片的颜色信息,然后用IF语句把颜色为纯色的像素点的深度设置为0或1,然后再深度测试,使用混合,就可去掉图片的纯色背景了。 (2)观察平面树时的问题 A、可使树随观察方向变化而旋转,始终使观察者看到完整的树的一面; B、在表示一棵树的地方原创 2010-02-04 16:37:00 · 1031 阅读 · 0 评论 -
OpenGL 漫游
在计算机3D图形处理技术中,也有类似我们眼睛的东西gluLookAt()函数,如果这个观察点在OpenGL场景中的位置发生变化,我们在计算机屏幕上的图像(相当于我们的大脑的映像)就发生变化。 gluLookAt(视点,目标点,视点方向)其中视点(观察点)是一个三维坐标量: X量的变化就像是我们在场景中横向移动。 Y量的变化就像是我们的身体高原创 2010-02-04 16:03:00 · 2578 阅读 · 2 评论 -
OpenGL 天空盒
所谓天空盒,就是用一个矩形方盒作为形容远景贴图的物体。 在长方体的前后左右上5个面贴有天空远景的5幅图形(需要时底面也可以帖)。这5幅图形必须有以下规律: 1、图形为BMP位图格式,尺寸(像素点)为2的N次方; 2、顶图的4边与前后左右图的上边相连; 3、前后左右的4幅图形必须首尾相连。 对于每个面的贴图,就图的方向原创 2010-02-04 16:43:00 · 4801 阅读 · 0 评论 -
OpenGL中关于视图要注意的几个问题
(1)记住,计算机图形的要点就是创建三维物体的二维图像(它必须是二维的,因为它是在平面的屏幕上显示的)。但是,当你决定在屏幕上绘图时,你必须用三维坐标的方式来考虑。 (2)“视图和模型变换”:这些变换对模型和照相机的相对位置进行定位,以获得所需的最终图像。 “投影变换”:描述了如何指定可视空间的形状和方向。可视空间决定了场景将如何投影到屏幕上(使用正投影或透视投影),以及原创 2010-02-04 16:19:00 · 768 阅读 · 0 评论 -
OpenGL 纹理
摘自《OpenGL游戏程序设计》 当一个纹理映射到一个多边形上时,纹理就将随着此多边形的变换而进行相应的变换。纹理映射可以被认为是赋给了3D物体或多边形的一种皮肤。可以在物体上移动、拉伸或者压缩这个皮肤,但无论何种情况下,这个皮肤或者说纹理图总是不会与其所应用的多边形分离的。 将纹理数据从一个文件中载入内存之后,需要将其定义为一个OpenGL纹理图,而纹理图的维数原创 2010-02-02 22:48:00 · 1076 阅读 · 0 评论 -
对于OpenGL中光照和颜色混合的理解
摘自《OpenGL游戏程序设计》 光照 //光照变量 float ambientLight[] = {0.3f,0.5f,0.8f,1.0f} ; //环境光 float diffuseLight[] = {0.25f,0.25f,0.25f,1.0f) ; //散射光 这些变量定义了光的属性。ambientLight变量原创 2010-02-02 19:48:00 · 2082 阅读 · 0 评论 -
OpenGL和矩阵
OpenGL中的变换是依靠矩阵来完成所有数学计算的。OpenGL中有一种叫矩阵堆栈的东西,对于构建由很多简单物体组成的复杂模型是很有用的。 OpenGL中的矩阵堆栈提供了这样一个功能:用户能够相对于物体B的局部坐标原点移动物体A,以物体A的局部坐标绘制A,最后再撤销整个变换,以使得当前位置再次回到B物体的局部坐标原点。两个堆栈操作glPushMatrix()和glPopM原创 2010-02-02 08:59:00 · 1807 阅读 · 1 评论 -
三维地形概述
<br /> 随着计算机技术和相关科学理论的发展,三维电子地图的制作已经经历了线划地形图、实体型地形图、三维真实感地形图三个阶段。<br /> 三维地形的模拟是开发可视化系统中最基本也是最重要的技术之一。地形模拟分为两类:真实地形和模拟地形。<br /> 真实地形:真实地形是现实世界中真实地形的再现,具有非常高的真实度,必须采用真实世界中的具体数据来构造,在这种情况下一般采用数字高程模型(Digital Elevation Model,DEM)方法。这种方法数据结构比较复杂,数转载 2010-08-08 16:44:00 · 1578 阅读 · 0 评论