当前位置:网站首页 > 技术博客 > 正文

opengl教学视频



一、OpenGL的组成

1、OpenGL库
  • 包括115个基本函数
  • 函数以gl开头

    例:, .

  • 完成图元的定义、几何变换、投影等功能
2、OpenGL实用库
  • 实用函数43个
  • 函数以glu开头
    例:;
  • 完成更高层的图形处理如曲线曲面的生成、图象操作
3、OpenGL辅助库
  • 包括函数31个
  • 函数以aux开头
    例:;
  • 主要用于窗口管理

二、OpenGL的工作顺序

  • 构造几何要素(点,线,多边形,图象,位图),创建对象的数学描述
  • 在三维空间上放置对象,选择有利的场景观察点。
  • 计算对象的颜色,这些颜色可能直接定义,或由光照条件及纹理间接给出。
  • 光栅化,把对象的数学描述和颜色信息转换到屏幕的象素。另外,也可能执行消隐,以及对象素的操作。

三、OpenGL的基本语法

1、命名规则
  • OpenGL函数都遵循一个命名约定,即采用以下格式:

    例如函数, gl表示这个函数来自库表示该函数用于颜色设定,3f表示这个函数采用了三个浮点数参数。
  • 前缀:

    • gI,glu,aux,glut—该函数属于哪个函数库

    后缀:

    • 2,3,4 — 参数的维数
    • b,s,I,f,d,ub,us,ui — 参数的数据类型
    • v ---- 以数组方式传递参数

    函数名中的单词首写字母大写

2、数据类型

三、OpenGL程序实例

1、头文件包含
  • 利用OpenGL实现图形绘制,首先要引入OpenGL核心库以及其他需要使用的库的头文件。
  • GLUT保证了gl.h和glu.h被正确包含。
     
2、窗口管理
  • 初始化(glutlnit)
  • 创建窗口(glutCreateWindow)
  • 设定窗口的显示模式(glutlnitDisplayMode)
  • 指定窗口的位置和大小(glutlnitWindowPosition和glutlnitWindowSize)
  • 指定窗口的显示内容函数(glutDisplayFunc)
  • 运行框架(glutMainLoop)
 

四、OpenGL程序的基本结构

1、初始化

第一部分是初始化部分:

  • 主要是设置一些OpenGL的状态开关,如颜色模式(RGBA或ALPHA)的选择,是否作光照处理(若有的话,还需设置光源的特性),深度检验,裁剪等等。
  • 这些状态一般都用函数, 来设置,???表示特定的状态。
2、设置取景模式

第二部分设置观察坐标系下的取景模式。主要用到两个函数

1)平行投影:

​ 设置投影方式为正交投影(平行投影),其取景体积是一个各面均为矩形的六面体;

  • 设置一个长宽高一定的投影矩阵,通俗点讲就是设置摄影机所能照射的范围
  • 在一个漆黑的舞台上,如果舞台上的物体超出了这个范围那就显示不出来,只有刚好在摄影机照射的范围内才能完全显示。
  • 例如:工程图采用的是正交投影:
2)透视投影:gluPerspective()

  • 设置投影方式为透视投影,其取景体积是一个截头锥体,在这
    个体积内的物体投影到锥的顶点。

    例如:火车道,感觉很远处会交于一处(Vanishing point)

3)视口变换:
  • 设置在屏幕上的窗口大小,四个参数描述屏幕窗口四个角上的坐标(以象素表示);
  • 在默认情况下,视口被设置为占据打开窗口的整个像素矩形窗口大小和设置视口大小相同,所以为了选择一个更小的绘图区域,就可以用glViewport函数来实现这一变换,在窗口中定义一个像素矩形,最终将图像映射到这个矩形中。例如可以对窗口区域进行划分,在同一个窗口中显示分割屏幕的效果,以显示多个视图
 
 
4)和的关系

假设有一个球体,半径为1,圆心在(0, 0, 0),那么,我们设定就表示用一个宽高都是3的框把这个球体整个都装了进来。

如果设定;就表示用一个宽是1.5, 高是3的框框把整个球体的右面装进来;

函数只是负责使用什么样的视景体来截取图像,并不负责使用某种规则把图像呈现在屏幕上。
主要完成这样的功能。它负责把视景体截取的图像按照怎样的高和宽显示到屏幕上

  • 比如:如果我们使用glut库建立一个窗体:; 然后使用;

    reshape代码如下:

     

    这样是可以看到一个正常的球体的。

3、几何变换/光照处理

​ 第三部分是OpenGL的主要部分,使用OpenGL的库函数构造几何物体对象的数学描述,包括点线面的位置和拓扑关系,几何变换,光照处理等等。

五、OpenGL程序实例——绘制图形

  • 清除当前窗口的内容,以免影响绘图的效果

  • 给定当前屏幕的背景设置颜色,red, green, blue, alpha为RGBA颜色值.

    指定窗口背景色( glClearColor
    颜色管理,使用RGB颜色模型。一种颜色用红、绿、蓝三种颜色成分混合而成,每种颜色成分使用0.0到1.0之间的任意有效浮点数来表示颜色值。

接下来的内容参考OpenGL入门教程

版权声明


相关文章:

  • 好看的ui网站2024-11-17 13:30:02
  • 金手指教程视频2024-11-17 13:30:02
  • c语言指针数组和数组指针怎么用2024-11-17 13:30:02
  • mysql选择前10条数据2024-11-17 13:30:02
  • 获取字符串变量str的长度的代码为2024-11-17 13:30:02
  • pm2(PM2 命令使用方法总结)2024-11-17 13:30:02
  • 红黑树的概念2024-11-17 13:30:02
  • 重载乘法运算符的函数原型声明2024-11-17 13:30:02
  • 跳表数据结构与算法2024-11-17 13:30:02
  • 双向链表构造方法2024-11-17 13:30:02