起伏の少ないLandscapeの場合、Movableなオブジェクトに落とす影を不要にして描画負荷を下げたい場合があるのですが、現状LandscapeのDynamic Shadowを無効にする手段が無いように見えます。
カスケードの枚数によってはかなりの描画負荷がかかるので、Landscapeは地面と割り切り、Static Shadowのみにして、必要なシャドウはメッシュを配置することで表現したい。
取り急ぎエンジンに手を入れることで簡単に対応できたので、報告しておきます。
Engine/Source/Runtime/Landscape/Classes/LandscapeProxy.h
class ALandscapeProxy : public AActor
{
// プロパティを追加
UPROPERTY(EditAnywhere, Category = Lighting, meta = (DisplayName = "Dynamic Shadow"))
uint32 bCastDynamicShadow : 1;
Engine/Source/Runtime/Landscape/Private/Landscape.cpp
void ULandscapeComponent::UpdatedSharedPropertiesFromActor()
{
ALandscapeProxy* LandscapeProxy = GetLandscapeProxy();
bCastStaticShadow = LandscapeProxy->bCastStaticShadow;
bCastShadowAsTwoSided = LandscapeProxy->bCastShadowAsTwoSided;
bCastFarShadow = LandscapeProxy->bCastFarShadow;
// 追加
bCastDynamicShadow = LandscapeProxy->bCastDynamicShadow;
Engine/Source/Runtime/Landscape/Private/Landscape.cpp
ALandscapeProxy::ALandscapeProxy(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
#if WITH_EDITORONLY_DATA
, TargetDisplayOrder(ELandscapeLayerDisplayMode::Default)
#endif // WITH_EDITORONLY_DATA
, bHasLandscapeGrass(true)
{
// 中略
// 追加
bCastDynamicShadow = true;