请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

ESFKAMI

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz

ESFX

ESF: Xenoverse

ESF123

ESF1.2.3

EVM2.1

EVM2.1

ECXSSJ

ECX: TeamSSJ

ECX2.2

ECX RC2

ECX2.3

ECX RC3

查看: 1962|回复: 0

[MetaHook]各种光源|Lights

[复制链接]

212

主题

217

帖子

1269

积分

ESFKAMI

Rank: 8Rank: 8

积分
1269
发表于 2017-7-14 16:48:54 | 显示全部楼层 |阅读模式


  1.         // 定义太阳光源,它是一种白色的光源
  2.         {
  3.                 GLfloat sun_light_position[] = {0.0f, 0.0f, 10000.0f, 1.0f};
  4.                 GLfloat sun_light_ambient[]  = {0.0f, 0.0f, 0.0f, 1.0f};
  5.                 GLfloat sun_light_diffuse[]  = {1.0f, 1.0f, 1.0f, 1.0f};
  6.                 GLfloat sun_light_specular[] = {1.0f, 1.0f, 1.0f, 1.0f};

  7.                 qglLightfv(GL_LIGHT0, GL_POSITION, sun_light_position); //指定0号光源的位置[]
  8.                 qglLightfv(GL_LIGHT0, GL_AMBIENT,  sun_light_ambient); //GL_AMBIENT表示各种光线照射到该材质上,
  9.                                                                           //经过很多次反射后最终遗留在环境中的光线强度(颜色)
  10.                 qglLightfv(GL_LIGHT0, GL_DIFFUSE,  sun_light_diffuse); //漫反射后~~
  11.                 qglLightfv(GL_LIGHT0, GL_SPECULAR, sun_light_specular);//镜面反射后~~~

  12.                 qglEnable(GL_LIGHT0); //使用0号光照[]
  13.                 qglEnable(GL_LIGHTING); //在后面的渲染中使用光照[]
  14.                 qglEnable(GL_DEPTH_TEST); //这句是启用深度测试,这样,在后面的物体会被挡着,例如房子后面有棵树,如果不启用深度测试,[]
  15.                                  //你先画了房子再画树,树会覆盖房子的;但启用深度测试后无论你怎么画,树一定在房子后面(被房子挡着)[]
  16.         }

  17.         // 定义太阳的材质并绘制太阳
  18.         {
  19.                 GLfloat sun_mat_ambient[]  = {1.0f, 1.0f, 1.0f, 1.0f};
  20.                 GLfloat sun_mat_diffuse[]  = {1.0f, 1.0f, 1.0f, 1.0f};
  21.                 GLfloat sun_mat_specular[] = {1.0f, 1.0f, 1.0f, 1.0f};
  22.                 GLfloat sun_mat_emission[] = {1.0f, 1.0f, 1.0f, 1.0f};
  23.                 GLfloat sun_mat_shininess  = 0.0f;

  24.                 qglMaterialfv(GL_FRONT, GL_AMBIENT,   sun_mat_ambient); //定义材料前面采用 多次反射[]
  25.                 qglMaterialfv(GL_FRONT, GL_DIFFUSE,   sun_mat_diffuse); //材料的前面为 漫反射[]
  26.                 qglMaterialfv(GL_FRONT, GL_SPECULAR,  sun_mat_specular); //定义材料的前面为 镜面反射
  27.                 qglMaterialfv(GL_FRONT, GL_EMISSION,  sun_mat_emission); //定义材料的前面为 镜面指数
  28.                 qglMaterialf (GL_FRONT, GL_SHININESS, sun_mat_shininess); //材料的前面采用的颜色[]

  29.                 //glutSolidSphere(2.0, 40, 32);// 绘制一个球体[] gl/glut.h
  30.         }
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|ESFKAMI    

GMT+8, 2018-12-19 06:15 , Processed in 0.262981 second(s), 22 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表