理论教育 VegaPrime虚拟现实开发技术:物体颜色控制

VegaPrime虚拟现实开发技术:物体颜色控制

时间:2023-11-25 理论教育 版权反馈
【摘要】:在某些场景中,物体颜色需要动态控制。例如,在危险情况下,物体改变为红色;在正常情况下,物体改变为蓝色。图6.23.1物体颜色控制实现代码如图6.23.2所示,分别调用函数,实现功能:PublicMember::SetObjectColor;//设置成红色PublicMember::SetObjectColor;//设置成绿色PublicMember::SetObjectColor;//设置成蓝色另外,可以设置RGB的混合调色值,呈现出不同的颜色,满足不同的需求。

VegaPrime虚拟现实开发技术:物体颜色控制

在某些场景中,物体颜色需要动态控制。例如,在危险情况下,物体改变为红色;在正常情况下,物体改变为蓝色。

首先引入材质、状态的头文件:

#include " vrMaterial.h"

#include " vrState.h"

#include " vsGeometry.h"

整个设置过程:分别设置状态的材质元素、光照元素和颜色元素,然后依次遍历物体的几何体,并把几何体的状态设置成赋值了材质元素、光照元素和颜色元素的状态。 设置材质元素,包含设置漫反射颜色、散射颜色、镜面反射颜色和发射颜色:

//为材质元素作准备

vrMaterial *material=new vrMaterial();

material->setColor(vrMaterial::COLOR_AMBIENT,r,g,b,1.0);

material->setColor(vrMaterial::COLOR_DIFFUSE,r,g,b,0.0);

material->setColor(vrMaterial::COLOR_SPECULAR,r,g,b,1.0);

material->setColor(vrMaterial::COLOR_EMISSIVE,r,g,b,1.0);

material->setSpecularExponent(50.0);

//建立材质元素并赋值

vrMaterial::Element materialElement;

materialElement.m_side=vrMaterial::SIDE_FRONT_AND_BACK;

materialElement.m_material=material;

设置光照模型,包含设置光照的漫反射颜色:

设置跟随颜色元素:

//建立颜色轨迹元素并赋值

vrColorTrack::Element colorTrackElement;(www.daowen.com)

colorTrackElement.m_enable=false;

把材质、光照模型和跟随元素颜色赋值于状态:

//建立状态对象,并对其相关元素并赋值

vrState* pNonTexState=new vrState();

pNonTexState->setElement(vrMaterial::Element::Id,&materialElement);

pNonTexState->setElement(vrLightModel::Element::Id,&lightModelElement);

pNonTexState->setElement(vrColorTrack::Element::Id,&colorTrackElement);

最后,遍历物体对象的几何体,设置几何体的状态值:

整个详细代码如图6.23.1所示,其中,r、g、b 分别代表红、绿、蓝,取值方位均为[0,1]。

图6.23.1 物体颜色控制实现代码

如图6.23.2所示,分别调用函数,实现功能:

PublicMember::SetObjectColor(pObjectHummer,1.0,0.0,0.0);//设置成红色

PublicMember::SetObjectColor(pObjectHummer,0.0,1.0,0.0);//设置成绿色

PublicMember::SetObjectColor(pObjectHummer,0.0,0.0,1.0);//设置成蓝色

另外,可以设置RGB的混合调色值,呈现出不同的颜色,满足不同的需求。

图6.22.1 物体颜色控制

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

我要反馈