public static Material GetMaterial(string name) { if (gl == null) throw new InvalidOperationException("MaterialManager not initialized"); if (!materials.ContainsKey(name)) { if (! Materials.ContainsKey(name)) throw new KeyNotFoundException("no material with that name found"); var spec = Materials[name]; Material m = new Material(gl, name); if (spec.Item1 != null) m.AddShader(ShaderManager.GetVertexShader(spec.Item1)); if (spec.Item2 != null) m.AddShader(ShaderManager.GetGeometryShader(spec.Item2)); if (spec.Item3 != null) m.AddShader(ShaderManager.GetFragmentShader(spec.Item3)); m.Link(); materials[name] = m; } return materials[name]; }
public PhysicalEntity(Mesh mesh, Material material, CoordinateSystem coordinateSystem=null, string name="") : base(coordinateSystem, name) { Mesh = mesh; Material = material; }