使用vpLightLobe的完整代码如图9.9.3所示。
第一步,引入必需的头文件:
#include "vpLightLobe.h"
#include "vpLightLobeControl.h"
第二步,启用聚光灯模块:
vpModule::initializeModule("vpLightLobe");
第三步,考虑使用聚光灯集中控制模块:
vpLightLobeControl::instance()可以获取聚光灯控制对象,可以集中控制场景中的所有聚光灯,如控制使能开关。
bool enable=!vpLightLobeControl::instance()->getEnable();
vpLightLobeControl::instance()->setEnable(enable);
(www.daowen.com)
图9.9.3 聚光灯光源类的使用
第四步,定义使用聚光灯对象vpLightLobe。定义使用聚光灯对象与定义使用一般的场景对象vpObject 类似,可以控制其位置、姿态等,其中包括亮度、照射角度和灯光衰减范围等。最后,需要把vpLightLobe 对象作为某个场景对象的孩子,vpLightLobe 对象随着场景对象的变化而变化。在图9.9.3 中,vpLightLobe 对象作为坦克的孩子,随着坦克运动而运动。运行结果如图9.9.4(a)所示。当然,可以定义多个聚光灯,如图9.9.4(b)所示。
图9.9.4 聚光灯光照效果
聚光灯对象vpLightLobe 还可以使用纹理,对照射光线进行渲染。
pLightLobe_myLightLobe1->setTextureFile("sun.jpg");
如图9.9.5所示,(a)为纹理图片,(b)为聚光灯的纹理照射效果。
图9.9.5 聚光灯的纹理照射效果
合理使用聚光灯对象vpLightLobe,可以为场景创造出绚丽的灯光效果。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。