Exemple #1
0
    private Texture2D GenerateFruitTexture()
    {
        TextureBuilder texturer = new TextureBuilder();

        int size = m_fruit_texture_size;

        // Randomize colors
        Color fruitColor = new Color(Random.Range(0.1f, 0.9f), Random.Range(0.1f, 0.9f), Random.Range(0.1f, 0.9f), 1.0f);

        texturer.ColorTexture(size, fruitColor);
        int randPattern = Random.Range(0, 3);

        switch (randPattern)
        {
        case 0:
            texturer.AddPerlinNoise(Random.Range(2.0f, 100.0f), 0.2f, -0.5f);
            break;

        case 1:
            Color fruitColor1 = new Color(Random.Range(0.1f, 0.9f), Random.Range(0.1f, 0.9f), Random.Range(0.1f, 0.9f), 1.0f);
            texturer.OverlaySolidNoise(fruitColor1, Random.Range(0.1f, 0.9f), Random.Range(1.0f, 50.0f), Vector2.zero, 1.0f);
            break;

        case 2:
            Color fruitColor2 = new Color(Random.Range(0.1f, 0.9f), Random.Range(0.1f, 0.9f), Random.Range(0.1f, 0.9f), 1.0f);
            texturer.OverlayStripes(fruitColor2, Random.Range(1.0f, 10.0f), Random.Range(0.2f, 0.8f), Random.Range(0.0f, 180.0f), 1.0f);
            break;
        }
        texturer.GetTexture().Apply();
        return(texturer.GetTexture());
    }
Exemple #2
0
    private Texture2D GenerateTrunkTexture(int size)
    {
        TextureBuilder texturer = new TextureBuilder();

        // Randomize colors
        Color treeColor           = new Color(0.36f, 0.27f, 0.18f, 1.0f);
        Color treeColorVar        = new Color(0.1f, 0.1f, 0.1f, 0.0f);
        Color treeColorSpecial    = new Color(0.5f, 0.5f, 0.5f, 1.0f);
        Color treeColorSpecialVar = new Color(0.4f, 0.4f, 0.4f, 1.0f);
        float specialChance       = 0.1f;

        Color[] randomTreeColors = new Color[4];
        if (Random.Range(0.00f, 1.00f) > specialChance)
        {
            // Use normal values
            randomTreeColors[0] = new Color(Random.Range(treeColor.r - treeColorVar.r, treeColor.r + treeColorVar.r),
                                            Random.Range(treeColor.g - treeColorVar.g, treeColor.g + treeColorVar.g),
                                            Random.Range(treeColor.b - treeColorVar.b, treeColor.b + treeColorVar.b), 1.0f);
            for (int i = 1; i <= 3; i++)
            {
                randomTreeColors[i] = randomTreeColors[0] * new Color(Random.Range(treeColor.r - treeColorVar.r, treeColor.r + treeColorVar.r),
                                                                      Random.Range(treeColor.g - treeColorVar.g, treeColor.g + treeColorVar.g),
                                                                      Random.Range(treeColor.b - treeColorVar.b, treeColor.b + treeColorVar.b), 1.0f);
            }
        }
        else
        {
            // Use special values
            randomTreeColors[0] = new Color(Random.Range(treeColorSpecial.r - treeColorSpecialVar.r, treeColorSpecial.r + treeColorSpecialVar.r),
                                            Random.Range(treeColorSpecial.g - treeColorSpecialVar.g, treeColorSpecial.g + treeColorSpecialVar.g),
                                            Random.Range(treeColorSpecial.b - treeColorSpecialVar.b, treeColorSpecial.b + treeColorSpecialVar.b), 1.0f);
            for (int i = 1; i <= 3; i++)
            {
                randomTreeColors[i] = randomTreeColors[0] * new Color(Random.Range(treeColorSpecial.r - treeColorSpecialVar.r, treeColorSpecial.r + treeColorSpecialVar.r),
                                                                      Random.Range(treeColorSpecial.g - treeColorSpecialVar.g, treeColorSpecial.g + treeColorSpecialVar.g),
                                                                      Random.Range(treeColorSpecial.b - treeColorSpecialVar.b, treeColorSpecial.b + treeColorSpecialVar.b), 1.0f);
            }
        }

        texturer.ColorTexture(size, randomTreeColors[0]);
        //texturer.AddPerlinNoise(50.0f,0.5f,-0.5f);
        //for (int i = 0; i < 4; i++) {
        //	texturer.OverlaySolidNoise(m_tree_colors[i+1],m_color_thresholds[i],m_noise_scales[i],m_noise_offsets[i],m_noise_opacity[i]);
        //}
        texturer.OverlayStripes(randomTreeColors[1], 8.0f, 0.2f, 75.0f, 0.7f);
        texturer.OverlayStripes(randomTreeColors[2], 10.0f, 0.4f, 80.0f, 0.7f);

        texturer.GetTexture().Apply();
        return(texturer.GetTexture());
    }
