private void FillTechniqueIndices() { this.passTechniqueIndex = -1; this.failTechniqueIndex = -1; for (int i = 0; i < effect.Techniques.Count; i++) { if (effect.IsTechniqueValid(i)) { if (effect.Techniques[i].Annotations.ContainsKey("StencilMethod")) { string methodString = (string)effect.Techniques[i].Annotations["StencilMethod"]; if (methodString == StencilMethod.ZFail.ToString() && failTechniqueIndex == -1) { failTechniqueIndex = i; } else if (methodString == StencilMethod.ZPass.ToString() && passTechniqueIndex == -1) { passTechniqueIndex = i; } } } } if (failTechniqueIndex == -1 || passTechniqueIndex == -1) { Purple.Log.Warning("Couldn't set ShadowVolume technique"); } }