本文整理汇总了C++中Light::IsShadowEnabled方法的典型用法代码示例。如果您正苦于以下问题:C++ Light::IsShadowEnabled方法的具体用法?C++ Light::IsShadowEnabled怎么用?C++ Light::IsShadowEnabled使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Light
的用法示例。
在下文中一共展示了Light::IsShadowEnabled方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ShadowDirLightRenderGameObject
AEResult GameLightsUpdate::ShadowDirLightRenderGameObject()
{
LightManager* lightManager = m_GameApp->GetLightManager();
GameObjectManager* gameObjectManager = m_GameApp->GetGameObjectManager();
if (lightManager->GetNumDirLightsWithShadows() == 0)
{
return AEResult::Ok;
}
Texture2DArray* shadowTextureArray = lightManager->GetDirLightShadowTextureArray();
AETODO("Check return");
RenderTarget* rtsDS[1] = { nullptr };
m_GraphicDevice->SetRenderTargetsAndDepthStencil(1, rtsDS, m_DirLightShadowTexturesDS);
for (auto lightIt : *lightManager)
{
Light* light = lightIt.second;
if (light->GetLightType() == LightType::Directional && light->IsShadowEnabled())
{
DirectionalLight* dirLight = reinterpret_cast<DirectionalLight*>(light);
uint32_t idxs[1] = { light->GetShadowTextureIndex() };
AETODO("Check return");
m_GraphicDevice->SetRenderTargets(1, idxs, shadowTextureArray);
m_GraphicDevice->Clear(true, 0, true, true, AEColors::Transparent);
for (uint32_t i = 0; i < AE_LIGHT_NUM_CASCADE_MAPS; i++)
{
AETODO("Check return");
m_GraphicDevice->SetViewport(m_DirLightShadowViewports[i]);
const LightCascadeInfo& lightCascadeInfo = dirLight->GetLightCascadeInfo();
for (auto goIt : *gameObjectManager)
{
AETODO("Check return");
ShadowLightRenderGameObject(goIt.second, lightCascadeInfo.m_CascadeViewMatrix[i], lightCascadeInfo.m_CascadeProjectionMatrix[i]);
}
}
}
}
AETODO("Check return");
m_GraphicDevice->ResetViewport();
AETODO("Check return");
m_GraphicDevice->ResetRenderTargetAndSetDepthStencil();
return AEResult::Ok;
}
示例2: ShadowSpotLightRenderGameObject
AEResult GameLightsUpdate::ShadowSpotLightRenderGameObject()
{
LightManager* lightManager = m_GameApp->GetLightManager();
GameObjectManager* gameObjectManager = m_GameApp->GetGameObjectManager();
if (lightManager->GetNumSpotLightsWithShadows() == 0)
{
return AEResult::Ok;
}
Texture2DArray* shadowTextureArray = lightManager->GetSpotLightShadowTextureArray();
AETODO("Check return");
RenderTarget* rtsDS[1] = { nullptr };
m_GraphicDevice->SetRenderTargetsAndDepthStencil(1, rtsDS, m_SpotLightShadowTexturesDS);
AETODO("Check return");
m_GraphicDevice->SetViewport(m_SpotLightShadowViewport);
for (auto lightIt : *lightManager)
{
Light* light = lightIt.second;
if (light->GetLightType() == LightType::Spot && light->IsShadowEnabled())
{
uint32_t idxs[1] = { light->GetShadowTextureIndex() };
AETODO("Check return");
m_GraphicDevice->SetRenderTargets(1, idxs, shadowTextureArray);
m_GraphicDevice->Clear(true, 0, true, true, AEColors::Transparent);
for (auto goIt : *gameObjectManager)
{
AETODO("Check return");
ShadowLightRenderGameObject(goIt.second, light->GetViewMatrix(), light->GetProjectionMatrix());
}
}
}
AETODO("Check return");
m_GraphicDevice->ResetViewport();
AETODO("Check return");
m_GraphicDevice->ResetRenderTargetAndSetDepthStencil();
return AEResult::Ok;
}
示例3: InitFields
void GameObjectLightComponentWidget::InitFields()
{
Light* light = nullptr;
////////////////////////////////////////
// Set Ready to false, so Light cannot change
// properties while been initialized
m_IsReady = false;
////////////////////////////////////////
// Check Engine Viewer
AEAssert(m_EngineViewer != nullptr);
if (m_EngineViewer == nullptr)
{
return;
}
////////////////////////////////////////
// Verify LOC and Get Light Object
light = GetLight();
if(light == nullptr)
{
AETODO("Add log");
return;
}
////////////////////////////////////////
// Set Light Type
SetLightTypeComboBoxIndex(light->GetLightType());
////////////////////////////////////////
// Set Enabled
m_GameObjectLightComponentWidgetQtUI.m_Enabled->setChecked(light->IsEnabled());
////////////////////////////////////////
// Set Intensity
m_GameObjectLightComponentWidgetQtUI.m_IntensitySB->setValue(static_cast<double>(light->GetIntensity()));
////////////////////////////////////////
// Set Color
QColor qColor = AEQTHelpers::GetQColorFromColor(light->GetColor());
SetColorToColorWidget(qColor);
////////////////////////////////////////
// Set Near and Far Attenuation
m_GameObjectLightComponentWidgetQtUI.m_NearAttSB->setValue(static_cast<double>(light->GetNearAttenuation()));
m_GameObjectLightComponentWidgetQtUI.m_FarAttSB->setValue(static_cast<double>(light->GetFarAttenuation()));
////////////////////////////////////////
// Set Shadow Enabled
m_GameObjectLightComponentWidgetQtUI.m_ShadowEnabled->setChecked(light->IsShadowEnabled());
m_GameObjectLightComponentWidgetQtUI.m_DrawFrustum->setEnabled(light->IsShadowEnabled());
////////////////////////////////////////
// Enable/Visibility of Angle options
if(light->GetLightType() == LightType::Spot)
{
m_GameObjectLightComponentWidgetQtUI.m_LabelAngle->setVisible(true);
m_GameObjectLightComponentWidgetQtUI.m_LabelFalloffAngle->setVisible(true);
m_GameObjectLightComponentWidgetQtUI.m_AngleSB->setVisible(true);
m_GameObjectLightComponentWidgetQtUI.m_FalloffAngleSB->setVisible(true);
////////////////////////////////////////
// Get Spot Light
SpotLight* spotLight = reinterpret_cast<SpotLight*>(light);
////////////////////////////////////////
// Set Angle and Fall out Angle
m_GameObjectLightComponentWidgetQtUI.m_AngleSB->setValue(static_cast<double>(spotLight->GetAngle()));
m_GameObjectLightComponentWidgetQtUI.m_FalloffAngleSB->setValue(static_cast<double>(spotLight->GetFallOffAngle()));
}
else
{
m_GameObjectLightComponentWidgetQtUI.m_LabelAngle->setVisible(false);
m_GameObjectLightComponentWidgetQtUI.m_LabelFalloffAngle->setVisible(false);
m_GameObjectLightComponentWidgetQtUI.m_AngleSB->setVisible(false);
m_GameObjectLightComponentWidgetQtUI.m_FalloffAngleSB->setVisible(false);
}
////////////////////////////////////////
// Enable/Visibility of Draw Frustum Cascades
if (light->GetLightType() == LightType::Directional)
{
m_GameObjectLightComponentWidgetQtUI.m_DrawCascadeFrustums->setVisible(true);
}
else
{
m_GameObjectLightComponentWidgetQtUI.m_DrawCascadeFrustums->setVisible(false);
}
////////////////////////////////////////
// Light is Ready to change properties
m_IsReady = true;
}