本文整理汇总了C#中Engine.Camera.GetShadowMapGenerationLight方法的典型用法代码示例。如果您正苦于以下问题:C# Camera.GetShadowMapGenerationLight方法的具体用法?C# Camera.GetShadowMapGenerationLight怎么用?C# Camera.GetShadowMapGenerationLight使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Engine.Camera
的用法示例。
在下文中一共展示了Camera.GetShadowMapGenerationLight方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: OnSceneManagementGetObjectsForCamera
public override void OnSceneManagementGetObjectsForCamera( Camera camera,
List<SceneNode> outSceneNodes, List<StaticMeshObject> outStaticMeshObjects, List<RenderLight> outLights )
{
RenderLight shadowGenerationLight = null;
if( camera.IsForShadowMapGeneration() )
shadowGenerationLight = camera.GetShadowMapGenerationLight();
if( shadowGenerationLight != null )
{
//shadow generation
int directionalLightPSSMTextureIndex = 0;
Vec3 pointLightFaceDirection = Vec3.Zero;
if( shadowGenerationLight.Type == RenderLightType.Directional && SceneManager.Instance.IsShadowTechniquePSSM() )
directionalLightPSSMTextureIndex = camera.GetDirectionalLightPSSMTextureIndex();
if( shadowGenerationLight.Type == RenderLightType.Point && SceneManager.Instance.IsShadowTechniqueShadowmapBased() )
pointLightFaceDirection = camera.Direction;
GetShadowCastersForLight( SceneManager.Instance.CurrentUpdatingCamera, shadowGenerationLight,
directionalLightPSSMTextureIndex, pointLightFaceDirection, outSceneNodes, outStaticMeshObjects );
}
else
{
//usual camera
GetObjectsForUsualCamera( camera, outSceneNodes, outStaticMeshObjects, outLights );
}
//add objects never culled by the frustum
if( SceneManager.Instance.OverrideVisibleObjects == null && Map.Instance != null )
{
Map.Instance.Walk_AddObjectsWithDisabled_AllowSceneManagementCulling_Property( shadowGenerationLight != null,
outSceneNodes, outStaticMeshObjects, outLights );
}
}