Exemple #1
0
        private SamplerId ExportSampler(UnityEngine.Texture texture)
        {
            var samplerId = _root.GetSamplerId(texture);

            if (samplerId != null)
            {
                return(samplerId);
            }

            var sampler = new Sampler();

            if (texture.wrapMode == TextureWrapMode.Clamp)
            {
                sampler.WrapS = WrapMode.ClampToEdge;
                sampler.WrapT = WrapMode.ClampToEdge;
            }
            else
            {
                sampler.WrapS = WrapMode.Repeat;
                sampler.WrapT = WrapMode.Repeat;
            }

            if (texture.filterMode == FilterMode.Point)
            {
                sampler.MinFilter = MinFilterMode.NearestMipmapNearest;
                sampler.MagFilter = MagFilterMode.Nearest;
            }
            else if (texture.filterMode == FilterMode.Bilinear)
            {
                sampler.MinFilter = MinFilterMode.NearestMipmapLinear;
                sampler.MagFilter = MagFilterMode.Linear;
            }
            else
            {
                sampler.MinFilter = MinFilterMode.LinearMipmapLinear;
                sampler.MagFilter = MagFilterMode.Linear;
            }

            samplerId = new SamplerId
            {
                Id   = _root.Samplers.Count,
                Root = _root
            };

            _root.Samplers.Add(sampler);

            return(samplerId);
        }