public override LightShaderGroup CreateLightShaderGroup(string compositionName, int lightMaxCount, ILightShadowMapShaderGroupData shadowGroup) { var mixin = new ShaderMixinSource(); if (AllocateLightMaxCount) { mixin.Mixins.Add(DynamicDirectionalGroupShaderSource); } else { if (lightMaxCount == 0) { lightMaxCount = 1; //todo verify this.. this is just an hot fix } mixin.Mixins.Add(new ShaderClassSource("LightPointGroup", lightMaxCount)); mixin.Mixins.Add(new ShaderClassSource("DirectLightGroupFixed", lightMaxCount)); } if (shadowGroup != null) { shadowGroup.ApplyShader(mixin); } return(new SpotLightShaderGroup(mixin, compositionName, shadowGroup)); }
public override LightShaderGroup CreateLightShaderGroup(string compositionName, int lightMaxCount, ILightShadowMapShaderGroupData shadowGroup) { var mixin = new ShaderMixinSource(); if (AllocateLightMaxCount) { mixin.Mixins.Add(DynamicDirectionalGroupShaderSource); } else { mixin.Mixins.Add(new ShaderClassSource("LightDirectionalGroup", lightMaxCount)); mixin.Mixins.Add(new ShaderClassSource("DirectLightGroupFixed", lightMaxCount)); } if (shadowGroup != null) { shadowGroup.ApplyShader(mixin); } return(new DirectionalLightShaderGroup(mixin, compositionName, shadowGroup)); }