openGL学习笔记4
来源:互联网 发布:怎么从mac上卸载软件 编辑:程序博客网 时间:2024/06/11 08:19
四、光照
相关函数
glMaterialfv
指定用于光照计算的当前材质属性。参数face的取值可以是GL_FRONT、GL_BACK或GL_FRONT_AND_BACK,指出材质属性将应用于物体的哪面。
#include<Windows.h>#include<gl/glut.h>#pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")void init(void){GLfloat mat_specular[]={1.0,1.0,1.0,1.0};GLfloat mat_sunshine[]={50.0};GLfloat light_postion[]={1.0,1.0,1.0,0.0};GLfloat white_light []={1.0,1.0,1.0,1.0};GLfloat lmodel_ambient[]={0.1,0.1,0.1,1.0};glClearColor(0.0,0.0,0.0,0.0);glShadeModel(GL_SMOOTH);glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular);//指定材质属性以及应用于物体的何面glMaterialfv(GL_FRONT,GL_SHININESS,mat_sunshine);glLightfv(GL_LIGHT0,GL_POSITION,light_postion);glLightfv(GL_LIGHT0,GL_DIFFUSE,white_light);glLightfv(GL_LIGHT0,GL_SPECULAR,white_light);glLightModelfv(GL_LIGHT_MODEL_AMBIENT,lmodel_ambient);glEnable(GL_LIGHTING);glEnable(GL_LIGHT0);glEnable(GL_DEPTH_TEST);}void disply(){glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);glutSolidSphere(1.0,100,100);glFlush();}void reshape(int w,int h){glViewport(0,0,GLsizei(w),GLsizei(h));//以左下角为原点选择绘图区域glMatrixMode(GL_PROJECTION);//指定当前操作矩阵为投影矩阵glLoadIdentity();if(w<=h)glOrtho(-1.5,1.5,-1.5*(GLfloat)h/(GLfloat)w,1.5*(GLfloat)h/(GLfloat)w,-10.0,10.0);elseglOrtho(-1.5*(GLfloat)w/(GLfloat)h,1.5*(GLfloat)w/(GLfloat)h,-1.5,1.5,-10.0,10.0);glMatrixMode(GL_MODELVIEW);//对模型视图矩阵进行操作glLoadIdentity(); }int main(int argc, char** argv){ glutInit(&argc,argv); glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB|GLUT_DEPTH);//指定显示模式 glutInitWindowSize(500,500);//指定窗口大小 glutInitWindowPosition(100,100);//指定窗口左上角位置 glutCreateWindow("OpenGL");//创建窗口标题为OpenGL的窗口 init(); glutDisplayFunc(disply); glutReshapeFunc(reshape); glutMainLoop(); return 0;}
0 0
- opengl学习笔记(4)
- openGL学习笔记4
- OpenGL学习笔记4:纹理
- OpenGL学习笔记4:纹理
- OpenGL学习笔记 (4) —— 旋转
- Android的OpenGL学习笔记(4)
- openGL学习笔记4(动画)
- opengl学习笔记2-4-动画效果
- OpenGL 学习笔记(4)顶点数组
- OPENGL学习笔记1
- OpenGL学习笔记
- OpenGL 学习笔记
- OpenGL学习笔记
- OpenGL 学习笔记(1)
- OpenGL学习笔记(一)
- OpenGL学习笔记(二)
- OpenGL学习笔记
- Opengl学习笔记1
- 五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT) – 整理
- 设置表格1px边框线的两种方式
- 二叉树的重建 已知前序 中序 求后序 递归的方法
- 1408201651-hd-GPA.cpp
- avg count null值计算
- openGL学习笔记4
- 给客户搭建RAC-DG时碰到的一些问题总结
- iptables详解
- hdu 4089 不错的DP 北京现场赛题
- 基础
- Struts2 Result 总结
- mysql数据库备份还原
- mysql+servlet 分页
- 经济学原理笔记(一)