public override IRenderableMaterial CreateMaterial(string kn5Filename, Kn5Material kn5Material) {
if (kn5Material == null) {
return new InvisibleMaterial();
}
// return new Kn5MaterialSimpleGl(kn5Filename, kn5Material);
switch (kn5Material.ShaderName) {
case "ksBrokenGlass":
return new InvisibleMaterial();
case "GL":
return new Kn5MaterialSimpleGl(kn5Filename, kn5Material);
case "ksTyres":
case "ksBrakeDisc":
return new Kn5MaterialSimpleDiffMaps(kn5Filename, kn5Material);
case "ksWindscreen":
return new Kn5MaterialSimple(kn5Filename, kn5Material);
case "ksPerPixel":
case "ksPerPixelAT":
case "ksPerPixelAT_NS":
case "ksTree":
return new Kn5MaterialSimple(kn5Filename, kn5Material);
case "ksPerPixelAT_NM":
return new Kn5MaterialSimpleAtNm(kn5Filename, kn5Material);
case "ksPerPixelReflection":
case "ksPerPixelSimpleRefl":
return new Kn5MaterialSimpleReflective(kn5Filename, kn5Material);
case "ksPerPixelNM":
case "ksPerPixelNM_UV2":
return new Kn5MaterialSimpleNm(kn5Filename, kn5Material);
case "ksPerPixelNM_UVMult":
return new Kn5MaterialSimpleNmMult(kn5Filename, kn5Material);
case "ksPerPixelMultiMap":
case "ksPerPixelMultiMap_AT":
case "ksPerPixelMultiMap_AT_NMDetail":
case "ksPerPixelMultiMap_damage":
case "ksPerPixelMultiMap_damage_dirt":
case "ksPerPixelMultiMap_damage_dirt_sunspot":
case "ksPerPixelMultiMap_NMDetail":
case "ksPerPixelMultiMapSimpleRefl":
return new Kn5MaterialSimpleMaps(kn5Filename, kn5Material);
case "ksPerPixelAlpha":
return new Kn5MaterialSimpleAlpha(kn5Filename, kn5Material);
case "ksSkinnedMesh":
// TODO
return new Kn5MaterialSimpleMaps(kn5Filename, kn5Material);
default:
return new Kn5MaterialSimple(kn5Filename, kn5Material);
}
}