Exemple #3
0
    public void UpdateTexture(TextureType type)
    {
        Texture2D tex = TextureBuilder.GetTexture(type);

        renderer.sharedMaterial.mainTexture = tex;
        Debug.Log("Changed Texture");
    }
    private void GenerateRockMaterial()
    {
        TextureBuilder texturer  = new TextureBuilder();
        Color          rockColor = new Color(0.4f, 0.4f, 0.4f, 1.0f);

        texturer.ColorTexture(128, rockColor);
        texturer.OverlayStripes(rockColor * 0.8f, 16, 0.4f, 0.0f, 1.0f);
        Texture2D rockTex = texturer.GetTexture();

        rockMat        = new Material("Default");
        rockMat.shader = Shader.Find("Diffuse");
        rockTex.Apply();
        rockMat.SetTexture("_MainTex", rockTex);
    }
    private void GenerateGrassMaterial()
    {
        TextureBuilder texturer   = new TextureBuilder();
        Color          grassColor = new Color(0.22f, 0.64f, 0.1f, 1.0f);

        texturer.ColorTexture(256, grassColor);
        texturer.OverlayStripes(grassColor * 0.8f, 16, 0.4f, 0.0f, 1.0f);
        texturer.CutOutGrassShape(32);
        Texture2D grassTex = texturer.GetTexture();

        grassMat            = new Material("Default");
        grassMat.shader     = Shader.Find("Transparent/Cutout/Diffuse");
        grassTex.mipMapBias = -0.5f;
        grassTex.Apply();
        grassMat.SetTexture("_MainTex", grassTex);
    }
Exemple #6
0
    void OnChangedTexture(TextureType type)
    {
        if (type == TextureType.Tectonic || type == TextureType.Height)
        {
            displayInertia = true;
        }
        else
        {
            displayInertia = false;
        }

        Texture2D tex = TextureBuilder.GetTexture(type);
        Sprite    spr = Sprite.Create(tex, new Rect(Vector2.zero, new Vector2(tex.width, tex.height)), Vector2.zero);

        image.sprite = spr;

        dropdown.value = ((int)type);
        Debug.Log("UI Recived ChangeTexture Signal");
    }
