基础学习三(光照和键盘控制)

来源:互联网 发布:穿越还珠之知画txt下载 编辑:程序博客网 时间:2024/06/04 21:06

增加变量

变量light:跟踪光照是否打开。

变量lp和fp:存储'L'和'F'键是否按下的状态。

变量xrot yrot:控制绕x轴和y轴旋转角度的步长.

变量xspeed yspeed:绕x轴和y轴的旋转速度。

变量z:来控制进入屏幕深处的距离。

光源:创建光源的过程和创建颜色的完全一致。前三个参数分别是RGB三色分量,最后一个是alpha通道参数。(1.0最亮 0.0最暗)

环境光 LightAmbient[]= { 0.5f, 0.5f, 0.5f, 1.0f }

漫射光 LightDiffuse[]= { 1.0f, 1.0f, 1.0f, 1.0f }

光源位置(重要):前三个参数是XYZ轴上的位移,最后一个是这里指定的坐标就是光源的位置.

LightPosition[]= { 0.0f, 0.0f, 2.0f, 1.0f }

变量filter:跟踪显示时所采用的纹理类型。

滤波方式:gl_nearest(不光滑),gl_linear(线性滤波),离屏幕越近的图像看起来就越光滑,mipmapped(创建一个外观十分优秀的纹理)。根据使用类型,filter 变量的值分别等于 0, 1 或 2 。

数组texture[3]:为三种不同纹理分配储存空间。

载入位图和创建不同的纹理

创建纹理的新方法(mipmapped 纹理的生成):gluBuild2DMipmaps可以使用任意的位图(没有高宽的限制)来创建纹理。OpenGL将自动将它缩放到正常的大小。

InitGL函数

载入纹理,启用纹理.

设置光源:环境光,漫射光,光源位置

DrawGLScene函数:绘制贴图立方体

绑定的纹理:texture[filter]

glNormal3f()法线设置:使用光源时必须指定一条法线。

WinMain()主函数

开关光源(L)、旋转木箱(箭头)、切换过滤方式(F)以及将木箱移近移远的控制(Page Up/Down)。

原创粉丝点击