转载:OGRE一起学(八)光源

第八章 光源

运行截图:

Image:Yanchen81.jpg

在这一个示例中,由于使用了光源,使得物体产生了自身阴影 (Self Shadowing) ,增强了物体的立体感和场景渲染的真实度。

核心代码:

  // 创建光源
  Light* pLight = mSceneMgr->createLight( "MainLight" );
  // 设置光源的类型:
  pLight->setType( Light::LightTypes::LT_DIRECTIONAL );
  // 设置光源的位置:
  pLight->setPosition( 60, 80, 100 );
  // 设置光源的方向:
  pLight->setDirection( -60, -80, -100 );
  // 设置散射光颜色:
  pLight->setDiffuseColour( 1.0, 1.0, 0.0 );
  // 设置反射光颜色:
  pLight->setSpecularColour( 0.0, 0.0, 1.0 );

不知道你有没有注意到,跟上一个示例中我们在场景中显示一个模型实体 (Entity) 不同,我们直接创建了一个光源,为它设置了各种属性,但是,我们并没有像上一个示例中我们创建模型实体那样明确地为这个光源创建一个场景节点并把它绑定到这个场景节点 (Scene Node) 上,但是这个光源显然正确地处在场景中并正常地发挥着照明作用,这并不意味着光源是一种有特权的可移动物体 (Movable Object),只是它在创建时就被默认地绑定在场景根节点 (Root Scene Node) 。 但是这样的话这个光源将只能借助于 setPosition 和 setDirection 两个方法来有限地调整它的空间属性,如果你想更灵活地控制它,完全可以像实体一样为它创建一个场景节点并绑定。

OGRE 具有三种基本光源类型:

  enum LightTypes
  {
  LT_POINT, // 点光源
  LT_DIRECTIONAL, // 方向光
  LT_SPOTLIGHT // 锥形光
  };

关于光源 Light 的详细信息请自行参看 OGRE API 文档的 OGRE::Light 部分或 OgreLight.h 。

取自"http://ogre3d.cn/wiki/index.php?title=%E8%BD%AC%E8%BD%BD:OGRE%E4%B8%80%E8%B5%B7%E5%AD%A6%EF%BC%88%E5%85%AB%EF%BC%89%E5%85%89%E6%BA%90"

转载于:https://www.cnblogs.com/wanghao111/archive/2009/06/08/1498643.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值