Exemple #7
0
    private Texture2D GenerateLeafTexture(int size)
    {
        TextureBuilder texturer = new TextureBuilder();

        Color leafColor = new Color(0.1f, 0.5f, 0.1f, 1.0f);

        if (m_leaf_randomize_colors)
        {
            /*
             * Color[] randomColors = new Color[4];
             * randomColors[0] = new Color(Random.Range(0.2f,0.8f),Random.Range(0.2f,0.8f),Random.Range(0.2f,0.8f),1.0f);
             * for(int i = 1; i <= 3; i++) {
             *      randomColors[i] = randomColors[0]*new Color(Random.Range(0.2f,0.8f),Random.Range(0.2f,0.8f),Random.Range(0.2f,0.8f),1.0f);
             * }
             * texturer.Color4GridTexture(size,randomColors);
             */
            Color[] randomColors = new Color[4];
            if (Random.Range(0.00f, 1.00f) > specialChance)
            {
                // Use normal values

                randomColors[0] = new Color(Random.Range(leafColor.r - treeColorVar.r, leafColor.r + treeColorVar.r),
                                            Random.Range(leafColor.g - treeColorVar.g, leafColor.g + treeColorVar.g),
                                            Random.Range(leafColor.b - treeColorVar.b, leafColor.b + treeColorVar.b), 1.0f);
                for (int i = 1; i <= 3; i++)
                {
                    randomColors[i] = randomColors[0] * new Color(Random.Range(leafColor.r - treeColorVar.r, leafColor.r + treeColorVar.r),
                                                                  Random.Range(leafColor.g - treeColorVar.g, leafColor.g + treeColorVar.g),
                                                                  Random.Range(leafColor.b - treeColorVar.b, leafColor.b + treeColorVar.b), 1.0f);
                }
            }
            else
            {
                // Use special values
                randomColors[0] = new Color(Random.Range(treeColorSpecial.r - treeColorSpecialVar.r, treeColorSpecial.r + treeColorSpecialVar.r),
                                            Random.Range(treeColorSpecial.g - treeColorSpecialVar.g, treeColorSpecial.g + treeColorSpecialVar.g),
                                            Random.Range(treeColorSpecial.b - treeColorSpecialVar.b, treeColorSpecial.b + treeColorSpecialVar.b), 1.0f);
                for (int i = 1; i <= 3; i++)
                {
                    randomColors[i] = randomColors[0] * new Color(Random.Range(treeColorSpecial.r - treeColorSpecialVar.r, treeColorSpecial.r + treeColorSpecialVar.r),
                                                                  Random.Range(treeColorSpecial.g - treeColorSpecialVar.g, treeColorSpecial.g + treeColorSpecialVar.g),
                                                                  Random.Range(treeColorSpecial.b - treeColorSpecialVar.b, treeColorSpecial.b + treeColorSpecialVar.b), 1.0f);
                }
            }
            texturer.Color4GridTexture(size, randomColors);
        }
        else
        {
            texturer.Color4GridTexture(size, m_leaf_colors);
        }
        //texturer.OverlaySolidNoise(m_leaf_color-new Color(0.3f,0.3f,0.3f,0.0f),0.5f,20.0f,new Vector2(0.0f,0.0f),1.0f);
        //texturer.OverlaySolidNoise(m_leaf_color,0.6f,20.0f,new Vector2(0.0f,0.0f),1.0f);

        if (m_leaf_randomize_shape)
        {
            texturer.CutOutLeafShape(1, 8, true);
        }
        else
        {
            // Default leaf shape
            TextureBuilder.LeafCurvePoint[] leafPoints = new TextureBuilder.LeafCurvePoint[2];
            //Vector2 up = new Vector2(0.0f,0.1f);
            //Vector2 down = new Vector2(0.0f,-0.1f);
            leafPoints[0].start = new Vector2(0.5f, 0.0f);
            leafPoints[0].mid1  = leafPoints[0].start + new Vector2(0.0f, 0.5f);
            leafPoints[0].end   = new Vector2(0.2f, 0.7f);
            leafPoints[0].mid2  = leafPoints[0].end + new Vector2(0.0f, -0.5f);
            leafPoints[1].start = new Vector2(0.2f, 0.7f);
            leafPoints[1].mid1  = leafPoints[1].start + new Vector2(0.2f, -0.3f);
            leafPoints[1].end   = new Vector2(0.5f, 1.0f);
            leafPoints[1].mid2  = leafPoints[1].end + new Vector2(-0.1f, -0.3f);
            texturer.CutOutLeafShape(leafPoints, 2, true);
        }

        texturer.GetTexture().Apply();

        return(texturer.GetTexture());
    }