Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1|回复: 0
打印 上一主题 下一主题

[MetaHook]各种光源|Lights

[复制链接]

189

主题

189

帖子

580

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
580
跳转到指定楼层
楼主
发表于 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|手机版|小黑屋|Comsenz Inc.  

GMT+8, 2026-10-26 05:52 , Processed in 0.210008 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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