资源简介
关于opengl的光照模型,比较简单的例子

代码片段和文件信息
// DrawCircle.cpp : Defines the entry point for the console application.
//
#include “stdafx.h“
#include
#include “math.h“
GLint winHeight = 400;
GLint winWidth = 400;
void init() {
glClearColor( 0.0 0.0 0.0 0.0); // 背景设置为黑色
// 确定视窗的边界
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-3 3 -3 3); // 定义一个D的正交投影矩阵,参数为: (left right bottom top)
glMatrixMode(GL_MODELVIEW);
}
GLfloat angle;
void idle(){
if(angle < 360)
angle += 0.2;
else
angle -=360;
}
void drawSphere(GLfloat r)
{
glTranslatef(0.200);
glRotatef(-451.01.00.0);
//glutWireSphere(r1616);
//glutSolidSphere(r3232);
glutSolidTeapot(r);
//glutWireTeapot(r);
}
void display() {
glClear( GL_COLOR_BUFFER_BIT); // 清除缓存
glColor3f( 0.0 0.0 1.0); //设置当前颜色为蓝色
glFrustum ( -2.0 2.0-2.02.01.017.0);
gluLookAt (1.01.01.01.0 0 0 0 1 0);
// glFrustum ( -200.0 200.0-200.0200.050.0370.0);
// gluLookAt (100.050.050.050.050.00.00.0 1.00.0);
glMatrixMode ( GL_MODELVIEW );
glLoadIdentity ();
glRotatef(angle0.01.00.0);
glutPostRedisplay();
drawSphere(0.8);
glEnable(GL_CULL_FACE);
glCullFace(GL_BACK);//消隐
GLfloat light_pos1[]={7.010.00.01.0};
GLfloat diffuse1[]={1.01.00.01.0};
GLfloat specular1[]={0.01.01.01.0};
GLfloat ambient1[]={1.01.01.01.0};
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glLightfv(GL_LIGHT0GL_POSITIONlight_pos1);
glLightfv(GL_LIGHT0GL_DIFFUSEdiffuse1);
glLightfv(GL_LIGHT0GL_SPECULARspecular1);
glLightfv(GL_LIGHT0GL_AMBIENTambient1);
GLfloat light_pos2[]={-7.010.00.01.0};
GLfloat diffuse2[]={0.00.001.01.0};
GLfloat specular2[]={0.00.01.01.0};
GLfloat ambient2[]={1.01.01.01.0};
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT1);
glLightfv(GL_LIGHT1GL_POSITIONlight_pos2);
glLightfv(GL_LIGHT1GL_DIFFUSEdiffuse2);
glLightfv(GL_LIGHT1GL_SPECULARspecular2);
glLightfv(GL_LIGHT1GL_AMBIENTambient2);
glEnd();
glFlush(); // 强制刷新图片
}
int main(int argc char* argv[])
{
glutInit( &argc argv); // 初始化GLUT函数
//从屏幕的左上角起设置窗口位置
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowPosition(100 100);
glutInitWindowSize(winWidthwinHeight);
glutCreateWindow( “Drawing“);
init();
glutIdleFunc(idle);
glutDisplayFunc(display); // is created or re-drew
glutMainLoop(); // 进入事件处理循环
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2011-10-28 17:20 Lighting\
目录 0 2011-11-05 19:41 Lighting\Debug\
文件 32256 2011-11-05 19:41 Lighting\Debug\Lighting.exe
文件 354604 2011-11-05 19:41 Lighting\Debug\Lighting.ilk
文件 486400 2011-11-05 19:41 Lighting\Debug\Lighting.pdb
目录 0 2011-11-05 19:41 Lighting\Lighting\
文件 1002496 2011-11-11 04:16 Lighting\Lighting.ncb
文件 890 2011-10-28 17:17 Lighting\Lighting.sln
文件 11776 2011-11-11 04:16 Lighting\Lighting.suo
目录 0 2011-11-05 19:41 Lighting\Lighting\Debug\
文件 6572 2011-11-05 19:41 Lighting\Lighting\Debug\BuildLog.htm
文件 663 2011-10-28 17:20 Lighting\Lighting\Debug\Lighting.exe.em
文件 728 2011-10-28 17:20 Lighting\Lighting\Debug\Lighting.exe.em
文件 621 2011-11-05 19:41 Lighting\Lighting\Debug\Lighting.exe.intermediate.manifest
文件 14702 2011-11-05 19:41 Lighting\Lighting\Debug\Lighting.obj
文件 2031616 2011-10-28 17:20 Lighting\Lighting\Debug\Lighting.pch
文件 65 2011-11-05 19:41 Lighting\Lighting\Debug\mt.dep
文件 11173 2011-10-28 17:20 Lighting\Lighting\Debug\stdafx.obj
文件 60416 2011-11-05 19:41 Lighting\Lighting\Debug\vc90.idb
文件 126976 2011-11-05 19:41 Lighting\Lighting\Debug\vc90.pdb
文件 2618 2011-11-05 19:41 Lighting\Lighting\Lighting.cpp
文件 4438 2011-10-28 17:20 Lighting\Lighting\Lighting.vcproj
文件 1409 2011-11-11 04:16 Lighting\Lighting\Lighting.vcproj.wyt-PC.wyt.user
文件 1189 2011-10-28 17:17 Lighting\Lighting\ReadMe.txt
文件 213 2011-10-28 17:17 Lighting\Lighting\stdafx.cpp
文件 769 2011-10-28 17:18 Lighting\Lighting\stdafx.h
- 上一篇:系统根据销售出库明细生成客户对账单
- 下一篇:PowerBuilder餐饮管理系统
相关资源
- OpenGL参考手册
- phong模型(简单光照模型)
- Qt Creator opengl实现四元数鼠标控制轨迹
- OpenGL文档,api大全,可直接查询函数
- opengl轮廓字体源代码
- MFC读三维模型obj文件
- 利用OpenGL写毛笔字算法
- MFC中OpenGL面和体的绘制以及动画效果
- 基于OPENGL的光线跟踪源代码368758
- VC 实现三维旋转(源码)
- 自编用openGL实现3D分形树,分形山
- OpenGL球形贴图自旋程序
- OpenGL导入贴图的Texture类
- 计算机图形学(openGL)代码
- 用OpenGL开发的机械臂运动仿真程序(
- OpenGL-3D坦克模拟
- 将光照射到可极化的深色颗粒上
- OPENGL实现世界上最小的3D游戏
- VS2012OpenGL配置所需要的全部libdllh文件
- 基于OpenGL的仿蝗虫机器人三维动态仿
- 图形学 - OpenGL实现3种三维茶壶显示源
- opengl程序-会跳舞的骷髅
- opengl实现三维网格光顺Laplacian算法
- opengl——爆炸
- OpenGL三维地形建模
- opengl游戏编程徐明亮版(含源码)
- 用OPENGL画的一个简单的直升飞机
- opengl完美天空盒
- 3D绘图程序设计:使用Direct3D 10/9和Ope
- OpenGL绘制可运动自行车源程序.zip
评论
共有 条评论