• 大小: 817KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-31
  • 语言: 其他
  • 标签: opengl  光照  

资源简介

关于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.embed.manifest
     文件         728  2011-10-28 17:20  Lighting\Lighting\Debug\Lighting.exe.embed.manifest.res
     文件         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

评论

共有 条评论