本文整理汇总了C++中CLight::Visible方法的典型用法代码示例。如果您正苦于以下问题:C++ CLight::Visible方法的具体用法?C++ CLight::Visible怎么用?C++ CLight::Visible使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CLight
的用法示例。
在下文中一共展示了CLight::Visible方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: BeforeRender
void ESceneLightTools::BeforeRender()
{
if (psDeviceFlags.is(rsLighting)){
int l_cnt = 0;
// set scene lights
for(ObjectIt _F = m_Objects.begin();_F!=m_Objects.end();_F++){
CLight* l = (CLight*)(*_F);
l_cnt++;
if (l->Visible()&&l->m_UseInD3D&&l->m_Flags.is_any(ELight::flAffectDynamic|ELight::flAffectStatic))
if (::Render->ViewBase.testSphere_dirty(l->PPosition,l->m_Range))
AppendFrameLight(l);
}
// set sun
if (m_Flags.is(flShowSun)){
Flight L;
Fvector C;
if (psDeviceFlags.is(rsEnvironment)){
C = g_pGamePersistent->Environment().CurrentEnv.sun_color;
}else{
C.set (1.f,1.f,1.f);
}
L.direction.setHP(m_SunShadowDir.y,m_SunShadowDir.x);
L.diffuse.set (C.x,C.y,C.z,1.f);
L.ambient.set (0.f,0.f,0.f,0.f);
L.specular.set (C.x,C.y,C.z,1.f);
L.type = D3DLIGHT_DIRECTIONAL;
Device.SetLight (frame_light.size(),L);
Device.LightEnable(frame_light.size(),TRUE);
}
// ambient
if (psDeviceFlags.is(rsEnvironment)){
Fvector& V = g_pGamePersistent->Environment().CurrentEnv.ambient;
Fcolor C; C.set(V.x,V.y,V.z,1.f);
Device.SetRS (D3DRS_AMBIENT,C.get());
}else Device.SetRS(D3DRS_AMBIENT,0x00000000);
Device.Statistic->dwTotalLight = l_cnt;
Device.Statistic->dwLightInScene = frame_light.size();
}
}