public LightComponentForwardRenderer() { modelToLights = new Dictionary <RenderModel, RenderModelLights>(1024); directLightShaderGroupEntryKeys = new FastListStruct <LightForwardShaderFullEntryKey>(32); environmentLightShaderGroupEntryKeys = new FastListStruct <LightForwardShaderFullEntryKey>(32); directLightShaderGroupEntryKeysNoShadows = new FastListStruct <LightForwardShaderFullEntryKey>(32); parameterCollectionEntryPool = new PoolListStruct <LightParametersPermutationEntry>(16, CreateParameterCollectionEntry); //directLightGroup = new LightGroupRenderer("directLightGroups", LightingKeys.DirectLightGroups); //environmentLightGroup = new LightGroupRenderer("environmentLights", LightingKeys.EnvironmentLights); lightRenderers = new List <KeyValuePair <Type, LightGroupRendererBase> >(16); visibleLights = new List <LightComponent>(1024); visibleLightsWithShadows = new List <LightComponent>(1024); shaderEntries = new Dictionary <ObjectId, LightShaderPermutationEntry>(1024); directLightsPerModel = new List <LightEntry>(16); activeLightGroups = new Dictionary <Type, LightComponentCollectionGroup>(16); activeLightGroupsWithShadows = new Dictionary <Type, LightComponentCollectionGroup>(16); activeRenderers = new List <ActiveLightGroupRenderer>(16); lightParameterEntries = new Dictionary <ObjectId, LightParametersPermutationEntry>(32); // TODO: Make this pluggable RegisterLightGroupRenderer(typeof(LightDirectional), new LightDirectionalGroupRenderer()); RegisterLightGroupRenderer(typeof(LightSpot), new LightSpotGroupRenderer()); RegisterLightGroupRenderer(typeof(LightPoint), new LightPointGroupRenderer()); RegisterLightGroupRenderer(typeof(LightAmbient), new LightAmbientRenderer()); RegisterLightGroupRenderer(typeof(LightSkybox), new LightSkyboxRenderer()); }
public ShadowMapRenderer(string effectName) { if (effectName == null) { throw new ArgumentNullException("effectName"); } this.effectName = effectName; atlases = new FastListStruct <ShadowMapAtlasTexture>(16); shadowMapTextures = new PoolListStruct <LightShadowMapTexture>(16, CreateLightShadowMapTexture); LightComponentsWithShadows = new Dictionary <LightComponent, LightShadowMapTexture>(16); opaqueRenderItems = new RenderItemCollection(512, false); transparentRenderItems = new RenderItemCollection(512, true); renderers = new Dictionary <Type, ILightShadowMapRenderer>(); ShadowCamera = new CameraComponent { UseCustomViewMatrix = true, UseCustomProjectionMatrix = true }; // Creates a model renderer for the shadows casters shadowModelComponentRenderer = new ModelComponentRenderer(effectName + ".ShadowMapCaster") { CullingMode = CullingMode.None, Callbacks = { UpdateMeshes = FilterCasters, } }; shadowCasterParameters = new ParameterCollection(); shadowCasterParameters.Set(ParadoxEffectBaseKeys.ExtensionPostVertexStageShader, ShadowMapCasterExtension); }
/// <summary> /// Initializes a new instance of the <see cref="LightComponentCollectionGroup"/> class. /// </summary> internal LightComponentCollectionGroup() { lightCollectionPool = new PoolListStruct <LightComponentCollection>(32, LightComponentCollectionFactory); groupMasks = new uint[32 * 2]; allLights = new List <LightComponent>(128); allLightsWithShadows = new List <LightComponent>(128); allMasks = new HashSet <EntityGroupMask>(); }
/// <summary> /// Initializes a new instance of the <see cref="RenderLightCollectionGroup"/> class. /// </summary> internal RenderLightCollectionGroup(Type lightType) { LightType = lightType; lightCollectionPool = new PoolListStruct <RenderLightCollection>(32, LightComponentCollectionFactory); groupMasks = new uint[32 * 2]; allLights = new List <RenderLight>(128); allLightsWithShadows = new List <RenderLight>(128); allMasks = new HashSet <RenderGroupMask>(); }
public LightShaderPermutationEntry() { ParameterCollectionEntryPool = new PoolListStruct <LightParametersPermutationEntry>(1, CreateParameterCollectionEntry); DirectLightGroups = new List <LightShaderGroup>(); EnvironmentLights = new List <LightShaderGroup>(); DirectLightShaders = new ShaderSourceCollection(); EnvironmentLightShaders = new ShaderSourceCollection(); }
/// <summary> /// Initializes a new instance of the <see cref="LightDirectionalShadowMapRenderer"/> class. /// </summary> public LightDirectionalShadowMapRenderer() { cascadeSplitRatios = new float[4]; cascadeFrustumCornersWS = new Vector3[8]; cascadeFrustumCornersVS = new Vector3[8]; frustumCornersWS = new Vector3[8]; frustumCornersVS = new Vector3[8]; shaderDataPoolCascade1 = new PoolListStruct<LightDirectionalShadowMapShaderData>(4, CreateLightDirectionalShadowMapShaderDataCascade1); shaderDataPoolCascade2 = new PoolListStruct<LightDirectionalShadowMapShaderData>(4, CreateLightDirectionalShadowMapShaderDataCascade2); shaderDataPoolCascade4 = new PoolListStruct<LightDirectionalShadowMapShaderData>(4, CreateLightDirectionalShadowMapShaderDataCascade4); }
/// <summary> /// Initializes a new instance of the <see cref="LightDirectionalShadowMapRenderer"/> class. /// </summary> public LightDirectionalShadowMapRenderer() { cascadeSplitRatios = new float[4]; cascadeFrustumCornersWS = new Vector3[8]; cascadeFrustumCornersVS = new Vector3[8]; frustumCornersWS = new Vector3[8]; frustumCornersVS = new Vector3[8]; shaderDataPoolCascade1 = new PoolListStruct <LightDirectionalShadowMapShaderData>(4, CreateLightDirectionalShadowMapShaderDataCascade1); shaderDataPoolCascade2 = new PoolListStruct <LightDirectionalShadowMapShaderData>(4, CreateLightDirectionalShadowMapShaderDataCascade2); shaderDataPoolCascade4 = new PoolListStruct <LightDirectionalShadowMapShaderData>(4, CreateLightDirectionalShadowMapShaderDataCascade4); }
public ShadowMapRenderer(RenderSystem renderSystem, RenderStage shadowMapRenderStage) { RenderSystem = renderSystem; this.shadowMapRenderStage = shadowMapRenderStage; atlases = new FastListStruct <ShadowMapAtlasTexture>(16); shadowRenderViews = new PoolListStruct <ShadowMapRenderView>(16, CreateShadowRenderView); shadowMapTextures = new PoolListStruct <LightShadowMapTexture>(16, CreateLightShadowMapTexture); Renderers = new Dictionary <Type, ILightShadowMapRenderer>(); }
public ShadowMapRenderer(RenderSystem renderSystem, RenderStage shadowMapRenderStage) { RenderSystem = renderSystem; this.shadowMapRenderStage = shadowMapRenderStage; atlases = new FastListStruct <ShadowMapAtlasTexture>(16); shadowRenderViews = new PoolListStruct <ShadowMapRenderView>(16, CreateShadowRenderView); shadowMapTextures = new PoolListStruct <LightShadowMapTexture>(16, CreateLightShadowMapTexture); Renderers = new Dictionary <Type, ILightShadowMapRenderer>(); ShadowCamera = new CameraComponent { UseCustomViewMatrix = true, UseCustomProjectionMatrix = true }; }
/// <summary> /// Initializes a new instance of the <see cref="LightSpotTextureProjectionRenderer"/> class. /// </summary> public LightSpotTextureProjectionRenderer(SpotLightTextureParameters parameters) { // TODO: What is this? shaderDataPool = new PoolListStruct <LightSpotTextureProjectionShaderData>(8, CreateLightSpotTextureProjectionShaderData); lightParameters = parameters; }
public LightPointShadowMapRendererParaboloid() { shaderDataPool = new PoolListStruct <ShaderData>(4, () => new ShaderData()); shadowMaps = new PoolListStruct <ShadowMapTexture>(16, () => new ShadowMapTexture()); }
public LightPointShadowMapRendererCubeMap() { shaderDataPool = new PoolListStruct <ShaderData>(4, () => new ShaderData()); }
/// <summary> /// Initializes a new instance of the <see cref="LightSpotShadowMapRenderer"/> class. /// </summary> public LightSpotShadowMapRenderer() { shaderDataPool = new PoolListStruct<LightSpotShadowMapShaderData>(8, CreateLightSpotShadowMapShaderData); }
public LightComponentForwardRenderer() { modelToLights = new Dictionary<RenderModel, RenderModelLights>(1024); directLightShaderGroupEntryKeys = new FastListStruct<LightForwardShaderFullEntryKey>(32); environmentLightShaderGroupEntryKeys = new FastListStruct<LightForwardShaderFullEntryKey>(32); directLightShaderGroupEntryKeysNoShadows = new FastListStruct<LightForwardShaderFullEntryKey>(32); parameterCollectionEntryPool = new PoolListStruct<LightParametersPermutationEntry>(16, CreateParameterCollectionEntry); //directLightGroup = new LightGroupRenderer("directLightGroups", LightingKeys.DirectLightGroups); //environmentLightGroup = new LightGroupRenderer("environmentLights", LightingKeys.EnvironmentLights); lightRenderers = new List<KeyValuePair<Type, LightGroupRendererBase>>(16); visibleLights = new List<LightComponent>(1024); visibleLightsWithShadows = new List<LightComponent>(1024); shaderEntries = new Dictionary<ObjectId, LightShaderPermutationEntry>(1024); directLightsPerModel = new List<LightEntry>(16); activeLightGroups = new Dictionary<Type, LightComponentCollectionGroup>(16); activeLightGroupsWithShadows = new Dictionary<Type, LightComponentCollectionGroup>(16); activeRenderers = new List<ActiveLightGroupRenderer>(16); lightParameterEntries = new Dictionary<ObjectId, LightParametersPermutationEntry>(32); // TODO: Make this pluggable RegisterLightGroupRenderer(typeof(LightDirectional), new LightDirectionalGroupRenderer()); RegisterLightGroupRenderer(typeof(LightSpot), new LightSpotGroupRenderer()); RegisterLightGroupRenderer(typeof(LightPoint), new LightPointGroupRenderer()); RegisterLightGroupRenderer(typeof(LightAmbient), new LightAmbientRenderer()); RegisterLightGroupRenderer(typeof(LightSkybox), new LightSkyboxRenderer()); }
protected LightShaderGroupAndDataPool(ShaderSource mixin, string compositionName, ILightShadowMapShaderGroupData shadowGroupData) : base(mixin, compositionName, shadowGroupData) { dataPool = new PoolListStruct <T>(4, CreateData); }
protected GestureRecognizer(GestureConfig config, float screenRatio) { CurrentGestureEvents = new PoolListStruct <GestureEvent>(8, NewEventFactory); Config = config; ScreenRatio = screenRatio; }
/// <summary> /// Initializes a new instance of the <see cref="LightSpotShadowMapRenderer"/> class. /// </summary> public LightSpotShadowMapRenderer() { shaderDataPool = new PoolListStruct <LightSpotShadowMapShaderData>(8, CreateLightSpotShadowMapShaderDAta); }
protected LightShadowMapRendererBase() { shadowRenderViews = new PoolListStruct <ShadowMapRenderView>(16, () => new ShadowMapRenderView()); shadowMaps = new PoolListStruct <LightShadowMapTexture>(16, () => new LightShadowMapTexture()); }