Beispiel #1
0
        private byte[] PackTextures(List <Bitmap> TextureBitmaps, Vertex MaxResolution)
        {
            List <byte> Textures = new List <byte>();

            for (int i = 0; i < TextureBitmaps.Count; i++)
            {
                TextureBitmaps[i] = new Bitmap(TextureBitmaps[i], new Size((int)MaxResolution.X, (int)MaxResolution.Y));
                Textures.AddRange(ShaderMaterialTranslator.ImageToByte(TextureBitmaps[i]));
            }
            return(Textures.ToArray());
        }
Beispiel #2
0
        public override bool TranslateMaterial(Material AppliedMaterial)
        {
            MaterialNode Output = null;

            this._TextureBitmaps = new List <Bitmap>();
            this._TexturesNumber = 0;
            this._Textures       = null;
            for (int i = 0; i < AppliedMaterial.Nodes.Count; i++)
            {
                if (AppliedMaterial.Nodes[i].ID == "Output")
                {
                    Output = AppliedMaterial.Nodes[i];
                }
            }
            if (Output == null)
            {
                return(false);
            }
            string Fragment = GenerateFragment(Output);

            if (Fragment == "")
            {
                return(false);
            }
            this._FragmentShaderOutput = Fragment;
            String LibPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "/Engineer/";

            this._VertexShaderOutput = File.ReadAllText(LibPath + this._MaterialTranslatorType + "\\Generator\\Vertex.shader");
            if (_TexturesNumber > 0)
            {
                List <byte> Textures = new List <byte>();
                for (int i = 0; i < TexturesNumber; i++)
                {
                    _TextureBitmaps[i] = new Bitmap(_TextureBitmaps[i], new Size(256, 256));
                    Textures.AddRange(ShaderMaterialTranslator.ImageToByte(_TextureBitmaps[i]));
                }
                this._Textures = Textures.ToArray();
            }
            return(true);
        }