Esempio n. 1
0
        public void Save(string filename, IKn5TextureProvider textureProvider = null)
        {
            using (var writer = new Kn5Writer(File.Open(filename, FileMode.Create, FileAccess.ReadWrite))) {
                writer.Write(Header);

                writer.Write(Textures.Count);
                foreach (var texture in Textures.Values)
                {
                    if (TexturesData.TryGetValue(texture.Name, out var data) && data.Length > 0)
                    {
                        texture.Length = data.Length;
                        writer.Write(texture);
                        writer.Write(data);
                    }
                    else
                    {
                        textureProvider?.GetTexture(texture.Name, size => {
                            texture.Length = size;
                            writer.Write(texture);
                            writer.Flush();
                            return(writer.BaseStream);
                        });
                    }
                }

                writer.Write(Materials.Count);
                foreach (var material in Materials.Values)
                {
                    writer.Write(material);
                }

                Save_Node(writer, RootNode);
            }
        }
Esempio n. 2
0
    public void SetMode(RenderMode mode, Shader[] shaders)
    {
        TexturesData data = (TexturesData)GetType().GetField(mode.ToString()).GetValue(this);

        material.mainTexture = data.main;
        material.color       = data.color;
        material.SetTexture("_BumpMap", data.normals);
        material.shader = shaders [(int)mode];
    }
Esempio n. 3
0
 public RenderSlot(Material mat)
 {
     material    = mat;
     main        = new TexturesData(material.mainTexture, material.GetTexture("_BumpMap"), material.color);
     transparent = new TexturesData(null, null, new Color(0.6f, 0.8f, 1, 0.5f));
 }
Esempio n. 4
0
 public RenderSlot()
 {
     main        = new TexturesData();
     transparent = new TexturesData();
 }