理论教育 聚光灯光源vpLightLobe使用

聚光灯光源vpLightLobe使用

时间:2023-11-25 理论教育 版权反馈
【摘要】:使用vpLightLobe的完整代码如图9.9.3所示。定义使用聚光灯对象与定义使用一般的场景对象vpObject 类似,可以控制其位置、姿态等,其中包括亮度、照射角度和灯光衰减范围等。在图9.9.3 中,vpLightLobe 对象作为坦克的孩子,随着坦克运动而运动。图9.9.5聚光灯的纹理照射效果合理使用聚光灯对象vpLightLobe,可以为场景创造出绚丽的灯光效果。

聚光灯光源vpLightLobe使用

使用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,可以为场景创造出绚丽的灯光效果。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