コード例 #1
0
        public void Start()
        {
            TaskUtils.SetGlobalMultithreading(false);
            var fileManager     = new Grass2BillboardClanFilesManager();
            var singleClan      = fileManager.Load(@"C:\inz\billboards\", new IntVector2(256, 256));
            var smallSingleClan = new Grass2SingledBillboardClan()
            {
                BillboardsList = new List <DetailedGrass2SingleBillboard>()
                {
                    singleClan.BillboardsList[0]
                }
            };

            var duoGenerator =
                new Grass2BakingBillboardClanGenerator(ComputeShaderContainer,
                                                       new UnityThreadComputeShaderExecutorObject());

            var clan2 = duoGenerator.GenerateBakedAsync(singleClan).Result;

            var texArray    = new Texture2DArray(16, 16, 4, TextureFormat.ARGB32, false);
            var colorsArray = new Color[16 * 16];

            for (int i = 0; i < 16 * 16; i++)
            {
                colorsArray[i] = Color.blue;
            }
            for (int i = 0; i < 4; i++)
            {
                texArray.SetPixels(colorsArray, i);
            }
            texArray.Apply(false);


            var material = new Material(Shader.Find("Custom/Debug/TextureArray"));
            var ax       = clan2.BladeSeedTextureArray;

            material.SetTexture("_ArrayTex", clan2.BladeSeedTextureArray);
            //material.SetTexture("_ArrayTex", Grass2DuoBillboardClanGenerator.GLOB_TEX);
            //material.SetTexture("_MainTex", Grass2DuoBillboardClanGenerator.GLOB_TEX);
            var go = GameObject.CreatePrimitive(PrimitiveType.Quad);

            go.GetComponent <MeshRenderer>().material = material;

            TextureA = clan2.DetailTextureArray;
            TextureB = clan2.BladeSeedTextureArray;
        }
コード例 #2
0
        public void Start()
        {
            TaskUtils.SetGlobalMultithreading(false);
            var generator = new Grass2BillboardGenerator(new UTTextureRendererProxy(new TextureRendererService(
                                                                                        new MultistepTextureRenderer(ComputeShaderContainer), new TextureRendererServiceConfiguration()
            {
                StepSize = new Vector2(10, 10)
            })), new Grass2BillboardGenerator.Grass2BillboardGeneratorConfiguration()
            {
                BillboardSize = new IntVector2(256, 256)
            });

            //var tex = generator.GenerateBillboardImageAsync(50, 12.3f).Result;
            //TextureShowingObject.GetComponent<MeshRenderer>().material.SetTexture("_MainTex", tex);

            var clansGenerator = new Grass2BillboardClanGenerator(generator);
            var clan           = clansGenerator.Generate();

            var fileManager = new Grass2BillboardClanFilesManager();

            fileManager.Save(@"C:\inz\billboards\", clan);
        }