《OpenGL基础》PPT课件.ppt
《《OpenGL基础》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《OpenGL基础》PPT课件.ppt(63页珍藏版)》请在三一办公上搜索。
1、OpenGL编程基础,颜色和光照,2,上章回顾,模型变换视点变换投影变换视口变换操纵矩阵堆栈,3,本章内容,颜色光照概述创建光源选择光照模型指定材质属性,4,内容进度,颜色光照概述创建光源选择光照模型指定材质属性,5,颜色,RGB屏幕上的像素发出不同比例的红(Red)、绿(Green)、蓝(Blue)光,这三个值通常组合在一起,统称为RGBR、G、B的取值范围0.0,1.00.0强度最小1.0强度最大常用的颜色RGB(0,0,0)黑色RGB(1,1,1)白色RGB(1,1,0)黄色RGB(1,0,1)紫色RGB(0,1,1)青色,6,颜色,设置颜色的函数glColor3f();glColor4
2、f();指定着色模式纯色(恒定着色)多种颜色(平滑着色)设置着色模式函数:glShadeModel();,7,设置颜色函数,void glColor3f(GLfloat r,GLfloat g,GLfloat b);功能:设置当前颜色参数:r:红色分量的值g:绿色分量的值b:蓝色分量的值返回值:无备注:r、g、b的值的范围在区间0,1内0.0强度最小1.0强度最大,8,设置颜色函数,void glColor4f(GLfloat r,GLfloat g,GLfloat b,GLfloat alpha);功能:设置当前颜色参数:r:红色分量的值g:绿色分量的值b:蓝色分量的值alpha:alpha
3、分量的值,用作混合返回值:无备注:r、g、b、alpha的值的范围在区间0,1内0.0强度最小1.0强度最大,9,指定着色模式,void glShadeModel(GLenum mode);功能:指定着色模式参数:mode:着色模式返回值:无备注:mode可以取下列值:GL_FLAT恒定着色GL_SMOOTH平滑着色,10,指定着色模式,恒定着色 平滑着色,11,内容进度,颜色光照概述创建光源选择光照模型指定材质属性,12,光照概述,现实世界中,如果没有光,我们几乎看不到任何东西在OpenGL中,大多数物体在没有光照的情况下,看起来甚至是二维的,有光照,没有光照,13,光照概述,光照通常是在纹
4、理映射之前进行的光照效果:可以看到纹理(贴图)光照可以大幅增加场景的真实感启用光照,将看不到物体表面的颜色信息启用光照,可以看到物体表面的材质信息物体表面的法线,将决定光的反射方向glShadeModel函数会影响法线,14,glShadeModel函数会影响法线,GL_FLATGL_SMOOTHGL_PHONG_WIN,例:光照球体,15,光照概述,光照的类型环境光散射光(漫反射光)镜面反射光,16,光照概述,环境光,17,光照概述,散射光(漫反射光)反射方向是均匀分布在各个方向上的从任何角度看上去,光照效果都是一样的,18,光照概述,镜面反射光反射方向是几乎一致的镜面反射可以使物体看起来闪
5、闪发光不同的角度,镜面反射的效果是不一样的,19,光照概述,光照方程:itotal=iamb+idiff+ispec,20,光照概述,材质颜色环境光颜色散射光颜色镜面反射光颜色发射光颜色,改变环境光,改变散射光,改变镜面反射光,改变发射光,21,光照概述,光源类型平行光点光聚光,22,光照概述,23,内容进度,颜色光照概述创建光源选择光照模型指定材质属性,24,创建光源,光源的属性颜色位置衰减聚光灯多光源设置光源属性的函数glLightfv()glLightf(),25,设置光源属性,void glLightfv(GLenum light,GLint pname,GLfloat*param);
6、功能:设置光源属性参数:light:指定光源(第几盏灯)pname:设置光源的属性param:pname的值,是一个数组指针返回值:无,26,设置光源属性,备注:light可取下列值:GL_LIGHT0,GL_LIGHT1,GL_LIGHT7pname可取下列值:GL_AMBIENT/环境光的颜色(默认黑色)GL_DIFFUSE/散射光的颜色(默认白色或黑色)GL_SPECULAR/镜面反射光(默认白色或黑色)GL_POSITION/光源的位置(默认(0,0,1)GL_SPOT_DIRECTION/聚光灯的方向(默认(0,0,-1),27,设置光源属性,void glLightf(GLenum
7、 light,GLint pname,GLfloat param);功能:设置光源属性参数:light:指定光源(第几盏灯)pname:设置光源的属性param:pname的值,是一个浮点数返回值:无,28,设置光源属性,备注:light可取下列值:GL_LIGHT0,GL_LIGHT1,GL_LIGHT7pname可取下列值:GL_SPOT_EXPONENT/聚光指数(默认0.0)GL_SPOT_CUTOFF/聚光截止角(默认180.0)GL_CONSTANT_ATTENUATION/固定衰减因子(默认1.0)GL_LINEAR_ATTENUATION/线性衰减因子(默认0.0)GL_QUA
8、DRATIC_ATTENUATION/二次衰减因子(默认0.0),29,glLightfv举例,GLfloat LightAmbient=0.5f,0.5f,0.5f,1.0f;/Ambient lightGLfloat LightDiffuse=1.0f,1.0f,1.0f,1.0f;/Diffuse lightGLfloat LightSpecular=0.5f,0.5f,0.5f,1.0f;/Light SpecularGLfloat LightPosition=0.0f,0.0f,30.0f,1.0f;/Light PositionglLightfv(GL_LIGHT0,GL_AMBI
9、ENT,LightAmbient);glLightfv(GL_LIGHT0,GL_DIFFUSE,LightDiffuse);glLightfv(GL_LIGHT0,GL_SPECULAR,LightSpecular);glLightfv(GL_LIGHT0,GL_POSITION,LightPosition);,glLightf举例,GLfloat LightSpotExponent=10.0f;/聚光指数GLfloat LightSpotCutoff=20.0f;/聚光角度 glLightf(GL_LIGHT1,GL_SPOT_EXPONENT,LightSpotExponent);glL
10、ightf(GL_LIGHT1,GL_SPOT_CUTOFF,LightSpotCutoff);,31,光源的属性,颜色环境光颜色散射光颜色镜面反射光颜色例:GLfloat LightAmbient=0.5f,0.5f,0.5f,1.0f;/Ambient lightGLfloat LightDiffuse=1.0f,1.0f,1.0f,1.0f;/Diffuse lightGLfloat LightSpecular=0.5f,0.5f,0.5f,1.0f;/Light SpecularglLightfv(GL_LIGHT0,GL_AMBIENT,LightAmbient);glLightfv
11、(GL_LIGHT0,GL_DIFFUSE,LightDiffuse);glLightfv(GL_LIGHT0,GL_SPECULAR,LightSpecular);,32,光源的属性,位置定向(directional)光源,如太阳位置(x,y,z,w)中w为0,则光源为定向光源定位(positional)光源,如台灯位置(x,y,z,w)中w不为0,则光源为定位光源,33,光源的属性,例:/定向光源GLfloat LightPosition=0.0,0.0,30.0,0.0f;glLightfv(GL_LIGHT0,GL_POSITION,LightPosition);/定位光源GLfloa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OpenGL基础 OpenGL 基础 PPT 课件

链接地址:https://www.31ppt.com/p-5625849.html