光线跟踪算法.ppt
上传人:天马****23 上传时间:2024-09-11 格式:PPT 页数:37 大小:1.3MB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

光线跟踪算法.ppt

光线跟踪算法.ppt

预览

免费试读已结束,剩余 27 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验设计一、OPENGL中影响光照效果的因素?2、材料属性材料的环境颜色:GL_AMBIENT材料的散射颜色:GL_DIFFUSE材料的镜面颜色:GL_SPECULAR材料的镜面指数:GL_SHININESS材料的发射颜色:GL_EMISSION问题二、OPENGL光线跟踪函数的函数?问题三、光线跟踪实现的基本步骤?静止多光源实现创建光源1、设置光源参数方向性光源,环境光颜色为蓝色GLfloatlight_ambient[]={0.0,0.0,1.0,1.0};GLfloatlight_diffuse[]={1.0,1.0,1.0,1.0};GLfloatlight_specular[]={1.0,1.0,1.0,1.0};GLfloatlight_position[]={1.0,1.0,1.0,0.0};位置性光源,环境光和散射光颜色为红色GLfloatlight1_ambient[]={1.0,0.0,0.0,1.0};GLfloatlight1_diffuse[]={1.0,0.0,0.0,1.0};GLfloatlight1_specular[]={1.0,1.0,1.0,1.0};GLfloatlight1_position[]={0.0,2.0,2.0,1.0};2、衰减因子定义衰减因子目的:增强真实效果glLightf(GL_LIGHT0,GL_CONSTANT_ATTENUATION,2.0);glLightf(GL_LIGHT0,GL_LINEAR_ATTENUATION,1.0);glLightf(GL_LIGHT0,GL_QUADRATIC_ATTENUATION,0.5);glLightf(GL_LIGHT1,GL_CONSTANT_ATTENUATION,1.5);glLightf(GL_LIGHT1,GL_LINEAR_ATTENUATION,0.5);glLightf(GL_LIGHT1,GL_QUADRATIC_ATTENUATION,0.2);三个参数的默认值为1,0,03,聚光灯参数光源LIGHT1GLfloatspot_direction[]={1.0,-1.0,-1.0};glLightfv(GL_LIGHT1,GL_SPOT_DIRECTION,spot_direction);glLightf(GL_LIGHT1,GL_SPOT_CUTOFF,45.0);//默认值180glLightf(GL_LIGHT1,GL_SPOT_EXPONENT,5.0);//用于控制光的集中度,越高强度越集中4,glLightfv的调用glLightfv(GL_LIGHT0,GL_AMBIENT,light_ambient);glLightfv(GL_LIGHT0,GL_DIFFUSE,light_diffuse);glLightfv(GL_LIGHT0,GL_SPECULAR,light_specular);glLightfv(GL_LIGHT0,GL_POSITION,light_position);glLightfv(GL_LIGHT1,GL_AMBIENT,light1_ambient);glLightfv(GL_LIGHT1,GL_DIFFUSE,light1_diffuse);glLightfv(GL_LIGHT1,GL_SPECULAR,light1_specular);glLightfv(GL_LIGHT1,GL_POSITION,light1_position);5,glEnable的调用作用:启用光源glEnable(GL_LIGHTING);glEnable(GL_LIGHT0);glEnable(GL_LIGHT1);6,光源保持静止选择光照模型定义材料属性display()函数voiddisplay(void){glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);//清空缓冲区glutSolidSphere(1.0,20,16);//画圆,半径为1.0glFlush();//保证绘图命令被实际执行}效果展示屏蔽方向性光源只有位置性光源静止多光源材料属性对光照效果的影响如何将不同的材料属性赋予不同的球体?创建光源//环境光,散射光和镜面光参数GLfloatlight_ambient[]={0.0,0.0,1.0,1.0};GLfloatlight_diffuse[]={1.0,1.0,1.0,1.0};GLfloatlight_specular[]={1.0,1.0,1.0,1.0};GLfloatlight