public void SetShadowMapShaderData(int index, ILightShadowMapShaderData shaderData) { var singleLightData = (LightDirectionalShadowMapShaderData)shaderData; var splits = singleLightData.CascadeSplits; var matrices = singleLightData.WorldToShadowCascadeUV; int splitIndex = index * cascadeCount; for (int i = 0; i < splits.Length; i++) { cascadeSplits[splitIndex + i] = splits[i]; worldToShadowCascadeUV[splitIndex + i] = matrices[i]; } depthBiases[index] = singleLightData.DepthBias; offsetScales[index] = singleLightData.OffsetScale; // TODO: should be setup just once at creation time if (index == 0) { shadowMapTexture = singleLightData.Texture; if (shadowMapTexture != null) { shadowMapTextureSize = new Vector2(shadowMapTexture.Width, shadowMapTexture.Height); shadowMapTextureTexelSize = 1.0f / shadowMapTextureSize; } } }
public void SetShadowMapShaderData(int index, ILightShadowMapShaderData shaderData) { var singleLightData = (LightSpotShadowMapShaderData)shaderData; worldToShadowCascadeUV[index] = singleLightData.WorldToShadowCascadeUV; depthBiases[index] = singleLightData.DepthBias; offsetScales[index] = singleLightData.OffsetScale; // TODO: should be setup just once at creation time if (index == 0) { shadowMapTexture = singleLightData.Texture; if (shadowMapTexture != null) { shadowMapTextureSize = new Vector2(shadowMapTexture.Width, shadowMapTexture.Height); shadowMapTextureTexelSize = 1.0f / shadowMapTextureSize; } } }
public void SetShadowMapShaderData(int index, ILightShadowMapShaderData shaderData) { }